Мониторинг AI-трафика — это учёт двух разных вещей: обращений роботов нейросетей, которые приходят читать ваши страницы, и переходов живых людей, кликнувших по ссылке внутри ответа ChatGPT, Perplexity или Нейро. Первое показывает, знает ли модель о вашей компании и попадёте ли вы в будущие ответы. Второе — сколько клиентов канал уже приводит. Складывать их нельзя: это разные величины с противоположным смыслом. Проблема в том, что ни Яндекс.Метрика, ни Google Search Console, ни Вебмастер не показывают ни то, ни другое. В этой статье — почему стандартные инструменты слепы к AI-трафику, как устроен серверный учёт, готовый код счётчика для WordPress, SQL-запросы к собранным данным, две ловушки, которые ломают статистику, и что делать с цифрами, когда они появились.

Что такое мониторинг AI-трафика и почему это две величины

Мониторинг AI-трафика — это регулярный учёт обращений роботов нейросетей к страницам сайта и переходов пользователей из ответов AI-сервисов. В отличие от мониторинга упоминаний бренда в нейросетях, который отвечает на вопрос «называют ли нас в ответах», мониторинг трафика отвечает на два других: «читают ли нас модели» и «приходят ли оттуда люди».

Эти две величины принципиально разные, и главная ошибка новичка — сложить их в одну цифру «трафик из ИИ».

Обращение робота: индикатор будущей видимости

Когда на страницу заходит GPTBot или ClaudeBot, это не посетитель и не заявка. Это сигнал, что материал попал в поле зрения модели. Ценность обращения — прогнозная: страница, которую модель никогда не читала, не может быть процитирована в ответе. Внутри этой категории есть важное различие, о котором в разделе «Обход для обучения против живого запроса».

Переход человека: индикатор работающего канала

Когда человек прочитал ответ нейросети, увидел ссылку на вашу компанию и кликнул — это уже посетитель, которого можно посчитать в воронке наравне с органикой и рекламой. Такой переход можно довести до заявки, привязать к модели атрибуции и оценить в деньгах.

💡

Ключевая мысль. Обращения роботов — опережающий показатель, переходы людей — запаздывающий. Рост первых предсказывает рост вторых с лагом в недели или месяцы. Именно поэтому их надо мерить раздельно: сложив, вы потеряете и прогноз, и факт.

ПараметрОбращение AI-роботаПереход человека
Что произошлоМодель пришла прочитать страницуЧеловек кликнул по ссылке в ответе ИИ
Тип показателяОпережающий (прогноз видимости)Запаздывающий (факт канала)
Можно ли считать визитомНетДа
Как определяетсяПо подписи в заголовке User-AgentПо метке в адресе или домену источника
Видит ли JS-аналитикаНет, роботы не выполняют скриптыДа, если источник не потерян
Что означает ростМатериал попадает в корпус и в живые ответыКанал уже приводит людей
На что влиятьДоступность, структура, разметка, llms.txtФормулировки, цитируемость, репутация бренда

Почему Метрика, GSC и Вебмастер не видят AI-трафик

Ни один стандартный инструмент веб-аналитики не показывает полную картину AI-трафика, и у каждого своя причина. Понимание этих причин объясняет, почему приходится строить учёт самостоятельно.

ИнструментЧто не видитПочему
Яндекс.МетрикаОбращения роботов — полностьюСчётчик работает на JavaScript. Роботы нейросетей скрипты не выполняют, поэтому их визиты не фиксируются вообще. Переходы людей Метрика видит, но только если источник дошёл до браузера
Google Analytics 4Обращения роботов — полностьюТа же причина: клиентский JS. Переходы из ChatGPT попадают в Referral, но смешиваются с прочими доменами
Google Search ConsoleПоказы в AI Overviews отдельноGSC показывает органическую выдачу Google. Показы в AI-ответах складываются с обычными и отдельной строкой не выделяются
Яндекс.ВебмастерПоказатели по НейроТакого показателя в интерфейсе и API нет в принципе
Rank-трекерыИ то, и другоеИнструмент меряет позиции в SERP. Диалог с моделью — другой слой, там нет позиций
⚠️

Частая ошибка. Считать, что раз в Метрике нет строки «нейросети», значит трафика оттуда нет. Отсутствие данных — это не ноль, это слепая зона. Роботы ходят по сайту прямо сейчас, просто счётчик физически не способен их зафиксировать.

Вывод из таблицы один: считать AI-трафик можно только на стороне сервера — до того, как страница уйдёт клиенту. Всё, что работает в браузере, для роботов невидимо по определению.

Что означает utm_source=chatgpt.com в отчётах

utm_source=chatgpt.com — это метка, которую ChatGPT автоматически добавляет к ссылкам в своих ответах. Если вы видите её в отчётах, значит человек пришёл к вам из диалога с нейросетью. Адрес в этом случае выглядит так:

адрес перехода пример
https://example.ru/uslugi/implantaciya/?utm_source=chatgpt.com

