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 не увидеть.

Ограничения подхода
User-agent можно подделать. Часть трафика под видом
GPTBot— левые скраперы. Для чистоты стоит сверять IP с официально опубликованными диапазонами вендоров (OpenAI и Perplexity их публикуют).Логи ≠ клики людей. Обращение бота говорит, что контент взяли в обработку, но не гарантирует ни цитаты, ни визита живого пользователя. Это замер входа ИИ, а не конверсии.
Списки ботов меняются. Вендоры заводят новые user-agent, старые переименовывают. Словарь надо обновлять — раз в квартал я его пересматриваю.
Вывод
Появление AI-отчётов в Search Console — правильный сигнал: Google признаёт, что генеративная выдача меняет трафик, и даёт это измерять. Но измеряет он только себя. Полная картина AI-присутствия собирается из двух источников: GSC для гугловых поверхностей и логи сервера — для всех остальных нейросетей, которые в вебмастерку Google никогда не попадут. Парсер выше — минимальный способ закрыть вторую половину. Если снимаете обе метрики регулярно, то впервые видите не «трафик из поиска вообще», а именно то, как с вашим контентом работают ИИ.