Боты перегружают сайт: как их распознать и ограничить

Печать
  • 0

Далеко не все «посетители» сайта – люди. Значительная часть запросов приходит от программ: роботов поисковых систем (Googlebot, bingbot), SEO-сервисов (AhrefsBot, SemrushBot, MJ12bot), сборщиков текстов для искусственного интеллекта (GPTBot, ClaudeBot, CCBot, Bytespider) и скриптов, которые копируют контент. Пока их немного, это незаметно. Когда их становится много, они забирают процессор и память аккаунта, и сайт начинает тормозить для настоящих клиентов.

Признаки того, что дело в ботах

  • Сайт замедляется в часы, когда живых посетителей мало, а в cPanel, в разделе Metrics, затем Resource Usage, видны пики нагрузки на процессор или сообщения о достижении лимитов.
  • В журналах доступа (Metrics, затем Raw Access, или статистика Awstats) очень часто встречаются AhrefsBot, SemrushBot, PetalBot, Bytespider, GPTBot, python-requests или curl.
  • У интернет-магазинов: сотни и тысячи запросов к адресам с ?filter_, ?orderby=, ?min_price= или к очень дальним страницам списка вроде /page/37/. Человек никогда не перебирает столько комбинаций фильтров, а бот пробует их все.

Поэтому магазины и страдают сильнее всех: каждая комбинация фильтра и сортировки для бота – новая страница, которую должны собрать PHP и база данных.

Что уже блокирует сервер

Imunify360 и файрвол сервера автоматически отсекают часть вредного трафика, например адреса, которые за очень короткое время отправляют ненормально много запросов. Роботов поисковиков и SEO-сервисов на уровне сервера не блокируют, потому что многим клиентам они нужны. Ими Вы управляете сами с помощью мер ниже, от самой мягкой к самой жёсткой.

1. robots.txt: просьба, которую соблюдают добросовестные боты

Файл robots.txt лежит в корневой папке сайта (обычно public_html) и сообщает роботам, куда не заходить. Google, Bing и большинство SEO-сервисов его учитывают. Пример для магазина на WooCommerce, который можно адаптировать:

