Google начал разворачивать в Search Console отчётность по своим AI-поверхностям: трафик и показы стало видно с учётом AI Overviews и AI Mode. До этого AI-клики были размазаны внутри общего веб-отчёта, и понять, сколько дал именно ИИ-ответ, было нельзя. Я полез смотреть и довольно быстро уткнулся в потолок.

Оказалось, что Search Console показывает только AI-поверхности самого Google. Ни ChatGPT, ни Perplexity, ни Claude, ни Алиса в него не попадают в принципе — они не Google. Если вы, как и я, хотите видеть весь AI-трафик, а не только гугловский, придётся идти в логи сервера. Ниже — что именно даёт новый отчёт, где у него слепые зоны и как я закрываю их парсером логов.

Что реально показывает новый отчёт GSC

Отчёт добавляет к привычному «Performance» разбивку с учётом генеративных поверхностей Google:

  • показы и клики, в которых участвовали AI Overviews / AI Mode, теперь не полностью растворены в общем вебе;

  • можно оценить, как presence в AI-ответе бьёт по обычному CTR (а он бьёт — сниппет-ответ часто снимает клик);

  • разбивка по типам поверхностей — насколько ваш контент вообще всплывает в генеративных блоках Google.

Три слепые зоны

№1. GSC по определению не видит трафик и показы из чужих экосистем. ChatGPT с веб-поиском, Perplexity, Claude, нейропоиск Алисы — всё это проходит мимо. По моим наблюдениям за источниками AI-трафика, на не-гугловые ИИ приходится существенная доля, и она в отчёте просто отсутствует.

№2. Когда пользователь переходит из ответа ChatGPT или из ассистента, браузер нередко не передаёт корректный referrer. В аналитике такой визит падает в «прямые заходы» или теряется. GSC тут не помощник вообще, а обычная веб-аналитика недосчитывает. Единственное честное место, где виден факт обращения ИИ к вашему контенту, — это логи вашего же сервера, куда бот приходит под своим user-agent.

№3. Отчёт скажет, что вы участвовали в показе, но не покажет, процитировали ли вас в самом AI-ответе и с какой формулировкой. А для видимости в нейросетях важно именно это.

Единственный источник правды — логи сервера

GSC — полезное дополнение, но фундамент замера AI-присутствия — это server-side логи. Туда AI-краулеры приходят под опознаваемыми user-agent, и это фиксируется независимо от referrer, куки и JavaScript. Надо только знать, кого ловить.

Вот актуальный список ботов, которые я использую (проверяется по официальным докам вендоров и по строкам в логах):

  • OpenAI: GPTBot (обучение), OAI-SearchBot (поиск ChatGPT), ChatGPT-User (переход по запросу пользователя).

  • Perplexity: PerplexityBot, Perplexity-User.

  • Anthropic: ClaudeBot, anthropic-ai, Claude-User.

  • Google: Google-Extended (управление доступом для Gemini/Vertex), плюс сам Googlebot, который обслуживает и AI Overviews.

  • Прочие: CCBot (Common Crawl, кормит многие модели), Amazonbot, Applebot-Extended, Bytespider, YandexBot (участвует в нейропоиске Алисы).

Разница по смыслу принципиальная: GPTBot — это индексация впрок, а OAI-SearchBot и ChatGPT-User — признак того, что ваш контент подтянули под конкретный ответ здесь и сейчас.

Парсер логов на 40 строк

Логику я держу максимально простой: идём по access-логу, матчим user-agent по подстроке, считаем визиты по каждому боту и по типу (обучение / живой ответ). Вот рабочий костяк под nginx-подобный формат.

import re
from collections import Counter

# бот -> (подстрока в user-agent, тип обращения)
AI_BOTS = {
    "GPTBot":          ("GPTBot",          "training"),
    "OAI-SearchBot":   ("OAI-SearchBot",   "live"),
    "ChatGPT-User":    ("ChatGPT-User",    "live"),
    "PerplexityBot":   ("PerplexityBot",   "training"),
    "Perplexity-User": ("Perplexity-User", "live"),
    "ClaudeBot":       ("ClaudeBot",       "training"),
    "Claude-User":     ("Claude-User",     "live"),
    "Google-Extended": ("Google-Extended", "training"),
    "CCBot":           ("CCBot",           "training"),
    "Applebot-Ext":    ("Applebot-Extended","training"),
}

# формат: ... "GET /path HTTP/1.1" 200 1234 "ref" "user-agent"
LINE = re.compile(r'"(?:GET|POST|HEAD) (?P<path>\S+).*?" \d{3} \d+ "[^"]*" "(?P<ua>[^"]*)"')

def scan(log_path):
    by_bot = Counter()
    by_type = Counter()
    by_path = Counter()
    with open(log_path, encoding="utf-8", errors="ignore") as f:
        for line in f:
            m = LINE.search(line)
            if not m:
                continue
            ua = m.group("ua")
            for name, (needle, kind) in AI_BOTS.items():
                if needle in ua:
                    by_bot[name] += 1
                    by_type[kind] += 1
                    by_path[m.group("path")] += 1
                    break
    return by_bot, by_type, by_path

if __name__ == "__main__":
    import sys
    bots, kinds, paths = scan(sys.argv[1])
    print("По ботам:", dict(bots.most_common()))
    print("По типу :", dict(kinds))
    print("Топ страниц:", dict(paths.most_common(10)))

Запускается на любом access-логе, никаких зависимостей. На выходе — три среза: кто из ИИ ходил, сколько было живых обращений против индексации впрок и какие страницы AI-боты тянут чаще всего. Последнее особенно полезно: видно, какой ваш контент нейросети реально считают достойным ответа.

Как это дружит с GSC

Я не выбрасываю Search Console, а использую его и логи как два разных прибора. GSC отвечает на вопрос, как я выгляжу в генеративных блоках Google и что это делает с моим CTR. Логи отвечают на вопрос, кто из всех ИИ и как часто вообще берёт мой контент.

Практически я свожу это так: раз в неделю снимаю из GSC динамику по AI-поверхностям Google, а из логов — сводку по всем ботам и топ страниц. Расхождение между «Google меня показывает в AI» и «ChatGPT-User ходит вот на эти пять страниц» и есть та картина, которую по одному только GSC не увидеть.

Разграничение зон: Google-поверхности vs весь остальной AI-трафик
Разграничение зон: Google-поверхности vs весь остальной AI-трафик

Ограничения подхода

  • User-agent можно подделать. Часть трафика под видом GPTBot — левые скраперы. Для чистоты стоит сверять IP с официально опубликованными диапазонами вендоров (OpenAI и Perplexity их публикуют).

  • Логи ≠ клики людей. Обращение бота говорит, что контент взяли в обработку, но не гарантирует ни цитаты, ни визита живого пользователя. Это замер входа ИИ, а не конверсии.

  • Списки ботов меняются. Вендоры заводят новые user-agent, старые переименовывают. Словарь надо обновлять — раз в квартал я его пересматриваю.

Вывод

Появление AI-отчётов в Search Console — правильный сигнал: Google признаёт, что генеративная выдача меняет трафик, и даёт это измерять. Но измеряет он только себя. Полная картина AI-присутствия собирается из двух источников: GSC для гугловых поверхностей и логи сервера — для всех остальных нейросетей, которые в вебмастерку Google никогда не попадут. Парсер выше — минимальный способ закрыть вторую половину. Если снимаете обе метрики регулярно, то впервые видите не «трафик из поиска вообще», а именно то, как с вашим контентом работают ИИ.

Комментарии (0)