Это самый надёжный признак AI-перехода из всех доступных, и вот почему:

  • Метку ставит сам сервис. Её не нужно угадывать по косвенным признакам — источник подписался явно.
  • Она переживает потерю реферера. Заголовок Referer часто не доходит: его режут настройки приватности, переходы через приложения, HTTPS-политики. Метка в адресе остаётся.
  • Она видна и серверу, и браузерной аналитике. Один признак работает в обоих контурах учёта.

Аналогичные метки используют и другие сервисы. Актуальный набор, который имеет смысл отслеживать:

Метка в адресеСервис
utm_source=chatgpt.comChatGPT
utm_source=openai.comChatGPT и продукты OpenAI
utm_source=perplexityPerplexity
utm_source=claude.aiClaude
utm_source=copilotMicrosoft Copilot
utm_source=gemini / bardGoogle Gemini
💡

Быстрая проверка прямо сейчас. Откройте Метрику → Отчёты → Источники → Метки UTM и посмотрите значения utm_source. Если там есть chatgpt.com — канал у вас уже работает, просто вы его не считали. В GA4 то же самое: Acquisition → Traffic acquisition, фильтр по Session source.

Важное ограничение: метку ставят не все и не всегда. Perplexity и Нейро в части сценариев отдают чистую ссылку без параметров. Поэтому метка — основной путь определения, но не единственный: нужен запасной, о нём в разделе про серверный счётчик.

Справочник AI-роботов: кто ходит по вашему сайту

Каждый робот представляется в HTTP-заголовке User-Agent. Это и есть признак, по которому его можно опознать на стороне сервера. Ниже — 17 подписей, которые имеет смысл отслеживать в 2026 году.

Подпись в User-AgentВладелецЧто означает визит
ChatGPT-UserOpenAIЖивой запрос: пользователь что-то спросил, модель пошла читать вашу страницу, чтобы ответить
Claude-UserAnthropicЖивой запрос пользователя
Perplexity-UserPerplexityЖивой запрос пользователя
MistralAI-UserMistralЖивой запрос пользователя
GPTBotOpenAIОбход для обучения модели
OAI-SearchBotOpenAIПостроение поискового индекса ChatGPT Search
ClaudeBot, anthropic-aiAnthropicОбход для обучения
PerplexityBotPerplexityПостроение индекса
Google-ExtendedGoogleОбход для обучения Gemini
Applebot-ExtendedAppleОбход для обучения Apple Intelligence
YandexAdditionalЯндексОбход для Нейро
BytespiderByteDanceОбход для обучения
CCBotCommon CrawlОткрытый корпус, на котором учатся многие модели
AmazonbotAmazonОбход для обучения
meta-externalagentMetaОбход для обучения
cohere-aiCohereОбход для обучения

Список не статичен: вендоры добавляют новые подписи и переименовывают старые. Пересматривать его стоит раз в квартал — заодно это повод сверить, кого вы разрешили в robots.txt и llms.txt, а кого закрыли.

⚠️

Важно про подмену. User-Agent — это самопредставление, его может подделать кто угодно. Для аналитики видимости этого достаточно: смысла подделываться под GPTBot ради искажения чужой статистики почти нет. Но если на основании подписи вы принимаете решения о доступе — блокируете или пропускаете — проверяйте ещё и обратную DNS-запись IP-адреса. Официальные диапазоны вендоры публикуют.

Обход для обучения против живого запроса пользователя

Внутри обращений роботов есть два принципиально разных типа, и второй ценнее первого.

Обход для обучения

Подписи GPTBot, ClaudeBot, Google-Extended, CCBot означают: модель собирает материал впрок, для следующей версии или для индекса. Ваша страница попадёт в корпус, но окажется ли она в конкретном ответе — вопрос открытый. Это инвестиция в будущее.

Запрос пользователя прямо сейчас

Подписи ChatGPT-User, Claude-User, Perplexity-User означают совсем другое: в этот момент живой человек задал вопрос, и модель пошла на вашу страницу, чтобы сформулировать ответ. Сайт уже работает как источник в реальном диалоге.

💡

Метрика, которую стоит вывести на первое место в отчёте. Количество обращений с суффиксом -User и список страниц, которые они читают. Это прямой ответ на вопрос «какой наш контент нейросети используют, отвечая людям». Ни один внешний сервис такой список не даст — только собственный серверный учёт.

Практическое следствие: если ChatGPT-User регулярно читает одну и ту же страницу, это ваш главный актив в AI-выдаче. Её нужно поддерживать в актуальном состоянии, усиливать фактурой и следить, чтобы она не сломалась при редизайне. Если же приходит только GPTBot, а -User обращений нет — материал в корпусе есть, но в живых ответах не участвует, и работать надо над извлекаемостью ответа, а не над объёмом текста.

Обход для обучения и живой запрос пользователя