# Страницы без ценности для поиска: корзина, кабинет, фильтры, сортировка
User-agent: *
Disallow: /cart/
Disallow: /checkout/
Disallow: /my-account/
Disallow: /*?s=
Disallow: /*?add-to-cart=
Disallow: /*?orderby=
Disallow: /*?filter_
Disallow: /*?min_price=
Disallow: /*?max_price=

# SEO-сервисы и ИИ-боты: доступ закрыт полностью
User-agent: GPTBot
User-agent: ClaudeBot
User-agent: CCBot
User-agent: Bytespider
User-agent: AhrefsBot
User-agent: SemrushBot
User-agent: MJ12bot
User-agent: DotBot
User-agent: PetalBot
Disallow: /

Первая группа позволяет поисковикам видеть товары и категории, но не тысячи комбинаций фильтров. Вторая полностью закрывает сайт для перечисленных SEO-сервисов и ИИ-ботов. Уберите из списка то, чем пользуетесь: если Вы работаете с Ahrefs или Semrush, оставьте доступ их роботу.

В Yoast SEO файл редактируется в разделе Yoast SEO, затем Tools, File editor; в Rank Math – в General Settings, затем Edit robots.txt. Не закрывайте /wp-content/, файлы CSS, JavaScript и изображения: Google нужны они, чтобы правильно понять страницу.

2. Кеш: визит бота почти ничего не стоит

Страница из кеша не запускает PHP и не обращается к базе данных, поэтому неважно, кто её запросил, человек или бот. На тарифах WordPress Hosting и Business Hosting, работающих на LiteSpeed, используйте плагин LiteSpeed Cache и настройте его по статье LiteSpeed Cache в WordPress: включение и безопасные настройки. Для магазинов важны две настройки:

  • не исключайте из кеша страницы категорий, ведь именно туда приходит больше всего ботов;
  • в разделе Cache плагина, в параметре Drop Query String, добавьте метки отслеживания (utm_*, fbclid, gclid), чтобы каждая ссылка из рекламной кампании не считалась новой страницей.

На тарифах Web Hosting SSD, где работают Nginx и Apache, используйте плагин кеширования, совместимый с Apache; принцип тот же.

3. .htaccess: отказ ботам, которые игнорируют правила

Скрипты-копировщики и агрессивные боты robots.txt не читают. Таким сервер может отказать прямо в .htaccess, ещё до запуска WordPress, то есть без нагрузки на процессор.

  1. В cPanel откройте File Manager, перейдите в public_html и включите показ скрытых файлов (Settings, затем Show Hidden Files).
  2. Сначала скачайте копию файла .htaccess.
  3. Добавьте блок ниже в начало файла, над строкой # BEGIN WordPress. Там WordPress не перезапишет его при сохранении постоянных ссылок.
# Запрещённые боты
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (GPTBot|ClaudeBot|CCBot|Bytespider|AhrefsBot|SemrushBot|MJ12bot|DotBot|PetalBot|BLEXBot|DataForSeoBot|MegaIndex|Barkrowler|Scrapy|python-requests|Go-http-client) [NC]
RewriteRule .* - [F,L]
</IfModule>

Боты из списка будут получать «403 Forbidden». Подправьте список: уберите то, чем пользуетесь, и добавьте имена, которые увидели в журналах. Никогда не добавляйте сюда Googlebot, bingbot и facebookexternalhit (он строит превью ссылок в Facebook).

Проверить правило можно с компьютера командой curl -I -A "AhrefsBot" https://vash-domen.md/: в ответ должен прийти код 403. Если после сохранения сайт показывает ошибку 500, загрузите обратно сохранённую копию.

Ограничение метода: бота, который представляется обычным браузером, по имени не распознать. Против него остаются Cloudflare и блокировка IP-адресов с нашей стороны.

4. Cloudflare: правила для трафика, который иначе не отфильтровать

Если сайт работает через Cloudflare (как подключить, описано в инструкции по Cloudflare), бесплатный тариф даёт несколько полезных инструментов:

  • Bot Fight Mode в настройках безопасности для ботов замедляет известных вредных роботов;
  • правила ограничения частоты (Rate limiting rules), например для адресов с фильтрами, когда один IP превышает заданное число запросов в минуту;
  • собственные правила (Custom rules), которыми можно заблокировать по User-Agent ботов, которые Вам совсем не нужны.

5. Из WordPress, если .htaccess менять нельзя

  • Wordfence (бесплатная версия): в настройках файрвола, раздел Rate Limiting, ограничьте просмотры страниц краулерами (например, 60 в минуту) и запросы несуществующих страниц (например, 30 в минуту) с действием «замедлить» или «заблокировать». Включите также опцию немедленной блокировки ботов, которые выдают себя за Google.
  • LiteSpeed Cache: функцию Crawler оставьте выключенной, если она Вам не нужна; главное, чтобы страницы категорий были в кеше.
  • Не ставьте одновременно два плагина безопасности. Они мешают друг другу и замедляют сайт вместо того, чтобы защищать.

Когда писать нам

Если Вы приняли меры выше, а сайт всё равно медленный, откройте тикет, укажите домен и, если есть, имена ботов из журналов. Мы проверим журналы сервера, можем заблокировать адреса, которые злоупотребляют, и подскажем, нужен ли для реального трафика тариф с большими ресурсами. Не затягивайте: по Условиям предоставления услуг аккаунт, который чрезмерно расходует ресурсы и угрожает стабильности сервера, может быть приостановлен. О причинах нагрузки подробнее в статье о нагрузке на сервер от скриптов сайта.

Чего не делать

  • Не блокируйте Googlebot и bingbot, если хотите оставаться в поиске. В Google Search Console больше нет ручной настройки скорости сканирования: Google сам снижает темп, когда сервер часто отвечает ошибками 500, 503 или 429. Если Googlebot действительно перегружает сайт, у Google есть форма, чтобы сообщить о проблеме.
  • Не правьте .htaccess без копии. Одна синтаксическая ошибка выводит из строя весь сайт с ошибкой 500. Правильные варианты файла есть в статье о .htaccess для популярных CMS.
  • Не полагайтесь только на robots.txt. Это просьба, а не барьер: больше всего проблем создают как раз те боты, которые его не читают.

Полезные статьи

Помог ли вам данный ответ?

Нужна помощь? Позвоните нам +373 795-800-80