AI-краулеры раздувают показатели вашего трафика, а привычный способ — проверка заголовка User-Agent — не помогает.

Недавний восьмидневный анализ логов выявил 468 реальных запросов к статьям, но при этом 991 запрос, который притворялся ИИ-ботом, а на самом деле прощупывал наличие таких файлов, как .env или .git. Виновник? Любой может вставить в HTTP-запрос самопровозглашенную строку User-Agent, например GPTBot или ChatGPT-User.

Почему эта метрика важна

Веб-сайты воспринимают всплеск «трафика ИИ» как признак релевантности. Эти цифры используют для обоснования стоимости рекламы, распределения серверных ресурсов и хвастовства перед инвесторами. Когда половина заявленных заходов ИИ оказывается просто шумом, бюджеты расходуются неэффективно, а дашборды вводят в заблуждение.

Два фильтра, отделяющих утверждения от реальности

  1. verifiedBotCategory от Cloudflare — Cloudflare заполняет это поле только после того, как сопоставит IP-адрес запроса с известным доменом бота через обратный DNS (reverse DNS). Если в заголовке указано «GPTBot», но IP-адрес не прошел проверку, запрос попадает в категорию «неподтвержденных».
  2. Перекрестная проверка по карте сайта (sitemap) — бот действительно читает ваш контент только тогда, когда запрашиваемый URL присутствует в вашем XML-файле sitemap. Запросы к путям, отсутствующим в карте сайта, скорее всего, направлены на поиск уязвимостей, а не на индексацию статей.

Применение обоих фильтров к одной и той же восьмидневной выборке дало поразительные результаты:

  • ChatGPT-User — 39 % запросов прошли проверку.
  • GPTBot — 13 % подтвержденных.
  • PerplexityBot — 0 % подтвержденных.
  • Google-Extended — 0 % подтвержденных; эта строка не соответствует ни одному официальному краулеру Google.

Даже среди подтвержденных вызовов многие боты запрашивали только robots.txt или саму карту сайта, а не те страницы со статьями, которые представляют для вас интерес.

Что разработчики могут сделать уже сегодня

  • Включите проверку ботов Cloudflare в вашем конвейере аналитики. Поле verifiedBotCategory доступно в заголовках запросов, и его можно сохранять вместе с вашими собственными логами.
  • Поддерживайте актуальную карту сайта и автоматизируйте проверку: каждый входящий путь запроса должен существовать в sitemap, прежде чем вы засчитаете его как просмотр контента.
  • Отфильтровывайте методы, отличные от GET, и запросы, нацеленные на типичные файлы разработки (.env, .git, .bak). Это почти всегда вредоносное сканирование.

Контраргумент

Некоторые утверждают, что проверки через reverse DNS можно подделать, а законная цель бота может заключаться в поиске новых URL, которые еще не внесены в карту сайта. Эти опасения обоснованы: решительный злоумышленник может скомпрометировать DNS-запись, а новый контент естественным образом будет отсутствовать в текущей карте сайта до следующего цикла её генерации.

Прагматичный подход заключается в том, чтобы рассматривать верификацию как показатель достоверности, а не как абсолютный барьер. Сочетайте проверку DNS, наличие в sitemap и проверку методов запроса, чтобы повысить планку того, что вы считаете «реальным трафиком ИИ». Если запрос проходит две из трех проверок, помечайте его для ручного анализа, а не отбрасывайте сразу.

На что обратить внимание в будущем

  • Изменения в API верификации Cloudflare — любое изменение логики verifiedBotCategory может изменить показатели подтвержденных ботов.
  • Появление новых ботов с самоидентификацией — следите за строками User-Agent в ваших логах; внезапный всплеск может указывать на новый сканер, маскирующийся под ИИ-краулер.
  • Частота генерации карты сайта — слишком большие интервалы увеличивают вероятность того, что легитимные краулеры будут классифицированы неверно.

Вывод прост: перестаньте воспринимать строку User-Agent как доказательство. Используйте многослойную проверку через DNS и валидацию sitemap, и вы получите более четкую картину того, кто на самом деле читает ваш контент.

Source: https://dev.to/aulvem/ai-crawler-user-agents-are-self-reported-468-real-fetches-991-fake-ones-bgo