Нагрузку на сайт нередко делают не посетители, а разные поисковые боты. Когда-то проблемы были даже от робота 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;