AlexeyN
существует ли такое готовое - не знаю, но Вам самая дорога рыть в сторону
частотного словаря. Алгоритм должен быть примерно такой:
- обход всего сайта (меджу прочим рекурсия, или стековые операции - не самое простое занятие

) по ссылкам, не ведущим на другие сайты
- создание хэша всех встречающихся слов, размер которых, скажем больше трех символов (чтоб предлоги не учитывать)
- по ходу создания, считаем в этом самом хеше, какое слово сколько раз встретилось
- дальше смотрим внимательно на те слова, встречаемость которых - сколько-то там % (например) - порог вводим сами
- и, очень может быть, что наиболее часто встречающиеся ключевыми (с точки зрения здравого смысла) и не являются

(тогда имеет смысл задуматься о текстах)