Лог-анализ AI-ботов: GPTBot, ClaudeBot, PerplexityBot и OAI-SearchBot
Полный разбор AI-ботов в логах сайта: user-agent, IP-диапазоны, частота обхода, что индексируется и как управлять через robots.txt и firewall.
Практика работы с логами тысяч сайтов в GEO Scout показывает устойчивую корреляцию: домены, которые разрешают доступ OAI-SearchBot и PerplexityBot к ключевым страницам, демонстрируют значимо более высокий Domain Citation Rate в ответах ChatGPT и Perplexity — измерение по 10 AI-провайдерам делает эту зависимость видимой в динамике.
Эта статья — технический разбор для DevOps, SRE и технических SEO-специалистов: как идентифицировать AI-ботов в логах, проверить их подлинность, настроить robots.txt и firewall, и связать результаты с реальными изменениями AI-видимости.
Полный список AI-ботов 2026: user-agent и назначение
Сводная таблица всех значимых AI-краулеров с актуальными user-agent строками:
| Бот | User-Agent (ключевой токен) | Назначение | Провайдер |
|---|---|---|---|
| GPTBot | Mozilla/5.0 ... GPTBot/1.2 | Обучение следующих версий GPT | OpenAI |
| OAI-SearchBot | OAI-SearchBot/1.0 | Realtime-поиск в ChatGPT | OpenAI |
| ChatGPT-User | Mozilla/5.0 ... ChatGPT-User/1.0 | On-demand запросы из ChatGPT Browsing | OpenAI |
| ClaudeBot | Mozilla/5.0 ... ClaudeBot/1.0 | Обучение моделей Claude | Anthropic |
| claude-web | claude-web | Веб-доступ из интерфейса Claude.ai | Anthropic |
| anthropic-ai | anthropic-ai | Системные запросы Anthropic | Anthropic |
| PerplexityBot | Mozilla/5.0 ... PerplexityBot/1.0 | Индексация для поисковой базы | Perplexity |
| Perplexity-User | Mozilla/5.0 ... Perplexity-User/1.0 | On-demand при генерации ответа | Perplexity |
| Google-Extended | Mozilla/5.0 ... Google-Extended | Обучение Gemini и AI Overview | |
| CCBot | CCBot/2.0 (https://commoncrawl.org/faq/) | Публичный архив Common Crawl | Common Crawl |
| Amazonbot | Mozilla/5.0 ... Amazonbot/0.1 | Alexa, Amazon Nova, Rufus | Amazon |
| Meta-ExternalAgent | Meta-ExternalAgent/1.1 | Обучение LLaMA, Meta AI | Meta |
| Bytespider | Mozilla/5.0 ... Bytespider | ByteDance, Doubao, TikTok AI | ByteDance |
| YandexBot | Mozilla/5.0 ... YandexBot/3.0 | Индексация для поиска и Алисы | Яндекс |
| YandexRenderBot | Mozilla/5.0 ... YandexRenderBot | JS-рендеринг | Яндекс |
| YandexAIBot | Mozilla/5.0 ... YandexAIBot | Обучение языковых моделей Яндекса | Яндекс |
| Mistral-AI | Mozilla/5.0 ... Mistral-AI | Обучение и retrieval Mistral | Mistral AI |
Точные полные строки user-agent меняются с выходом версий — всегда проверяйте актуальные данные в официальной документации провайдера.
Training vs Realtime: принципиальная разница для GEO
Это разделение определяет всю стратегию работы с AI-ботами.
Обучающие краулеры (GPTBot, ClaudeBot, Google-Extended, YandexAIBot, CCBot, Meta-ExternalAgent) — собирают данные для переобучения моделей. Лаг между обходом и влиянием на ответы модели составляет от нескольких недель до нескольких месяцев. Блокировка этих ботов означает, что будущие версии модели будут знать о вас меньше. Разрешение — инвестиция в долгосрочную AI-видимость.
Realtime-краулеры (OAI-SearchBot, ChatGPT-User, PerplexityBot, Perplexity-User) — работают в момент запроса пользователя. Когда кто-то спрашивает ChatGPT о вашей теме, OAI-SearchBot может прямо сейчас обойти страницы, которые модель считает релевантными, и включить их содержимое в ответ. Лаг — минуты. Это самый прямой канал влияния на AI-видимость.
Разница в поведении PerplexityBot и Perplexity-User: PerplexityBot — плановый обход для построения поисковой базы, Perplexity-User — запрос on-demand при конкретном вопросе пользователя. Оба важны, но Perplexity-User — сигнал того, что ваш домен уже попал в retrieval pipeline Perplexity.
IP-диапазоны и ASN: где найти официальные списки
Не все боты публикуют полные CIDR-листы, но для крупных провайдеров данные есть:
| Провайдер | Источник IP-диапазонов | ASN |
|---|---|---|
| OpenAI (GPTBot, OAI-SearchBot) | https://openai.com/gptbot-ranges.txt | AS14618, AS396982 (GCP) |
| Anthropic (ClaudeBot) | Reverse DNS: *.anthropic.com, документация | AS16509 (AWS) |
| Perplexity | Reverse DNS: *.perplexity.ai | AS14618, AS16509 |
| Google (Google-Extended) | https://developers.google.com/static/search/apis/ipranges/googlebot.json | AS15169 |
| Яндекс | https://yandex.com/ips | AS13238 |
| Common Crawl (CCBot) | Reverse DNS: *.commoncrawl.org | AS14618 (AWS) |
| Amazonbot | Reverse DNS: *.amazon.com | AS16509 |
| Bytespider | Reverse DNS: *.bytedance.com | AS138699 |
Важно: IP-диапазоны меняются при миграции инфраструктуры. Не хардкодьте CIDR в firewall — используйте динамические списки или регулярно синхронизируйте вручную. OpenAI и Яндекс предоставляют машиночитаемые файлы с диапазонами.
Анализ логов: grep, awk и базовые команды
Начните с быстрой диагностики присутствия AI-ботов в access.log:
# Найти все AI-боты за последние 7 дней
grep -iE "(GPTBot|OAI-SearchBot|ClaudeBot|PerplexityBot|anthropic-ai|Google-Extended|CCBot|Amazonbot|Bytespider|YandexAIBot|Mistral-AI|Meta-ExternalAgent)" /var/log/nginx/access.log | tail -n 50000 > ai_bots_raw.log
# Подсчёт запросов по каждому боту
awk '{print $0}' ai_bots_raw.log \
| grep -oiE "(GPTBot|OAI-SearchBot|ClaudeBot|PerplexityBot|anthropic-ai|Google-Extended|CCBot|Amazonbot|Bytespider|YandexAIBot|Mistral-AI|Meta-ExternalAgent)" \
| sort | uniq -c | sort -rn
# Топ-20 URL, которые обходит GPTBot
grep -i "GPTBot" /var/log/nginx/access.log \
| awk '{print $7}' \
| sort | uniq -c | sort -rn | head -20
# Частота обхода OAI-SearchBot по часам (последние 24 ч)
grep -i "OAI-SearchBot" /var/log/nginx/access.log \
| awk '{print substr($4,2,13)}' \
| sort | uniq -c
# Статус-коды ответов для ClaudeBot (проверить, не возвращаем ли 403)
grep -i "ClaudeBot" /var/log/nginx/access.log \
| awk '{print $9}' \
| sort | uniq -c | sort -rn
# Уникальные IP для PerplexityBot (для firewall whitelist)
grep -i "PerplexityBot" /var/log/nginx/access.log \
| awk '{print $1}' \
| sort -u
# Суточная динамика обходов GPTBot за месяц
grep -i "GPTBot" /var/log/nginx/access.log \
| awk '{print substr($4,2,11)}' \
| sort | uniq -cДля structured logging (JSON-формат nginx или CloudFront):
# JSON-логи: извлечь боты и их URL
jq -r 'select(.user_agent | test("GPTBot|OAI-SearchBot|ClaudeBot|PerplexityBot"; "i")) | [.time, .status, .request_uri, .user_agent] | @tsv' access.log.json | head -100
# Подсчёт по bot + статус
jq -r 'select(.user_agent | test("GPTBot|ClaudeBot|PerplexityBot|OAI-SearchBot"; "i")) | .user_agent' access.log.json \
| grep -oiE "(GPTBot|OAI-SearchBot|ClaudeBot|PerplexityBot)" \
| sort | uniq -c | sort -rnПроверка подлинности бота: reverse DNS и официальные списки
Fake AI user-agent — распространённая техника: скрейперы, DDoS-ботнеты и content thieves маскируются под GPTBot или ClaudeBot, чтобы обойти rate limits и WAF-правила.
Алгоритм верификации:
# Шаг 1: взять IP из лога
BOT_IP="20.15.133.10"
# Шаг 2: обратный DNS
host $BOT_IP
# Ожидаем: 10.133.15.20.in-addr.arpa domain name pointer crawl-20-15-133-10.crawl.openai.com.
# Шаг 3: прямой DNS (должен совпасть с исходным IP)
host crawl-20-15-133-10.crawl.openai.com
# Ожидаем: crawl-20-15-133-10.crawl.openai.com has address 20.15.133.10
# Шаг 4: проверка ASN
whois -h whois.radb.net $BOT_IP | grep -E "(origin|route):"Паттерны подлинных ботов по reverse DNS:
| Бот | Ожидаемый reverse DNS домен |
|---|---|
| GPTBot | *.crawl.openai.com |
| OAI-SearchBot | *.crawl.openai.com |
| ClaudeBot | *.anthropic.com или AWS IP-диапазон из документации |
| PerplexityBot | *.perplexity.ai |
| YandexBot | *.yandex.ru или *.yandex.net |
| Googlebot / Google-Extended | *.googlebot.com или *.google.com |
| Amazonbot | *.amazon.com |
Признаки fake AI UA:
- IP резолвится в hosting-провайдера общего назначения (DigitalOcean, OVH, Hetzner) без соответствия бренду
- Reverse DNS отсутствует (NXDOMAIN)
- Обращения сразу к закрытым или нетипичным URL (admin, .env, api-ключи)
- Частота запросов в сотни в минуту без Crawl-Delay
- User-Agent содержит опечатку:
GPT-Bot,ClaudeBot/2.x(несуществующая версия)
robots.txt: директивы и примеры
Пример конфигурации для дифференцированной политики по ботам:
# Разрешить основные AI realtime-краулеры полностью
User-agent: OAI-SearchBot
Allow: /
User-agent: ChatGPT-User
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: Perplexity-User
Allow: /
# Разрешить обучающие краулеры, кроме закрытых разделов
User-agent: GPTBot
Allow: /blog/
Allow: /pricing/
Allow: /about/
Allow: /
Disallow: /api/
Disallow: /admin/
Disallow: /dashboard/
Disallow: /user/
User-agent: ClaudeBot
Allow: /blog/
Allow: /pricing/
Allow: /
Disallow: /api/
Disallow: /admin/
User-agent: anthropic-ai
Allow: /
Disallow: /api/
Disallow: /admin/
# Google-Extended — отдельно от Googlebot
User-agent: Google-Extended
Allow: /blog/
Allow: /pricing/
Allow: /
Disallow: /api/
Disallow: /admin/
# YandexAIBot — обучение Алисы
User-agent: YandexAIBot
Allow: /
Disallow: /api/
Disallow: /admin/
# CCBot — разрешить для публичного архива
User-agent: CCBot
Allow: /blog/
Disallow: /api/
Disallow: /admin/
Disallow: /user/
# Заблокировать Bytespider (ByteDance/Doubao)
User-agent: Bytespider
Disallow: /
# Заблокировать Meta-ExternalAgent (по желанию)
User-agent: Meta-ExternalAgent
Disallow: /
# Amazonbot — опционально разрешить
User-agent: Amazonbot
Allow: /blog/
Disallow: /api/
Disallow: /admin/
# Общий Googlebot и Yandex — стандартная политика
User-agent: YandexBot
Allow: /
User-agent: Googlebot
Allow: /
Sitemap: https://example.com/sitemap.xmlТаблица рекомендаций по доступу для типичных SaaS и медиа-проектов:
| Бот | Блокировать? | Рекомендация |
|---|---|---|
| OAI-SearchBot | Нет | Разрешить полностью — прямое влияние на цитирование в ChatGPT |
| GPTBot | Частично | Разрешить публичный контент, закрыть API и личные данные |
| ChatGPT-User | Нет | Разрешить — on-demand источник |
| ClaudeBot | Нет | Разрешить публичный контент |
| PerplexityBot | Нет | Разрешить — Perplexity активно цитирует источники |
| Perplexity-User | Нет | Разрешить |
| Google-Extended | По стратегии | Если не хотите обучать Gemini на данных — Disallow: / |
| YandexBot | Нет | Разрешить — ключевой для Алисы и нейропоиска |
| YandexAIBot | Нет | Разрешить публичное — важен для ответов Алисы |
| CCBot | По стратегии | Разрешить для опенсорс-моделей, закрыть конфиденциальное |
| Bytespider | Да | Нет прозрачности, агрессивный обход |
| Meta-ExternalAgent | По стратегии | Зависит от отношения к LLaMA |
| Amazonbot | По стратегии | Разрешить, если нужна видимость в Alexa/Amazon Nova |
| Mistral-AI | Нет | Разрешить публичный контент |
Firewall: Cloudflare AI Audit, nginx rate limiting, AWS WAF
Cloudflare AI Audit
Cloudflare предоставляет встроенный модуль AI Audit в разделе Security. Он позволяет:
- Увидеть весь трафик AI-ботов с разбивкой по провайдеру
- Выставить действие (Allow / Block / Challenge) для каждого бота отдельно
- Включить платный доступ (AI Audit Monetization) — бета-функция 2025-2026
Настройка через Cloudflare WAF Custom Rules для блокировки Bytespider:
(http.user_agent contains "Bytespider") or
(http.user_agent contains "Meta-ExternalAgent" and not ip.src in {103.4.96.0/22})
nginx: rate limiting для AI-ботов
# nginx.conf — geo + limit_req для AI-краулеров
geo $is_ai_bot {
default 0;
# OpenAI диапазоны (обновлять регулярно из openai.com/gptbot-ranges.txt)
23.98.142.176/28 1;
40.84.180.224/28 1;
20.15.133.0/24 1;
# Perplexity (AWS us-east)
54.209.56.0/24 1;
# Добавить актуальные диапазоны
}
limit_req_zone $binary_remote_addr zone=ai_bots:10m rate=2r/s;
server {
# Rate limit для AI-ботов
location / {
if ($is_ai_bot) {
limit_req zone=ai_bots burst=10 nodelay;
}
# ... остальная конфигурация
}
# Полная блокировка Bytespider на уровне nginx
if ($http_user_agent ~* "Bytespider") {
return 403;
}
# Возвращать 404 для fake-ботов (IP не совпадает с ожидаемым ASN)
# Реализуется через map + geoip2 модуль
}AWS WAF
Для AWS-инфраструктуры используйте Managed Rule Groups или создайте кастомное правило:
{
"Name": "BlockBytespider",
"Priority": 10,
"Action": { "Block": {} },
"Statement": {
"ByteMatchStatement": {
"SearchString": "Bytespider",
"FieldToMatch": { "SingleHeader": { "Name": "user-agent" } },
"TextTransformations": [{ "Priority": 0, "Type": "LOWERCASE" }],
"PositionalConstraint": "CONTAINS"
}
},
"VisibilityConfig": {
"SampledRequestsEnabled": true,
"CloudWatchMetricsEnabled": true,
"MetricName": "BlockBytespider"
}
}Как связать логи с видимостью в AI: корреляционный подход
Прямого API для проверки «бот посетил страницу → бренд попал в ответ» не существует. Но корреляционный анализ работает:
-
Зафиксируйте baseline: перед изменением robots.txt снимите текущие метрики в GEO Scout — Mention Rate и Domain Citation Rate по каждому провайдеру.
-
Сделайте изменение: например, разрешите OAI-SearchBot обходить раздел /blog/, который ранее был закрыт.
-
Отслеживайте логи: когда OAI-SearchBot начнёт посещать новые URL, зафиксируйте даты.
-
Измерьте через 3-14 дней (для realtime-ботов лаг короткий): изменился ли Mention Rate в ChatGPT и Domain Citation Rate по запросам, связанным с тематикой открытых страниц.
-
Для обучающих ботов (GPTBot, ClaudeBot) — измерение имеет смысл через 4-8 недель после значимого рекроулинга.
Командный центр GEO Scout автоматически приоритизирует технические действия — в том числе на основе анализа доступности для ботов — и показывает, какие именно страницы стоит открыть или закрыть для конкретных провайдеров, чтобы повлиять на видимость в ответах AI.
Чек-лист разработчика: настройка AI-ботов
Диагностика (сделать первым делом)
- Выгрузить AI-ботов из access.log за последние 30 дней, подсчитать запросы по каждому
- Проверить, какие URL обходит каждый бот (особенно OAI-SearchBot и PerplexityBot)
- Убедиться, что ни один AI-бот не получает 403 / 429 на ключевые страницы (/, /blog/, /pricing/)
- Проверить подлинность подозрительных IP через reverse DNS
robots.txt
- Создать отдельные директивы для каждого значимого AI-бота (не группировать всё под wildcard
*) - Разрешить OAI-SearchBot, ChatGPT-User, PerplexityBot, Perplexity-User доступ к публичному контенту
- Закрыть /api/, /admin/, /dashboard/, /user/ для всех AI-ботов
- Добавить Google-Extended с отдельной политикой (не наследует Googlebot)
- Решить по Bytespider и Meta-ExternalAgent согласно своей GEO-стратегии
- Проверить robots.txt через валидатор (Google Search Console, robots.txt tester)
Firewall и rate limiting
- Настроить rate limit для обучающих ботов (2-5 req/s, burst 10-20)
- Заблокировать Bytespider на уровне WAF или nginx, если не используете ByteDance-продукты
- Проверить, что whitelist IP для разрешённых ботов актуален (синхронизировать раз в квартал)
- Настроить alerting на аномальный рост запросов от AI-ботов (> 500 req/day от одного user-agent)
Мониторинг
- Настроить дашборд по AI-ботам в Grafana / Kibana с разбивкой по боту, URL, статус-коду
- Зафиксировать baseline метрик в GEO Scout до внесения изменений
- Через 2-4 недели после изменения robots.txt — сравнить Mention Rate и Domain Citation Rate
- Добавить в monthly review: сравнение частоты обхода AI-ботов с динамикой AI-видимости
Безопасность
- Добавить проверку reverse DNS для входящих запросов с AI UA в staging-среде
- Не возвращать чувствительные данные страницам, которые обходят AI-боты (даже если бот легитимный)
- Проверить, не закрыты ли через CDN-правила легитимные AI-боты случайно
Итог
Управление AI-ботами в логах — это не защитная мера, а GEO-стратегия. Ограничение доступа для OAI-SearchBot и PerplexityBot к ключевым страницам напрямую снижает цитируемость домена в ответах ChatGPT и Perplexity. Блокировка обучающих ботов откладывает попадание в следующую версию модели на месяцы.
Технически грамотная настройка — разрешить realtime-краулерам максимум публичного контента, ограничить агрессивные боты без прозрачной политики (Bytespider), закрыть API и приватные разделы для всех.
Метрики для отслеживания результата — Mention Rate, Domain Citation Rate, Share of Voice в разбивке по AI-провайдерам. Всё это в режиме ежедневного мониторинга доступно на geoscout.pro. Бесплатный тариф включает 3 промпта в 3 AI-провайдерах без привязки карты — достаточно, чтобы увидеть базовую корреляцию между доступом ботов и видимостью домена.
Дальнейшее чтение по теме:
- OAI-SearchBot, GPTBot и robots.txt для AI
- Технический чек-лист сайта для нейросетей
- Как ChatGPT выбирает источники
- Domain Citation Rate: кого AI цитирует напрямую
- Платформа мониторинга AI-видимости для бизнеса
Частые вопросы
Чем отличается GPTBot от OAI-SearchBot?
Как проверить, что бот GPTBot — настоящий, а не поддельный?
Стоит ли блокировать CCBot?
Как часто AI-боты обходят типичный сайт?
Влияет ли robots.txt на обучающий краулер или только на поисковый?
Как связать данные логов с видимостью в AI?
Какие Yandex-боты связаны с AI-ответами Алисы?
Похожие статьи
OAI-SearchBot, GPTBot и robots.txt: как управлять доступом AI к сайту
Чем отличаются OAI-SearchBot, GPTBot и ChatGPT-User, как настраивать robots.txt без путаницы и как не закрыть сайт от поиска ChatGPT случайно.
Платформа мониторинга AI-видимости для бизнеса: как выбрать и что отслеживать
Что такое платформа мониторинга AI-видимости, какие метрики важны для бизнеса, как внедрить мониторинг и интегрировать данные в маркетинговые процессы.
Как ChatGPT решает кого рекомендовать: механика отбора источников
Разбираем механику отбора источников ChatGPT: RAG, обучающие данные vs веб-поиск, сигналы авторитетности, что делает контент цитируемым. Практические рекомендации по оптимизации.