GPTBot в логах: как отличить настоящего краулера OpenAI от подделки
Проблема: user agent ничего не доказывает
Когда речь заходит об AI-краулерах, почти все материалы ограничиваются тем, что прописать в robots.txt. Гораздо реже проверяют, приходят ли эти краулеры вообще и совпадает ли трафик, представляющийся GPTBot, с реальной инфраструктурой OpenAI.
Ключевая мысль: строка user agent сама по себе не является доказательством. Любой скрипт может отправить произвольный UA. Проверка строится из двух шагов — найти в логах токены ботов и сверить IP каждого запроса с диапазонами, которые публикует вендор.
Шаг 1. Считаем, кто называет себя ботом
Важная деталь: имя вендора спрятано внутри длинной строки user agent. В документации OpenAI, например, OAI-SearchBot обёрнут в полную строку Chrome — точное совпадение по полю ничего не найдёт. Искать нужно по токену, а не по всей строке.
Автор приводит пример с grep по токенам вида GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-User, Claude-SearchBot, PerplexityBot, Perplexity-User с последующей сортировкой и подсчётом. На демонстрационном логе это дало 6 GPTBot, 3 OAI-SearchBot, 3 ClaudeBot, 2 ChatGPT-User и 1 PerplexityBot.
Но это пока лишь заявки, а не факты: подсчёт показывает, кто *представляется* ботом, а не кто им является.
Кто что публикует
OpenAI, Anthropic и Perplexity разделяют краулинг на отдельные агенты и публикуют списки IP в формате JSON:
OpenAI: GPTBot (обучение), OAI-SearchBot (поиск в ChatGPT), ChatGPT-User (пользователь спросил о странице). Списки — на openai.com (gptbot.json, searchbot.json, chatgpt-user.json).
Anthropic: ClaudeBot, Claude-User, Claude-SearchBot — всё покрыто одним списком на claude.com.
Perplexity: PerplexityBot и Perplexity-User с отдельными JSON-файлами.
Списки устаревают с разной скоростью. По данным автора, файл ChatGPT-User содержал 234 префикса с датой 7 октября 2026 года, а два файла Perplexity датировались февралём и октябрём 2025 года. Вывод: обновлять их нужно по расписанию, а не один раз копировать диапазоны в фаервол.
Отдельно OpenAI отмечает, что её боты могут добавлять маркер robots.txt в user agent при запросе этого файла — это помогает, если в логах не сохраняются пути.
Шаг 2. Проверяем IP
Все пять файлов используют одну схему, поэтому один скрипт на стандартной библиотеке Python покрывает всех вендоров. Логика простая: собрать сети из поля с префиксами (ipv4Prefix или ipv6Prefix), распарсить строку лога, вытащить IP и user agent, а затем проверить принадлежность адреса нужной сети.
На демонстрационном логе из 15 запросов все строки ChatGPT-User, OAI-SearchBot и PerplexityBot подтвердились, 4 из 6 GPTBot и 2 из 3 ClaudeBot — тоже. А 3 запроса пришли с адресов из документационных диапазонов, которыми не владеет ни один вендор, — это подделки.
Техническая тонкость: проверять принадлежность нужно через ip in network, а не арифметикой по адресам. У Anthropic в списке много одиночных записей /32, и арифметика на таких ломается.
Чего в логах не увидеть
Google-Extended не появляется ни в одном логе. По документации Google у него нет отдельного user agent: краулинг идёт под существующими агентами Google, а токен — это лишь переключатель в robots.txt, разрешающий или запрещающий использование контента для обучения Gemini. Его можно задать, но измерить нельзя.
Что это значит на практике
Проверка логов даёт то, чего не даёт настройка robots.txt: понимание, кто реально приходит на сайт и не маскируется ли под известного бота кто-то другой. Подход не требует сторонних сервисов — достаточно доступа к логам, официальных JSON-списков вендоров и небольшого скрипта.
Читайте также
Vercel vs Netlify: какую платформу выбрать для деплоя фронтенда в 2026 году
Поддельный Ryzen 9 9900X3D без кристаллов: как отличить фальшивый процессор AMD от оригинала
Дефицит оперативной памяти затянется до 2030 года: почему цены на DRAM растут
Бюджет требует доказательств: что оставить в ИТ-портфеле на 2027 год
Комментарии
Комментарии доступны только зарегистрированным пользователям. Войти
- Пока нет комментариев. Будьте первым.
