BotBan Защита сайта от ботов
Попробовать
Меню
BotBan Защита сайта от ботов
Тема оформления

Боты на сайте: зачем они приходят, как их увидеть и что делать

Половина запросов к обычному сайту приходит не от людей, и это нормально. Ненормально другое: когда вы не знаете, кто эти «не люди». Разбираем по порядку, с цифрами.

5 мин чтения

Самый частый вопрос от нового клиента после первого дня наблюдения: «у меня что, половина трафика боты?». Да. У спокойного интернет-магазина, который мы подключили в сентябре, за десять дней набралось 1,47 млн запросов, и 57 % из них сделали роботы Яндекса и Google. Это не проблема. Проблема начинается, когда вы не знаете, кто остальные.

Кто вообще ходит по сайту

Если разложить запросы к типичному сайту, получится четыре слоя.

Люди. Открыли страницу в браузере. На небольшом сайте это от трети до половины запросов, на сайте под обстрелом — меньше десятой части.

Поисковые и рекламные роботы. Яндекс, Google, Bing, робот Директа, который проверяет страницы объявлений, краулеры соцсетей и мессенджеров, забирающие картинку для превью ссылки. Их много, и они нужны. У магазина ковролина 76 % запросов делали роботы Яндекса, и один только YaDirectFetcher — 10,8 тысячи в сутки к одной странице.

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

Боты в плохом смысле. Парсеры каталога и цен, сканеры уязвимостей, перебор паролей к админке, накрутка поведенческих факторов, спам в формах, клики по вашей рекламе. Вот с ними и предстоит разбираться.

Зачем они приходят

У каждого вида своя причина, и по ней понятно, что он будет делать.

Парсеру нужны ваши цены и описания: он пройдёт по каталогу подряд, страница за страницей, с одинаковыми интервалами. Сканеру нужны дыры: он спросит /wp-login.php, /.env, /backup.sql и ещё сотню адресов, которых у вас нет. Переборщику паролей нужна админка: сотни POST-запросов на один адрес. Накрутчику нужно изобразить человека из поиска: он придёт по запросу, пройдёт две-три страницы, задержится и уйдёт, и в Метрике будет выглядеть прилично. Спам-боту нужна любая форма.

Отдельная категория — рой. Тысячи адресов из дата-центров по всему миру, каждый делает один-два запроса и исчезает. Это не атака на вас лично, вас просто перебирают вместе с миллионом других сайтов. Но для сервера разницы нет: на одном сайте такой рой давал 414 тысяч запросов в сутки, 18 тысяч разных адресов в час, и почти все получали отказ.

Как увидеть ботов самому

Начните с лога веб-сервера. У nginx это access.log, у Apache — access_log, на хостинге они лежат в панели в разделе «Логи». Возьмите кусок за час и посмотрите три вещи.

Первое — самые частые адреса. Один адрес с сотнями запросов за минуту почти всегда программа, даже если в User-Agent написан Chrome.

Второе — адреса, которых у вас нет. Запросы к файлам конфигурации, резервным копиям и чужим админкам делают только сканеры.

Третье — User-Agent с названиями библиотек: python-requests, curl, Go-http-client, Scrapy. Их не прячут, потому что обычно и не нужно.

Руками это занятие на вечер; наш анализатор лога делает то же за секунды и отдельно отмечает роботов поисковиков, чтобы вы случайно не записали Яндекс в боты.

В Метрике ботов видно хуже: туда попадают только те, кто выполнил её скрипт, то есть боты на настоящих браузерах. Отчёт «Роботы» покажет накрутчиков и часть парсеров, но не покажет ни рой, ни сканеры. Зато резкий рост «роботов по поведению» по вашим коммерческим запросам — верный признак чужой накрутки.

Когда беспокоиться, а когда нет

Доля ботов сама по себе ничего не значит. Беспокоиться стоит по конкретным симптомам.

Хостинг пишет о превышении нагрузки или отключает сайт. Сайт стоматологической клиники хостинг отключал дважды при 200–250 запросах в минуту, из которых людей было меньше десятой части.

В CRM приходят заявки с бессмысленным текстом или одинаковыми телефонами.

В Директе растёт расход, а заявок не прибавляется, и отказы по некоторым площадкам РСЯ под 90 %.

Конкурент выставляет цены на копейку ниже ваших на следующий день после каждого вашего обновления.

Яндекс присылает предупреждение о накрутке, которую вы не заказывали.

Если ничего из этого нет, а доля ботов 40 % — вы просто обычный сайт в интернете 2026 года.

Что делать

Первое и главное: не блокировать по странам и не блокировать по одному адресу вслепую. За адресом мобильного оператора стоят тысячи абонентов, и блокировка такого адреса отключает сайт для района. Мы на уровне движка запретили себе жёсткую блокировку адресов из мобильных и NAT-сетей, потому что ложная блокировка живого человека хуже любого пропущенного бота.

Второе: разделить. Подтверждённых роботов поисковиков пропускать всегда, их подтверждают обратным DNS, а не строкой User-Agent. Свои служебные адреса — в белый список: сервер 1С, cron, платёжные вебхуки. Один магазин получал проверку на обмен с 1С, потому что движок принял его за перебор паролей; адрес сервера 1С в белом списке решил вопрос.

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

Четвёртое: самых назойливых отсекать до сайта. Для них есть список адресов для файрвола и журнал для fail2ban, чтобы рой не доходил даже до PHP.

Чего не стоит ждать

Что боты закончатся. Не закончатся: рой перебирает интернет непрерывно, и ваш сайт будет в нём всегда. Цель не «ноль ботов», а чтобы они не доходили до базы данных, не портили отчёты и не ели рекламный бюджет. На магазине напольных покрытий за 24 дня защита остановила 2,85 млн запросов, и единственное, что заметил владелец, — что сервер перестал задыхаться по ночам.

Решение по теме

Термины из статьи

Как это настроить в BotBan

Читайте также