Слева обход для обучения: GPTBot, ClaudeBot, Google-Extended, CCBot собирают материал впрок, попадёт ли страница в ответ — вопрос открытый. Справа запрос пользователя: ChatGPT-User, Claude-User, Perplexity-User означают, что человек спросил сейчас и сайт уже работает как источник.Обход для обученияGPTBot, ClaudeBot, Google-Extended, CCBotМодель собирает материал впрокПопадёт ли страница в ответ — вопрос открытыйИнвестиция в будущееЗапрос пользователяChatGPT-User, Claude-User, Perplexity-UserЖивой человек задал вопрос прямо сейчасСайт уже работает как источник в диалогеМетрика номер один в регулярном отчёте
Сравнение. Два типа обращений роботов из раздела «Обход для обучения против живого запроса» и разный смысл каждого.

Четыре способа считать AI-трафик: что выбрать

Способов ровно четыре, и они не взаимоисключающие. Разумная конфигурация — комбинация из двух.

СпособВидит роботовВидит переходыСложностьКогда подходит
Логи веб-сервераДаДаСредняяЕсть доступ к логам и кто-то умеет их разбирать
Серверный счётчик в CMSДаДаСредняяЛоги недоступны или нужен долгий структурированный архив
Сегменты в веб-аналитикеНетДаНизкаяНужно быстро и только про людей
Готовые сервисыЧастичноЧастичноНизкаяНужен обзор рынка без разработки

Рекомендация: серверный учёт (логи или счётчик) как основа плюс сегмент в Метрике или GA4 для сверки переходов. Первое даёт полноту, второе — привязку к поведению и конверсиям.

Способ 1: логи веб-сервера

Самый прямой путь. В журнале доступа записан каждый запрос вместе с User-Agent и реферером — ничего дополнительно внедрять не нужно.

nginx кто из AI-роботов приходил
grep -oiE 'GPTBot|ChatGPT-User|OAI-SearchBot|ClaudeBot|Claude-User|PerplexityBot|Perplexity-User|Google-Extended|Applebot-Extended|YandexAdditional|CCBot|Bytespider' 
  /var/log/nginx/access.log | sort | uniq -c | sort -rn
nginx какие страницы читает ChatGPT-User
grep 'ChatGPT-User' /var/log/nginx/access.log 
  | awk '{print $7}' | sort | uniq -c | sort -rn | head -20
nginx переходы людей из нейросетей
grep -iE 'chatgpt.com|perplexity.ai|claude.ai|copilot.microsoft.com' /var/log/nginx/access.log 
  | grep -vE 'GPTBot|ClaudeBot|PerplexityBot' 
  | awk '{print $7}' | sort | uniq -c | sort -rn | head -20

Ограничения способа. Логи почти всегда ротируются — типично раз в неделю или при достижении размера, — поэтому историю глубже месяца по ним не построить без отдельной выгрузки. На части тарифов виртуального хостинга доступа к логам просто нет. И разбирать их приходится вручную либо настраивать сборщик: сами по себе они не превращаются в отчёт.

Если логи есть и с ними умеют работать — начинайте с них: это нулевые затраты на внедрение. Если нет, переходите к следующему способу.

Способ 2: серверный счётчик внутри CMS

Идея: записывать факт обращения в собственную таблицу базы данных до того, как страница уйдёт клиенту. Тогда роботы фиксируются наравне с людьми, а история хранится столько, сколько нужно, — она не зависит от ротации логов. Ниже — рабочая реализация для WordPress; логика переносится на любую CMS.

Где размещать код и почему именно там

В WordPress правильное место — папка wp-content/mu-plugins (must-use plugins). Три причины:

  • Нельзя отключить из админки. Обычный плагин легко деактивировать при обслуживании сайта, и учёт молча прервётся — а обнаружится это через месяц, когда в отчёте окажется дыра.
  • Загружается раньше обычных плагинов и не зависит от их порядка подключения.
  • Переживает смену темы. Код лежит вне темы, поэтому при редизайне ничего не теряется.

На каком этапе обработки запроса срабатывать

Это принципиальный выбор, и ошибиться здесь легко. Запись нужно вести на хуке template_redirect, а не на раннем init.

Причина: к моменту template_redirect WordPress уже разобрал запрос и знает, существует ли такая страница. Благодаря этому обращения к несуществующим адресам не попадают в статистику. На init эта информация ещё недоступна — и роботы, ходящие по устаревшим ссылкам, засоряют данные несуществующими URL. В реальном проекте именно это пришлось исправлять во второй версии счётчика.

Путь запроса через фильтры

Каждый запрос к сайту проходит цепочку проверок. Достаточно одной сработавшей, чтобы запись не создавалась.

запросПришёл HTTP-запрос к любому адресу сайта
отсев 1Админка, служебные адреса, robots.txt, RSS, trackback — выходим
отсев 2Страница не существует (404) — выходим. Роботы часто ходят по устаревшим ссылкам
отсев 3Адрес ведёт на файл: картинку, стиль, скрипт, шрифт — выходим
разборЧитаем, кем представился клиент и откуда он пришёл
проверка AПредставление совпало с известным AI-роботом → запись типа bot
проверка BВ адресе метка AI-сервиса → запись типа referral
проверка CДомен источника — AI-сервис → запись типа referral
иначеОбычный посетитель или обычный поисковый робот — ничего не пишем

