Войти
Каталожный блог
Большие значения Crawl-delay в robots.txt
#1 Месяц назад сайт lermont.ru поперли с виртуального хостинга Петерхоста:Наша компания постоянно следит за стабильностью работы серверов и старается не допускать повышенной нагрузки, чтобы обеспечить равномерную и стабильную работу сайтов.
Пользователь Вашей базы данных был отвязан от базы данных из-за высокой нагрузки, создаваемой им на сервере баз данных и мешающей работе других сайтов.
Как показали логи, база не выдержала массированного наплыва индексирующих ботов. На новом хостинге первым делом после переезда занялся настройкой robots.txt, а точнее директивой Crawl-delay.
Как известно из теории, большинство современных поисковиков поддерживают эту директиву. Правда, во всех поисковых мануалах указаны какие-то детские максимальные задержки (10 секунд максимум). Я решил рискнуть и забабахал вот так:
Crawl-delay: 50
50 секунд, без дробных значений (т.к. кто-то их не понимает) и на всякий случай меньше минуты. Подождав несколько недель, чтобы все боты наконец-то смогли перечитать robots.txt, решил проверить, как же боты ее придерживаются. Анализировал логи Апача за сегодня (по выходным боты особенно любят заходить на сайты). Как анализировал?
Шаг 1 — формировал файлик с сырой статистикой:
cat access_log | grep "Yahoo! Slurp/3" | grep "24/Oct/2009" > yahoo.csv
Шаг 2 — скачивал его, в текстовом редакторе приводил в CSV-подобный вид
Шаг 3 — обсчитывал времена в OpenOffice
Что получилось. Ну во первых, даже по сырой статистике видно, что ни один бот строго директивы не придерживается. Т.е. не было ни одного бота, у которого бы минимальное время между двумя визитами было бы 50 секунд. Но ничего, мы не расстраиваемся, возможно боты понимают величину Crawl-delay как некую усредненную величину, все-таки ходят с разных ip-адресов, значит живут на разных машинах, значит должна быть какая-то сетевая синхронизация. Смотрим на усредненные значения времени между запросами от поисковых ботов:

msnbot — 77 запросов со средним интервалом 837 секунд;
Yahoo! Slurp — 435 запросов со средним интервалом 150 секунд;
Googlebot — 1799 запросов со средним интервалом 36 секунд;
Mail.Ru/1.0 — 3683 запроса со средним интервалом 16.7 секунды;
Yandex/1.01.001 (compatible; Win16; I) — 3601 запрос со средним интервалом 16.2 секунды;

Для Яндекса отдельно посчитал среднее время запросов с одного ip-адреса — таких запросов у меня было около 80%, получилось 17.5 секунд.
Какие делаем выводы. Либо я запутался в нескольких строчках и ужасно накосячил в своем robots.txt с Crawl-delay, либо никакие боты таких больших значений не понимают.
Решил продолжить эксперимент, уменьшив время с 50 секунд до 9. Через недельку проверю еще раз.
robots.txt 1 боты 6 статистика 5 NULL, 2009-10-24 20:36
#2 Жесть. выгнали с хоста из-за нагрузки, а причина в robots.txt... Мда....
Shtirlitz, 2009-11-05 06:48