Получил уведомление о превышении лимитов нагрузки. Что далеть?
Самая популярная причина повышенной нагрузки - индексирование сайта поисковыми ботами.
Процесс индексации сайта с большим количеством страниц может занимать длительное время и создавать большую нагрузку на сервере.
Поисковые боты при индексации посылают одновременно огромное количество запросов вашему сайту, что и приводит к проблеме. Поисковых роботов существует достаточно много (Google, Yahoo, Yandex, Mail.RU, …), и ограничивать им доступ к сайту полностью (т.к. они приносят пользу вашему ресурсу) некорректно.
Решение:
Создать файл robots.txt в директории вашего сайта, прописав в него следующие параметры:
User-agent: *
Crawl-delay: 10
( User-agent - указывает для какой поисковой системы использовать заданные параметры. Crawl-delay - указывает временной интервал, с которым поисковые системы будут загружать страницы сайта. )
Также рекомендуем запретить индексацию ненужных каталогов, таких как каталоги с изображениями, кэшем и пр.
User-agent: *
Disallow: /administrator/
Disallow: /cache/
Disallow: /cli/
Disallow: /components/
Disallow: /images/
Disallow: /includes/
Disallow: /installation/
Disallow: /language/
Disallow: /libraries/
Disallow: /logs/
Disallow: /media/
Disallow: /modules/
Disallow: /plugins/
Disallow: /templates/
Disallow: /tmp/
Индексацию нежелательных ботов вы можете запретить в robots.txt:
User-agent: bingbot
Disallow: /
Также вы можете запретить индексацию и в .htaccess:
SetEnvIfNoCase User-Agent "^bingbot" search_bot
Корректное название робота, для которого вы хотите использовать то или иное правило, вы можете найти в логах доступа. В качестве примера приведем выдержку из логов доступа:
10.20.18.204 - - [08/Feb/2024:12:05:01 +0200] "GET ваш_сайт/ HTTP/1.0" 200 93488 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)"
10.20.18.204 - - [08/Feb/2024:12:05:01 +0200] "GET ваш_сайт/ HTTP/1.0" 200 110513 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)"
Корректное название робота: bingbot/2.0
Если бы мы его хотели заблокировать в .htaccess, правило выглядело бы так:
SetEnvIfNoCase User-Agent bingbot/2.0 bad_bot
Order Allow,Deny
Allow from all
Deny from env=bad_bot
Если ранее приведенные варианты блокировки не решили проблему, тогда можно заблокировать поисковым ботам доступ к сайту по IP, прописав в .htaccess:
Deny from 10.20.18.204
где 10.20.18.204 — IP bingbot, который мы нашли в логах доступа.