Структура таблицы

создание таблицы выполняется один раз
const AIV_TABLE   = 'ai_visibility';
const AIV_VERSION = '1.2';

add_action('init', function () {
    if (get_option('aiv_installed') === AIV_VERSION) return;
    global $wpdb;
    $table = $wpdb->prefix . AIV_TABLE;
    require_once ABSPATH . 'wp-admin/includes/upgrade.php';
    dbDelta("CREATE TABLE $table (
        id    BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
        ts    DATETIME NOT NULL,
        kind  VARCHAR(12) NOT NULL,
        actor VARCHAR(60) NOT NULL,
        url   VARCHAR(300) NOT NULL,
        ref   VARCHAR(400) NOT NULL DEFAULT '',
        ua    VARCHAR(250) NOT NULL DEFAULT '',
        PRIMARY KEY (id),
        KEY ts (ts),
        KEY kind_actor (kind, actor)
    ) {$wpdb->get_charset_collate()};");
    update_option('aiv_installed', AIV_VERSION, false);
}, 0);

Два индекса здесь не для красоты: ts обслуживает выборки по периоду, kind_actor — группировки в сводных отчётах. На таблице в сотни тысяч строк без них запросы начнут заметно тормозить.

Справочники: кого считаем

справочник роботов ключ — подстрока User-Agent
function aiv_bots(): array {
    return [
        'GPTBot'             => 'OpenAI · обучение',
        'OAI-SearchBot'      => 'OpenAI · поисковый индекс',
        'ChatGPT-User'       => 'OpenAI · запрос пользователя',
        'ClaudeBot'          => 'Anthropic · обучение',
        'anthropic-ai'       => 'Anthropic · обучение',
        'Claude-User'        => 'Anthropic · запрос пользователя',
        'PerplexityBot'      => 'Perplexity · индекс',
        'Perplexity-User'    => 'Perplexity · запрос пользователя',
        'Google-Extended'    => 'Google · обучение',
        'Applebot-Extended'  => 'Apple · обучение',
        'YandexAdditional'   => 'Яндекс · нейро',
        'Bytespider'         => 'ByteDance',
        'CCBot'              => 'Common Crawl',
        'Amazonbot'          => 'Amazon',
        'meta-externalagent' => 'Meta',
        'cohere-ai'          => 'Cohere',
        'MistralAI-User'     => 'Mistral',
    ];
}

Значение справочника — не техническая подпись, а человекочитаемое имя для отчёта. Разделение «обучение» и «запрос пользователя» зашито прямо в название: потом по нему удобно фильтровать.

Определение перехода человека

функция определения возвращает тип и источник или null
function aiv_detect(string $ua, string $ref): ?array {
    // A. Робот — по подписи в User-Agent
    foreach (aiv_bots() as $needle => $vendor) {
        if ($ua !== '' && stripos($ua, $needle) !== false) return ['bot', $vendor];
    }
    $refs = aiv_referrals();

    // B. Основной путь: метка в адресе
    $src = isset($_GET['utm_source']) ? strtolower((string) $_GET['utm_source']) : '';
    if ($src !== '') {
        foreach ($refs['utm'] as $needle => $vendor) {
            if (strpos($src, $needle) !== false) return ['referral', $vendor];
        }
    }

    // C. Запасной путь: домен источника
    if ($ref !== '') {
        $host = strtolower((string) parse_url($ref, PHP_URL_HOST));
        $path = (string) parse_url($ref, PHP_URL_PATH);
        // собственный домен отбрасываем явно — иначе двойной счёт
        if ($host !== '' && strpos($host, 'example.ru') === false) {
            foreach ($refs['host'] as $needle => $vendor) {
                if (strpos($host . $path, $needle) !== false) return ['referral', $vendor];
            }
        }
    }
    return null;
}
⚠️

Зачем исключается собственный домен. Человек пришёл из ChatGPT на страницу с меткой, а потом кликнул по внутренней ссылке. Реферером становится ваш же сайт, но метка в адресе сохраняется. Без явного исключения один переход посчитается несколько раз — по разу на каждый внутренний клик. На сайте с хорошей глубиной просмотра это завышает цифру в разы.

Точка записи целиком

