Хорошие боты: поисковые роботы, мониторинг, превью ссылок
Содержание
Поделиться
Хороший бот — программа с понятной целью: проиндексировать страницу, проверить, что сайт отвечает, забрать превью, обойти ссылки для поиска. Яндекс Метрика так и определяет робота: программа с целью, в примерах — индексация и проверка доступности. Одни представляются, другие маскируются. Метрика определяет их по поведению и техническим сигналам. Это не скликивание: клик по объявлению и обход страниц роботом решаются в разных местах.

Вам нужно отличить представившегося робота от клиента, который только подписал чужое имя. Ниже — что смотреть в отчёте, как проверить Google и Яндекс и кого нельзя закрывать одной строкой в robots.txt.
Кто уже вынесен из обычной статистики
Роботы, которые представились, сразу исключаются из обычной статистики Метрики. Их смотрят в отчёте «Роботы», в том числе чтобы увидеть индексацию. Если визит пропал из основных отчётов и виден только там, это заявленное имя, а не приговор «вредитель».
Отдельное правило отчёта — «Отфильтрованы по отсутствию JS и Referer». Код счётчика состоит из JavaScript и невидимой картинки в noscript. Если JavaScript выключен или не поддерживается, сведения о просмотре уходят в заголовке Referer, когда грузится эта картинка. Если заголовок не пришёл, Метрика считает просмотр роботным. Это одно именованное правило. Поведенческие правила отчёт по-прежнему не расшифровывает, поэтому «робот» в отчёте не равен инструкции, какой признак сработал.
Строка User-Agent ничего не доказывает
RFC 9110 (июнь 2022) описывает User-Agent как сведения о программе, которая отправила запрос. Серверы сужают им отчёты о несовместимости, обходят ограничения конкретной программы и смотрят статистику браузеров. Клиенту следует слать заголовок, если его специально не отключили. Значение — идентификаторы продукта с необязательной версией. Без нужды не кладут мелкие подробности и чужие субпродукты: подробная строка растит задержку и риск, что пользователя узнают против его воли. По строке теоретически проще целиться в известную дыру, а на практике перебор дыр идёт независимо от заявленной версии. Примеры строк в RFC — иллюстрация грамматики, не признак бота.
Документация Google пишет, что строку робота Google часто подставляют другие краулеры. Проверять запрос нужно обратным DNS по IP или сверкой IP с опубликованными диапазонами, а не по тексту заголовка. Обычные краулеры Google при автоматическом обходе соблюдают robots.txt. Краулеры особых случаев могут его не соблюдать. Загрузчики, которые запускает сам пользователь, robots.txt игнорируют, потому что запрос инициировал человек.
Справка Вебмастера Яндекса: чужой робот может назваться роботом Яндекса. Проверка — IP из лога, обратный DNS, имя должно кончаться на yandex.ru, yandex.net или yandex.com, затем прямой DNS. Если прямой адрес не совпал с исходным, имя поддельное. Этот способ справка предпочитает списку IP, потому что внутренние сети меняются.
robots.txt просит, а не запирает
RFC 9309 описывает robots.txt как просьбу к автоматическим клиентам, как обходить URI. Краулер в документе — автоматический клиент, пример — обход ссылок поиском. Правила не являются разрешением доступа. Что сделает конкретный робот, если файл запрещает обход, RFC не обещает. Поведение Google и Яндекса смотрят отдельно.
Обычные краулеры Google при автоматическом обходе соблюдают robots.txt и в общем случае идут из диапазонов в common-crawlers.json. Обратное имя совпадает с маской crawl-***-***-***-***.googlebot.com или geo-crawl-***-***-***-***.geo.googlebot.com. Токен Googlebot в robots.txt затрагивает Поиск, Discover, поисковые функции, Картинки, Видео и Новости. У Google-Extended отдельной строки User-Agent нет: обход идёт существующими агентами, а токен решает, можно ли уже скачанное использовать для обучения будущих моделей Gemini и для grounding. На включение сайта в Поиск и на сигнал ранжирования Google-Extended не влияет. Список краулеров не исчерпывающий. Маски — шаблон проверки, не перечень адресов для блокировки.
Роботы Яндекса используют автономные сети AS13238, AS208722 и AS212066. Адреса часто меняются, список IP не публикуют. Часть роботов качает документы не для индексации и может не слушаться User-agent: *. YaDirectFetcher файл robots.txt не использует. Роботы Метрики помечены как не учитывающие общие правила; вариант 4.0 качает и кэширует CSS, чтобы воспроизвести страницу в Вебвизоре. YandexAdditionalBot и YandexAdditional учитываются в robots.txt, чтобы ограничить показ в быстрых ответах с YandexGPT и в ответах Поиска с Алисой; запросов для индексирования они не делают. Наличие ASN Яндекса не означает, что любой адрес этой системы — поисковый робот.
OpenAI задаёт отдельные токены. GPTBot качает содержимое, которое может пойти в обучение; запрет значит, что содержимое не следует использовать для этого обучения. OAI-SearchBot нужен поиску ChatGPT; сайт, закрытый для него, не показывают в поисковых ответах, хотя ссылка-навигация возможна. Токены независимы: можно пустить поиск и запретить обучение. ChatGPT-User ходит, когда пользователь задал вопрос или сработало действие; автоматическим обходом он не является, правила robots.txt из-за инициативы пользователя могут не применяться, и включение в поиск им не решают. Для автоматических роботов опубликованы JSON со списками адресов. Номера версий в примерах могут меняться. Доли трафика и полный список чужих ИИ-краулеров эта документация не публикует — закрывать «всех ботов» одним токеном OpenAI нельзя.
Если проверка робота сорвалась
Известный поисковый робот может быть пропущен. Решение по визиту не ждёт окончания этой проверки. Сбой проверки не считается доказательством подделки. Как именно робот опознаётся, в это правило не входит. Практический вывод: таймаут DNS — не повод записать визит как поддельный Googlebot.
Порядок:
Представившихся смотрите в отчёте «Роботы», не в основной статистике.
Имя в User-Agent проверьте обратным и прямым DNS или опубликованными диапазонами.
В robots.txt различайте токен поиска и токен обучения. Файл не заменяет контроль доступа.
Загрузчик, который запустил человек, и робот Метрики для Вебвизора не читайте как нарушителя
User-agent: *.Сбой проверки не приравнивайте к подделке.
Кто скликивает рекламу, кликфрод, недействительные клики и возврат денег по строке робота не решаются.