Боты на сайте: зачем они приходят, как их увидеть и что делать
Половина запросов к обычному сайту приходит не от людей, и это нормально. Ненормально другое: когда вы не знаете, кто эти «не люди». Разбираем по порядку, с цифрами.
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
Читайте также
- Сколько ботов приходит на сайты: данные 14 сайтов за 30 дней Месяц журнала 14 сайтов, 20,3 млн запросов к страницам: больше половины движок счёл подозрительными. Объясняем, откуда такая цифра, почему людей при этом не задевают и почему в рекламе ботов почти нет, а в формах — треть.
- Проверка сайта на ботов: бесплатные инструменты и что они на самом деле показывают Метрика не видит тех, кто не выполняет скрипт, лог не отличает Chrome от программы, назвавшейся Chrome, а проверка адреса ничего не знает о запросе. Разбираем пять бесплатных способов проверить сайт на ботов и слепое пятно каждого.
- Хостинг пишет о превышении нагрузки: как понять, что это боты, и что делать Процессорное время на хостинге кончается не от покупателей. Разбираем, как по логам за десять минут понять, кто грузит сайт, и почему переход на тариф дороже обычно ничего не решает.