хук template_redirect
add_action('template_redirect', function () {
    if (is_admin() || is_robots() || is_feed() || is_trackback()) return;
    if (is_404()) return;

    $uri = isset($_SERVER['REQUEST_URI']) ? (string) $_SERVER['REQUEST_URI'] : '';
    if ($uri === '' || $uri[0] !== '/') return;

    $path = (string) parse_url($uri, PHP_URL_PATH);
    if (preg_match('~.(svg|png|jpe?g|gif|webp|avif|css|js|ico|woff2?|ttf|mp4|pdf|xml|txt|map)$~i', $path)) return;
    if (strpos($path, '/wp-content/') === 0 || strpos($path, '/wp-includes/') === 0) return;

    $ua  = isset($_SERVER['HTTP_USER_AGENT']) ? substr((string) $_SERVER['HTTP_USER_AGENT'], 0, 400) : '';
    $ref = isset($_SERVER['HTTP_REFERER'])    ? substr((string) $_SERVER['HTTP_REFERER'],    0, 400) : '';

    $hit = aiv_detect($ua, $ref);
    if ($hit === null) return;
    [$kind, $actor] = $hit;

    global $wpdb;
    $wpdb->insert($wpdb->prefix . AIV_TABLE, [
        'ts'    => current_time('mysql'),
        'kind'  => $kind,
        'actor' => $actor,
        'url'   => substr($path, 0, 300),
        'ref'   => $kind === 'referral' ? $ref : '',
        'ua'    => substr($ua, 0, 250),
    ]);
});

Здесь видны все фильтры из схемы выше в порядке применения. Обратите внимание на порядок: сначала дешёвые проверки (админка, 404, расширение файла), и только потом разбор заголовков и обращение к базе. Так на обычном посетителе код отрабатывает за микросекунды и не создаёт нагрузки.

Ловушка первая: кэш съедает учёт

Самая коварная проблема серверного счётчика: он молчит, хотя роботы приходят. В реальном проекте это выглядело так — по логам видно, что обращения есть, а в таблице пусто.

Причина в ускорителе сайта. Кэширующий плагин или серверный кэш (LiteSpeed Cache, WP Super Cache, Varnish, nginx fastcgi_cache) отдаёт роботу готовый HTML из кэша. При этом PHP-код вообще не выполняется — значит, и записывать некому.

Решение: вывести AI-роботов из кэширования отдельным списком. В LiteSpeed это «Do Not Cache User Agents», в других системах — аналогичная настройка исключений. Для перечисленных подписей страница собирается заново, и обращение фиксируется.

nginx обход кэша для AI-роботов
map $http_user_agent $skip_cache_ai {
    default 0;
    "~*(GPTBot|OAI-SearchBot|ChatGPT-User|ClaudeBot|anthropic-ai|Claude-User)" 1;
    "~*(PerplexityBot|Perplexity-User|Google-Extended|Applebot-Extended)"      1;
    "~*(YandexAdditional|Bytespider|CCBot|Amazonbot|meta-externalagent)"       1;
}

# в location с кэшем:
# fastcgi_cache_bypass $skip_cache_ai;
# fastcgi_no_cache     $skip_cache_ai;

Цена решения небольшая: обращения роботов редки по сравнению с обычным трафиком, а для живых посетителей кэш продолжает работать в полном объёме и скорость сайта не страдает.

💡

Это же объясняет, почему учёт нельзя сделать «поверх» готовой аналитики. Любой инструмент, работающий в браузере, для роботов невидим. Любой серверный — упирается в кэш. Работающая схема существует только на пересечении: серверный код плюс явное исключение AI-роботов из кэширования.

Почему серверный счётчик молчит

Развилка: если страница отдана роботу из кэша, PHP не выполняется и записи в таблице не появляется — по логам обращения видны, а в таблице пусто. Если AI-роботы выведены из кэширования отдельным списком, код срабатывает и обращение фиксируется.Страница отдана роботу из кэша?ДАPHP не выполняется — записи нетв логах обращения есть, а в таблице пустоНЕТКод сработал, обращение записаноAI-роботов выводят из кэша отдельным списком
Схема. Ловушка из раздела про кэш: кэширующий плагин отдаёт готовый HTML, и код учёта не выполняется вовсе.

Ловушка вторая: почему ya.ru нельзя считать признаком Нейро

Заманчиво считать переход с домена ya.ru переходом из Яндекс Нейро. Это ошибка, и она даёт завышенные цифры.

В одном из проектов первая версия счётчика так и работала. Проверка собранных данных показала: все 18 записей, отнесённых к Нейро, оказались обычным органическим трафиком. Признак нашёлся в адресах — там стояла метка ?ysclid=, которую Яндекс добавляет к ссылкам в обычной выдаче, а не в ответах нейросети.

Причина в том, что Яндекс урезает адрес источника до голого домена. По реферу https://ya.ru/ отличить переход из Нейро от перехода из обычного поиска невозможно в принципе — там просто нет данных для различения.

Правильный подход: считать Нейро только по явному пути ya.ru/neuro в реферере. Голые ya.ru и yandex.ru в справочник AI-источников не включать.

