Сейчас все считают AI-краулеров. Открыть лог, найти GPTBot, сложить. Это число
неверное, и заметно.
Измерение ниже сделано на логах сайта, который находится у нас на поддержке и поисковой оптимизации: девять дней, 11 569 запросов. Каждый запрос, представлявшийся OpenAI, сверен с диапазонами IP, которые OpenAI публикует.
Результат
| агент | запросов | настоящих | подделка |
|---|---|---|---|
| GPTBot | 437 | 216 | 50% |
| OAI-SearchBot | 168 | 55 | 67% |
| ChatGPT-User | 114 | 9 | 92% |
| всего | 719 | 280 | 61% |
Шесть из десяти запросов, говорящих «OpenAI», к OpenAI отношения не имеют.
Доля растёт по мере того, как агента удобнее выдавать за себя. GPTBot собирает
данные для обучения и блокируется чаще всех, поэтому его имя занимать невыгодно.
ChatGPT-User срабатывает, когда человек просит ChatGPT открыть страницу, — это
трафик, который никто не блокирует, потому что за ним стоит живой запрос. Поэтому
92% его приходит не оттуда.
Что запрашивают поддельные
Не содержимое.
GET /secrets.json 404 "...compatible; ChatGPT-User/1.0..."
GET /server.key 404 "...compatible; ChatGPT-User/1.0..."
GET /service_account.json 404 "...compatible; ChatGPT-User/1.0..."
GET /.zsh_history 404 "...compatible; ChatGPT-User/1.0..."
GET /stripe.json 404 "...compatible; ChatGPT-User/1.0..."
Это сканеры, ищущие учётные данные под user-agent, который никто не фильтрует. Из 1 314 «AI»-запросов за период 406 получили 404 — почти все именно такие.
Ничего не нашли, потому что там ничего нет. Но конфигурационный файл, однажды оставленный в корне, забрал бы сканер, переодетый в ChatGPT.
Почему это важно
Любой отчёт о видимости в AI, построенный на строке user-agent, завышен. Если инструмент говорит, что GPTBot приходил 437 раз, половина этого — кто-то другой. Если он говорит, что 114 человек спрашивали ChatGPT о вашем сайте, настоящее число — девять.
Разница не косметическая. Девять настоящих запросов ChatGPT-User за девять дней
означают «пока почти никто не спрашивает», и это полезный ответ. Сто четырнадцать
означают «у нас есть тяга», и это неправда, из-за которой перестают работать над
тем, над чем стоило бы.
Как проверять правильно
User-agent — это строка, которую может написать кто угодно. Единственное доказательство — IP-адрес.
OpenAI публикует диапазоны в виде JSON, отдельным файлом на агента:
https://openai.com/gptbot.json— 21 диапазонhttps://openai.com/searchbot.json— 35https://openai.com/chatgpt-user.json— 204
Проверка — попадает ли адрес хотя бы в один из них. Запрос с нужным именем, но не из опубликованных диапазонов, поддельный, каким бы убедительным ни выглядела строка.
Google публикует то же самое для Googlebot, и там есть второй способ: обратный
DNS-запрос, возвращающий имя в зоне googlebot.com, и затем прямой запрос по
этому имени. Если оба сходятся — это Googlebot.
Что проверить нельзя
Anthropic диапазоны IP не публикует. Аналогичного файла нет ни по одному из адресов, где его логично было бы ожидать.
Значит, для ClaudeBot и Claude-User публичного способа отделить настоящее от
поддельного не существует. Осторожное допущение: доля близка к той, что у OpenAI,
и эти цифры тоже завышены.
С Perplexity так же: имя задокументировано, диапазоны — нет.
Что с этим делать
Не блокируйте по user-agent. Сканер, притворяющийся ChatGPT-User, не
остановится оттого, что вы запретили ChatGPT-User в robots.txt, — он этот файл
не читает. Единственное, чего вы добьётесь, — заблокируете настоящего.
Проверяйте, прежде чем отчитываться. Если вы строите панель видимости в AI, сверка по IP — это разница между числом и мнением.
Смотрите на коды ответов, а не только на визиты. Высокая доля 404 у агента, который должен читать статьи, — самый простой признак того, что пришёл он не за статьями.