Коротко: Метрика не фиксирует многих ботов по четырём причинам: они не запускают код счётчика, Метрика сама отфильтровывает часть известных роботов, боты с обычным браузером выглядят как люди, а выгрузка визитов не содержит User-Agent. Проверить, сколько ботов на самом деле, помогает серверный лог.
Знакомая картина: нагрузка на сервер растёт, формы заваливает спам, а в Метрике всё спокойно. Это не значит, что ботов нет. Метрика видит только то, что дошло до её счётчика. Разберём, что именно теряется, и как увидеть настоящую картину.
Причина 1. Бот не запускает счётчик
Метрика считает визит, когда в браузере выполняется её JavaScript. Парсер или скрипт, который просто скачивает HTML (curl, python-requests и подобные), код счётчика не исполняет. Для Метрики такого визита не существует, а в журнале веб-сервера запрос остался. Значит, нагрузка на сервер от таких ботов есть, а в Метрике нет.
Причина 2. У Метрики своя оценка роботов и настройка фильтрации
У Метрики есть собственное определение роботов и параметр фильтрации в настройках счётчика. Из-за этого картина в отчётах зависит от настроек и от того, смотрите ли вы на роботов отдельно. У нашего счётчика роботами помечено 13,4% визитов (319 из 2 386 за 30 дней), и это видно только если смотреть показатель «роботность»: подробнее в статье как посмотреть данные в Метрике без роботов.
Причина 3. Бот с обычным браузером похож на человека
Бот, который управляет настоящим браузером, выполняет счётчик, ведёт себя как посетитель и попадает в отчёты как человек. Отличить его можно только по косвенным признакам: сети датацентров, нулевое окно браузера, часовой пояс UTC вне UTC-стран, названия вроде headless. Эти признаки мы разбирали в статье про автоматику в данных Метрики.
Причина 4. Выгрузка визитов не содержит User-Agent
Владелец счётчика не может получить строку User-Agent и пометку «робот» в выгрузке визитов (Logs API): мы проверили это, поля ym:s:userAgent и ym:s:isRobot недоступны ни для визитов, ни для хитов. Последнее число IP-адреса тоже скрыто. Поэтому по выгрузке можно искать только сети и данные браузера. Пометка «робот» доступна отдельно, через отчёты (Reporting API), а не через выгрузку визитов.
Как увидеть настоящую картину
- Сравните журнал сервера и Метрику. Посчитайте запросы к страницам в access-логе за период и визиты в Метрике. Если в логе заметно больше, разницу составляют боты, не запускающие счётчик, а также блокировщики рекламы и приватный режим. Как разобрать лог: как найти ботов в access-логе nginx, либо загрузите его в бесплатный анализатор.
- Посмотрите роботность Метрики. По источникам и во времени: резкие всплески роботности указывают на волну автоматики.
- Проверьте счётчик инструментом. «Сколько ботов в вашей Метрике» ищет визиты из датацентров, подозрительные сети и признаки браузера, показывает причины и примеры визитов и выводит оценку самой Метрики.
- Проверьте подлинность поисковых ботов. Если «Googlebot» в логе очень активен, проверьте IP: как проверить, настоящий ли это Googlebot.
Что делать, когда боты найдены
- Ограничить частоту запросов и закрыть служебные пути на уровне сервера.
- Не блокировать по User-Agent вслепую: легко зацепить настоящего поискового бота.
- Поставить защиту, которая проверяет каждый запрос по User-Agent, IP, заголовкам и поведению и блокирует ботов в реальном времени: Bot Guard. Для WordPress есть плагин, для 1С-Битрикса модуль.
Частые вопросы
Почему Метрика не показывает ботов?
Часть ботов не запускает код счётчика, роботов в отчётах нужно отделять отдельно, а боты с настоящим браузером выглядят как люди. Поэтому в отчётах ботов меньше, чем в журнале сервера.
Как проверить, сколько ботов на сайте, если не доверять Метрике?
Разберите серверный access-лог: он содержит каждый запрос, включая тех, кто не запускает счётчик. Это можно сделать командами или бесплатным анализатором лога.
Бывают ли боты в Метрике, которые видны как люди?
Да. Боты на настоящих браузерах и жилых прокси в статистике выглядят обычными посетителями. Их можно заподозрить по сетям, окну браузера и часовому поясу, но уверенности это не даёт.
Можно ли узнать User-Agent визитов в Метрике?
Через выгрузку Logs API нет: строки User-Agent там нет. Он есть только в журнале вашего сервера.
Нужно ли что-то устанавливать, чтобы видеть ботов?
Для анализа лога и Метрики ничего устанавливать не нужно. Если хотите блокировать ботов в реальном времени, нужен модуль или плагин защиты на сайте.
Нужна помощь с разбором? Если хотите, чтобы специалист разобрал ваш счётчик и рекламу, закажите аудит рекламы Яндекс Директ и трафика на ботов (команда oWeb Solutions, авторы этого инструмента).
Защитите свой сайт от ботов прямо сейчас
Подключение занимает несколько минут — вставьте один PHP-сниппет, и Bot Guard начнёт фильтровать ботов, скрейперов и попытки SQL-инъекций автоматически.