справочник источников с корректной обработкой Яндекса
function aiv_referrals(): array {
    return [
        // метка в адресе — надёжный путь
        'utm' => [
            'chatgpt.com' => 'ChatGPT',    'openai.com'   => 'ChatGPT',
            'perplexity'  => 'Perplexity', 'claude.ai'    => 'Claude',
            'copilot'     => 'Copilot',    'gemini'       => 'Gemini',
        ],
        // домен источника — запасной путь.
        // Голые ya.ru и yandex.ru сюда НЕ входят: это обычная органика.
        'host' => [
            'chat.openai.com'        => 'ChatGPT',
            'chatgpt.com'            => 'ChatGPT',
            'perplexity.ai'          => 'Perplexity',
            'claude.ai'              => 'Claude',
            'copilot.microsoft.com'  => 'Copilot',
            'gemini.google.com'      => 'Gemini',
            'ya.ru/neuro'            => 'Яндекс Нейро',
        ],
    ];
}
💡

Принцип, который стоит запомнить. Лучше недосчитать, чем показать завышенную цифру. Заниженная оценка канала приведёт к осторожным решениям, завышенная — к неверным. Когда признак неоднозначен, не засчитывайте его: сомнительные записи убивают доверие ко всему отчёту, а восстановить его тяжело.

Тот же принцип применим к другим спорным источникам: bing.com нельзя автоматически считать Copilot, а google.com — AI Overviews. В обоих случаях реферер один и тот же и для обычной выдачи, и для AI-блока. Здесь помогает только косвенная оценка через поведение в AI Overviews и сверку с динамикой показов в GSC.

Что сохранять и чего сохранять нельзя

Минимально достаточный набор полей для ответа на все рабочие вопросы:

ПолеТипСодержимое
tsdatetimeВремя события по часовому поясу сайта
kindvarchar(12)bot — обращение робота, referral — переход человека
actorvarchar(60)Кто именно: «OpenAI · запрос пользователя», «ChatGPT», «Perplexity»
urlvarchar(300)Адрес страницы без параметров
refvarchar(400)Полный адрес источника — только для переходов
uavarchar(250)Представление клиента, для разбора спорных случаев
⚠️

Персональные данные не сохраняются — и это осознанное решение. Ни IP-адрес, ни идентификатор посетителя, ни куки в таблицу не пишутся. Для ответа на вопрос «какая нейросеть какую страницу читала» они не нужны, а их хранение сразу переводит таблицу в режим обработки персональных данных со всеми требованиями 152-ФЗ: политика, согласие, сроки хранения, локализация. Не собирайте того, что вам не нужно.

Если позже понадобится связать AI-переход с конкретной сессией и заявкой, делайте это на стороне CRM через UTM-метку, а не через сопоставление IP-адресов в собственной таблице.

Что сохранять в таблице учёта, а что нет

Сохраняем шесть полей: время события, тип обращения (робот или переход человека), кто именно приходил, адрес страницы без параметров, полный адрес источника для переходов и представление клиента. Не сохраняем IP-адрес, идентификатор посетителя и куки — для задачи они не нужны.Сохраняемts — время события по часовому поясу сайтаkind — обращение робота или переход человекаactor — кто именно: ChatGPT, Perplexity, Нейроurl — адрес страницы без параметровref — полный адрес источника, только дляпереходовua — представление клиента для спорныхслучаевНе сохраняемIP-адрес посетителяИдентификатор посетителяКуки
Схема. Минимальный набор полей из раздела «Что сохранять»: персональные данные не пишутся осознанно, из-за требований 152-ФЗ.

Как читать данные: готовые SQL-запросы

Таблица собрана — теперь её нужно превратить в ответы. Ниже четыре запроса, закрывающие основные вопросы. Префикс wp_ замените на свой.

сводка кто приходил и сколько раз
SELECT kind, actor, COUNT(*) AS c
FROM wp_ai_visibility
WHERE ts >= '2026-09-01'
GROUP BY kind, actor
ORDER BY kind DESC, c DESC;

Первый отчёт, который стоит смотреть. Даёт разбивку по вендорам и сразу показывает соотношение обходов и переходов.

переходы людей на какие страницы приходят из нейросетей
SELECT url, actor, COUNT(*) AS c
FROM wp_ai_visibility
WHERE kind = 'referral'
GROUP BY url, actor
ORDER BY c DESC
LIMIT 20;

Список страниц, которые нейросети рекомендуют людям. Это ваши точки входа в AI-канале — их стоит проверить на актуальность, скорость и наличие понятного следующего шага.

живые запросы какие страницы модели читают, отвечая людям
SELECT url, COUNT(*) AS c
FROM wp_ai_visibility
WHERE kind = 'bot' AND actor LIKE '%запрос пользователя%'
GROUP BY url
ORDER BY c DESC
LIMIT 20;

Самый ценный отчёт из четырёх. Показывает материал, который модели реально используют для формирования ответов прямо сейчас.

динамика по дням
SELECT DATE(ts) AS d, kind, COUNT(*) AS c
FROM wp_ai_visibility
GROUP BY DATE(ts), kind
ORDER BY d;

Ряд для графика. На нём хорошо видны последствия действий: выкатили большой материал — через неделю-две растёт число обходов; попали в ответы — растут переходы.

Способ 3: сегменты и фильтры в веб-аналитике

Роботов этот способ не покажет никогда, но переходы людей закроет за десять минут и без разработки.

