🎯 Бесплатно: первая проверка AI-видимости за 5 минут, затем обновление раз в 7 днейПопробовать →

13 мин чтения

Лог-анализ AI-ботов: GPTBot, ClaudeBot, PerplexityBot и OAI-SearchBot

Полный разбор AI-ботов в логах сайта: user-agent, IP-диапазоны, частота обхода, что индексируется и как управлять через robots.txt и firewall.

Владислав Пучков
Владислав Пучков
Основатель GEO Scout, эксперт по GEO-оптимизации

Практика работы с логами тысяч сайтов в 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 (ключевой токен)НазначениеПровайдер
GPTBotMozilla/5.0 ... GPTBot/1.2Обучение следующих версий GPTOpenAI
OAI-SearchBotOAI-SearchBot/1.0Realtime-поиск в ChatGPTOpenAI
ChatGPT-UserMozilla/5.0 ... ChatGPT-User/1.0On-demand запросы из ChatGPT BrowsingOpenAI
ClaudeBotMozilla/5.0 ... ClaudeBot/1.0Обучение моделей ClaudeAnthropic
claude-webclaude-webВеб-доступ из интерфейса Claude.aiAnthropic
anthropic-aianthropic-aiСистемные запросы AnthropicAnthropic
PerplexityBotMozilla/5.0 ... PerplexityBot/1.0Индексация для поисковой базыPerplexity
Perplexity-UserMozilla/5.0 ... Perplexity-User/1.0On-demand при генерации ответаPerplexity
Google-ExtendedMozilla/5.0 ... Google-ExtendedОбучение Gemini и AI OverviewGoogle
CCBotCCBot/2.0 (https://commoncrawl.org/faq/)Публичный архив Common CrawlCommon Crawl
AmazonbotMozilla/5.0 ... Amazonbot/0.1Alexa, Amazon Nova, RufusAmazon
Meta-ExternalAgentMeta-ExternalAgent/1.1Обучение LLaMA, Meta AIMeta
BytespiderMozilla/5.0 ... BytespiderByteDance, Doubao, TikTok AIByteDance
YandexBotMozilla/5.0 ... YandexBot/3.0Индексация для поиска и АлисыЯндекс
YandexRenderBotMozilla/5.0 ... YandexRenderBotJS-рендерингЯндекс
YandexAIBotMozilla/5.0 ... YandexAIBotОбучение языковых моделей ЯндексаЯндекс
Mistral-AIMozilla/5.0 ... Mistral-AIОбучение и retrieval MistralMistral 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.txtAS14618, AS396982 (GCP)
Anthropic (ClaudeBot)Reverse DNS: *.anthropic.com, документацияAS16509 (AWS)
PerplexityReverse DNS: *.perplexity.aiAS14618, AS16509
Google (Google-Extended)https://developers.google.com/static/search/apis/ipranges/googlebot.jsonAS15169
Яндексhttps://yandex.com/ipsAS13238
Common Crawl (CCBot)Reverse DNS: *.commoncrawl.orgAS14618 (AWS)
AmazonbotReverse DNS: *.amazon.comAS16509
BytespiderReverse DNS: *.bytedance.comAS138699

Важно: 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 для проверки «бот посетил страницу → бренд попал в ответ» не существует. Но корреляционный анализ работает:

  1. Зафиксируйте baseline: перед изменением robots.txt снимите текущие метрики в GEO Scout — Mention Rate и Domain Citation Rate по каждому провайдеру.

  2. Сделайте изменение: например, разрешите OAI-SearchBot обходить раздел /blog/, который ранее был закрыт.

  3. Отслеживайте логи: когда OAI-SearchBot начнёт посещать новые URL, зафиксируйте даты.

  4. Измерьте через 3-14 дней (для realtime-ботов лаг короткий): изменился ли Mention Rate в ChatGPT и Domain Citation Rate по запросам, связанным с тематикой открытых страниц.

  5. Для обучающих ботов (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-провайдерах без привязки карты — достаточно, чтобы увидеть базовую корреляцию между доступом ботов и видимостью домена.

Дальнейшее чтение по теме:

Частые вопросы

Чем отличается GPTBot от OAI-SearchBot?
GPTBot — обучающий краулер OpenAI, его данные попадают в следующие версии модели с задержкой в недели или месяцы. OAI-SearchBot — краулер реального времени для функции поиска в ChatGPT: он индексирует страницы по запросу пользователя прямо во время диалога. Для GEO важны оба, но OAI-SearchBot влияет на видимость немедленно.
Как проверить, что бот GPTBot — настоящий, а не поддельный?
Выполните обратное DNS-разрешение IP-адреса из лога: настоящий GPTBot всегда резолвится в домен *.crawl.openai.com. Затем прямое разрешение должно совпадать с исходным IP. Дополнительно сверьтесь с официальным списком ASN OpenAI (AS396982 для GCP-диапазонов) на сайте openai.com/gptbot.
Стоит ли блокировать CCBot?
Зависит от стратегии. CCBot собирает данные для Common Crawl — публичного архива, который используется при обучении многих моделей, в том числе Llama, Mistral и других опенсорс-LLM. Если вы хотите расширить обучающий датасет и потенциально повысить видимость в опенсорс-моделях, CCBot лучше разрешить. Если данные конфиденциальны — блокируйте.
Как часто AI-боты обходят типичный сайт?
По данным из production логов 2026 года: GPTBot — 1-5 страниц в сутки на среднем сайте (взрывные пики до 200 стр/сутки при рекроулинге). OAI-SearchBot — нерегулярно, пики во время роста трафика на ChatGPT. ClaudeBot — 2-10 стр/сутки. PerplexityBot — 5-30 стр/сутки (Perplexity активно индексирует в реальном времени). Yandex ботов — 20-100 стр/сутки на рунет-сайтах.
Влияет ли robots.txt на обучающий краулер или только на поисковый?
Разные боты интерпретируют robots.txt по-разному. OAI-SearchBot, ClaudeBot, PerplexityBot официально заявляют о соблюдении robots.txt. GPTBot тоже соблюдает, но это относится к будущему обучению — данные, уже попавшие в модель, отозвать через robots.txt нельзя. CCBot и Bytespider соблюдают robots.txt неконсистентно.
Как связать данные логов с видимостью в AI?
Прямой API у AI-провайдеров для этого нет. Практический подход: зафиксировать периоды активности конкретных ботов в логах, сопоставить с изменениями метрик в GEO Scout (Mention Rate, Domain Citation Rate) с временным лагом 2-6 недель для обучающих кроулеров и 1-3 дня для realtime-ботов.
Какие Yandex-боты связаны с AI-ответами Алисы?
YandexBot — основной краулер для поисковой выдачи и нейропоиска. YandexRenderBot — рендеринг JS-страниц. YandexAIBot — специализированный бот для обучения языковых моделей Яндекса, включая Алису. Блокировка YandexAIBot при разрешении YandexBot снизит вероятность попадания в ответы Алисы, не влияя на классическую выдачу.