AhrefsBot и другие прожорливые поисковые боты
17 августа 2020
Нагрузку на сайт нередко делают не посетители, а разные поисковые боты. Когда-то проблемы были даже от робота Google, но сейчас он научился снижать аппетиты при появлении ошибок или существенном повышении времени ответа. Яндекс тоже поумерил аппетиты и настраивается через Вебмастер.
Но "голодные" боты ещё остались. Один из таких - AhrefsBot. На наше счастье, многие боты, которые сами не умеют регулировать свой аппетит, подчиняются robots.txt
в корне сайта, директиве Crawl-Delay
. Она выставляет задержку между парсингом следующей страницы в секундах. Одной секунды для многих проектов вполне достаточно (86400 страниц). Если мало - можно использовать дробные значения.
User-agent: * Crawl-Delay: 1
UPD: для особо непослушных ботов можно и пожёстче через Nginx.
Создаём в /etc/nginx
конфиг block-bots.conf
:
if ($http_user_agent ~* SemrushBot|MJ12bot|AhrefsBot|DotBot|PetalBot|LinkpadBot|SputnikBot|statdom.ru|MegaIndex.ru|WebDataStats|Jooblebot|BackupLand|NetcraftSurveyAgent|openstat.ru) { return 444; }
И подключаем в каждый блок server
каждого конфига:
server { include block-bots.conf;
Комментарии RSS по email OK
У меня в практике была другая проблема. Магазин генерировал из связок товар+город уникальные страницы для сео продвижения. Кажда страница кешировалась. Так вот кеш мог вырастать до нескольков десятков гигабайт во время индексации гуглом. Админ наш подбамбливал периодически от этого =) .
Поисковые боты еще куда ни шло, но это "сервисные" боты (ahrefsbot, mj12bot, semrush, similarweb — много их), которые по-сути для сайта никакой пользы не несут, а нагрузку действительно могут создать увеличить существенно, пусть даже на короткое время. Я обычно nginx'ом отдаю им 444.
Самые непослушные боты будут подделывать user-agent))
Заметил что у нас Ahrefs [Bot] тоже траффик выжирает что дурной, надо блокировать
Толковый совет, для небольшого сайта роли не играет, но для многостраничника очень даже прилично можно сэкономить бэндвиз.
А я вот по инструкции сделал IPSET-ом белый список IP и бед не знаю)))