Яндекс.Метрика

  1. Отчёты → Источники → Метки UTM. Смотрите значения utm_source: chatgpt.com, perplexity, openai.com.
  2. Создайте сегмент: Источники → Метка UTM Source → содержит chatgpt (и по одному на каждый сервис).
  3. Сохраните сегмент и примените его к отчётам по конверсиям — так вы увидите не только объём, но и качество трафика.
  4. Настройте цель и сравните конверсию AI-сегмента со средней по сайту.

Google Analytics 4

  1. Reports → Acquisition → Traffic acquisition, разбивка по Session source / medium.
  2. Добавьте фильтр по Session source, содержащему chatgpt или perplexity.
  3. Для постоянного наблюдения соберите Exploration с этим фильтром и разбивкой по Landing page.
⚠️

Ограничение способа. Вы видите только тех, кто пришёл с меткой или сохранившимся реферером, и только тех, у кого отработал JS-счётчик. Блокировщики, режим инкогнито и переходы из мобильных приложений часть данных срезают. Считайте эти цифры нижней границей, а не полной картиной.

Способ 4: готовые сервисы мониторинга

На рынке появился класс инструментов вокруг видимости в нейросетях. Важно понимать, что большинство из них решает другую задачу — они мониторят упоминания бренда в ответах, а не трафик на ваш сайт.

Класс инструментовЧто показываетЧто не показывает
Трекеры упоминаний в LLMНазывают ли бренд в ответах на заданные промпты, в каком контексте, с какими конкурентамиОбращения роботов к вашим страницам, реальные переходы
Сервисы анализа логовРазбор журналов сервера, в том числе AI-роботовНичего про содержание ответов нейросетей
SEO-платформы с AI-модулемПозиции плюс присутствие в AI-блоках выдачиДиалоговые сценарии вне поиска

Полная картина складывается из двух половин: внешней — что модели говорят о вас, и внутренней — кто к вам ходит и откуда приходит. Внешнюю половину подробно разбирает статья про мониторинг упоминаний в нейросетях; внутреннюю закрывает серверный учёт из этой статьи. По отдельности каждая половина даёт искажённую оценку канала.

Какие метрики выводить в регулярный отчёт

Собранная таблица позволяет посчитать многое, но в регулярный отчёт стоит выносить ограниченный набор — иначе он перестаёт читаться.

МетрикаКак считаетсяО чём говорит
Обращений роботов за периодCOUNT по kind='bot'Общий интерес моделей к сайту
Доля живых запросовОбращения с -User ÷ все обращения роботовНасколько сайт участвует в реальных диалогах, а не только в обучении
Охват вендоровЧисло уникальных значений actorЗависимость от одной модели или широкое присутствие
Глубина обходаЧисло уникальных url с обращениямиЧитают весь сайт или только главную
Переходов людей за периодCOUNT по kind='referral'Фактический объём канала
Топ страниц входаГруппировка referral по urlЧто именно нейросети рекомендуют
Конверсия AI-сегментаИз аналитики или CRM по UTMКачество трафика в сравнении с другими каналами
Лаг обход → переходРазница дат первого обхода и первого перехода по страницеЗа сколько окупается новый материал в AI-канале
💡

Про абсолютные цифры. В большинстве проектов AI-трафик в 2026 году измеряется десятками и сотнями визитов в месяц, а не тысячами. Не спешите объявлять канал бесполезным: смотрите на динамику и на конверсию. Трафик из нейросетей часто приходит на поздней стадии выбора — человек уже сформулировал задачу и уточняет детали, — поэтому конверсия у него бывает заметно выше средней по сайту.

Как связать AI-трафик с деньгами

Отчёт про обращения роботов интересен специалисту, но бизнесу нужен ответ в деньгах. Цепочка выстраивается в четыре шага.

  1. Сохраните метку до заявки. UTM-метка должна дожить от точки входа до отправки формы: записывайте её в скрытое поле формы и передавайте в CRM. Без этого шага все остальные бессмысленны.
  2. Заведите отдельный источник в CRM. Не сваливайте AI-переходы в «Прочее» или в общий Referral — по такому полю невозможно ничего посчитать.
  3. Считайте конверсию и цену обращения раздельно. Сравнивайте AI-канал с органикой и контекстом по одинаковой методике, иначе сравнение некорректно. Какую модель атрибуции применить — отдельный вопрос: AI-переход часто не последний и не единственный касание в цепочке.
  4. Свяжите вложения с результатом. Работы по GEO-оптимизации и AEO дают отложенный эффект. Сопоставляйте дату публикации материала, дату первого обхода и дату первых переходов — так становится виден реальный срок окупаемости.

Практический пример связки видимости и денег в медицинской нише разобран в кейсе продвижения Sense Clinic, где GEO и AEO велись параллельно с классическим SEO.

От метки в ссылке до денег

Четыре шага: сохранить UTM-метку от точки входа до отправки формы и передать в CRM; завести для AI-переходов отдельный источник, а не «Прочее»; считать конверсию и цену обращения по той же методике, что для органики и контекста; сопоставить даты публикации, первого обхода и первых переходов.1Сохранить меткудо заявкиUTM в скрытое полеформы и дальше вCRM2Отдельныйисточник в CRMне сваливать в«Прочее» или общийReferral3Считатьконверсию ицену обращениясравнивать сорганикой поодинаковой методике4Связатьвложения срезультатомдаты публикации,первого обхода,первых переходов
Порядок работ. Четыре шага из раздела «Как связать AI-трафик с деньгами»: без первого все остальные бессмысленны.

Что делать с данными: как реагировать на находки

Данные сами по себе ничего не меняют. Ниже — типовые находки и действия по каждой.

Роботы не приходят вообще

Проверьте доступность: не закрыты ли AI-агенты в robots.txt, не режет ли их защита от ботов или CDN, отдаётся ли контент без JavaScript. Многие сайты на фронтенд-фреймворках отдают роботу пустой каркас. Затем проверьте базовую техническую основу — карты сайта, коды ответов, скорость — и добавьте llms.txt.

Приходит только GPTBot, обращений с -User нет

Материал в корпусе есть, но в живых ответах не участвует. Это не проблема доступности — это проблема формы. Работайте над извлекаемостью: прямой ответ в первом абзаце раздела, определения отдельным предложением, таблицы вместо описаний, структурированная разметка, FAQ-блоки. Подробно механика разобрана в гайде как попасть в ответы нейросетей.

Обращения есть, переходов нет

Модели читают вас, но не ссылаются либо ссылку не нажимают. Первое лечится усилением бренда в доверенных источниках — об этом статья про продвижение бренда в нейросетях. Второе — формулировками: если в ответе вы упомянуты вскользь и без причины кликнуть, перехода не будет.

Весь трафик идёт от одного вендора

Зависимость от одной модели — риск: изменится алгоритм, и канал обнулится. Посмотрите, какие сервисы важны вашей аудитории, и работайте с ними адресно: ChatGPT, Perplexity, Яндекс Нейро отбирают источники по-разному.

Обходят одну страницу, остальной сайт игнорируют

Обычно это проблема внутренней структуры: до остальных материалов робот просто не доходит. Проверьте перелинковку, глубину вложенности и карту сайта. Отдельный признак той же проблемы — узкий список url в отчёте по обходам при большом объёме контента.

Типичные ошибки мониторинга AI-трафика

  • Складывать обходы и переходы в одну цифру. Это разные величины с разным смыслом. Сумма не значит ничего.
  • Считать голый ya.ru или bing.com признаком нейросети. Гарантированное завышение — разбор в разделе про ловушку с ya.ru.
  • Забыть про кэш. Счётчик стоит, кода нет в исполнении, данных ноль — и никто не понимает почему.
  • Не исключить собственный домен из источников. Один переход превращается в пять.
  • Писать на раннем хуке. В статистику попадают 404 и служебные адреса, отчёт замусоривается.
  • Хранить IP и куки «на всякий случай». Данные не нужны для задачи, но создают обязательства по 152-ФЗ.
  • Судить по неделе. AI-трафик разрежен, недельная выборка ни о чём не говорит. Минимальный горизонт для выводов — месяц, для трендов — квартал.
  • Мерить нейросети rank-трекером. Инструмент для позиций не покажет диалог с моделью. Разница между слоями подробно разобрана в статье SEO vs GEO vs AEO.
  • Внедрить и не смотреть. Счётчик без регулярного отчёта — просто растущая таблица в базе.

Что в итоге

Мониторинг AI-трафика в 2026 году — это не опция, а базовая гигиена аналитики. Канал уже существует и уже приводит людей, вопрос только в том, видите вы его или нет. Стандартные инструменты его не показывают по техническим причинам, а не по злому умыслу: JS-счётчики слепы к роботам, а поисковые панели не выделяют AI-блоки отдельной строкой.

Рабочая схема собирается из трёх элементов: серверный учёт (логи или счётчик в CMS), исключение AI-роботов из кэша, чтобы код вообще выполнялся, и раздельные метрики для обходов и переходов. К этому добавляется внешний контур — мониторинг упоминаний, отвечающий на вопрос, что модели о вас говорят.

Дальше начинается работа с данными: находки из раздела «как реагировать» превращаются в задачи по доступности, структуре и формулировкам. И здесь стоит помнить общий принцип, который подтверждается и трендами 2026 года: видимость в ответах нейросетей растёт не от трюков, а от планомерного укрепления присутствия в доверенных источниках. Учёт трафика — это компас, а не двигатель: он показывает направление и подтверждает, что вы движетесь, но ехать всё равно приходится самим.

Хотите видеть свой AI-трафик и влиять на него?

Настроим учёт обращений нейросетей и переходов из AI-ответов, проведём аудит цитируемости в ChatGPT, Perplexity и Яндекс Нейро и составим стратегию присутствия в AI-выдаче.

Получить бесплатный аудит