Оплатить курс
ИИSEOтехнический аудитCMO

Сайт на клиентском JavaScript невидим для ИИ-ботов: как проверить и что переделать

Александр Петров
11 мин чтения

Если сайт собран на React, Vue или другом фреймворке, который рисует контент в браузере после загрузки страницы, крупные ИИ-боты — GPTBot, ChatGPT-User, OAI-SearchBot, ClaudeBot, PerplexityBot — в большинстве случаев получают пустой HTML-каркас без текста. Они не исполняют JavaScript, в отличие от Googlebot, поэтому цитировать и индексировать такой сайт в ответах ИИ эти боты физически не могут. Единственный надёжный способ всё исправить — отдавать готовый HTML с текстом сразу при первом запросе: через серверный рендеринг (SSR) или статическую генерацию (SSG).

Почему сайт на React не виден в ChatGPT и Claude

Причина техническая, а не алгоритмическая: ИИ-боты скачивают исходный HTML-документ и не выполняют JavaScript, поэтому содержимое, которое рендерится скриптом в браузере пользователя, для них просто не существует.

Клиентский рендеринг — это модель, при которой сервер отдаёт браузеру минимальный HTML-каркас и файл JavaScript, а весь текст, заголовки и ссылки достраиваются скриптом уже в браузере. Человек в обычном браузере увидит готовую страницу за доли секунды и не заметит разницы. Но ИИ-кроулер делает ровно один HTTP-запрос, получает ответ сервера «как есть» — и если в этом ответе кроме div id root и ссылки на bundle.js больше ничего нет, бот уходит с пустыми руками. Именно это зафиксировано в практическом кейсе на полностью клиентски-рендеренном сайте: ChatGPT, Perplexity и Claude отвечали, что не могут прочитать контент, потому что он зависит от JavaScript, либо выдавали «Access Denied» и «no visible content», тогда как контрольные обычные HTML-страницы те же боты читали без проблем — проблема подтвердилась и при повторной проверке более чем через год (Glenn Gabe, GSQi, 2025–2026).

Какие ИИ-боты не рендерят JavaScript

Практически все крупные ИИ-кроулеры читают только исходный HTML и не выполняют скрипты — исключение составляет Google.

По данным инфраструктуры Vercel (2024), ни GPTBot, ни ChatGPT-User, ни OAI-SearchBot (все три — OpenAI), ни ClaudeBot (Anthropic), ни PerplexityBot, ни Meta-ExternalAgent, ни Bytespider, ни CCBot не рендерят JavaScript — они получают тот же «сырой» ответ сервера, что curl или wget. Полностью рендерит JS только инфраструктура Google: Gemini и AI Overviews используют Googlebot, который выполняет скрипты и видит страницу так же, как обычный браузер; AppleBot тоже проходит через браузерный краулер и рендерит JS.

OpenAI явно разделяет три бота с разным назначением и разным поведением по robots.txt:

БотНазначениеУправление через robots.txt
GPTBotобучение моделейможно запретить — ограничивает использование контента для обучения будущих моделей
OAI-SearchBotпопадание в поиск ChatGPTможно запретить, изменения применяются примерно через 24 часа
ChatGPT-Userразовый запрос по действию конкретного пользователяправило robots.txt может не действовать

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

Чем ИИ-кроулер отличается от Googlebot

Googlebot — единственный из крупных кроулеров, который полноценно рендерит JavaScript и видит страницу так же, как пользователь в браузере; остальные ИИ-боты видят только исходный HTML-ответ сервера.

Google прямо заявляет: для попадания в AI Overviews и AI Mode нет отдельных технических требований сверх обычной индексации — «no additional technical requirements» — но страница должна быть индексируема и доступна для Googlebot, который JS рендерит (Google Search Central, 2025). Это объясняет частую путаницу: сайт на React может нормально ранжироваться в классической выдаче Google и при этом быть полностью невидим для ChatGPT и Claude — потому что это два разных кроулера с разными возможностями, а не один и тот же «поиск».

Разница заметна и в объёме трафика. По данным сети Vercel за декабрь 2024: GPTBot — 569 млн запросов, Claude — 370 млн, AppleBot — 314 млн, PerplexityBot — 24,4 млн, Googlebot — 4,5 млрд. Все ИИ-боты вместе — порядка 28% от объёма одного Googlebot. При этом ChatGPT и Claude скачивают файлы JavaScript (11,5% и 23,84% запросов соответственно) — то есть видят, что скрипт существует, но не видят результат его выполнения. Это ключевой нюанс: для диагностики не достаточно убедиться, что бот «заходил» на сайт — нужно проверять, что именно он смог прочитать.

Ещё один показательный разрыв: доля запросов к несуществующим страницам (404) у ChatGPT — 34,82%, у Claude — 34,16%, против 8,22% у Googlebot (Vercel, 2024). ИИ-боты хуже понимают структуру сайта и чаще ссылаются в ответах на битые URL — отдельный аргумент в пользу чистой карты сайта и предсказуемых адресов, а не только рендеринга.

Как проверить, что ваш сайт видит ИИ-бот

Самый быстрый способ — отключить JavaScript в браузере и посмотреть, остаётся ли контент на странице видимым: если страница становится пустой, это и есть то, что видит ИИ-бот.

Порядок проверки для маркетолога или владельца сайта, без привлечения разработчика:

  1. Откройте страницу сайта, отключите выполнение JavaScript в настройках браузера (DevTools → Settings → Debugger → Disable JavaScript в Chrome) и обновите страницу.
  2. Посмотрите, остался ли основной текст, заголовок H1 и навигация — если экран пустой или виден только каркас, это подтверждает проблему.
  3. Попросите ChatGPT и Claude процитировать конкретный URL вашего сайта и спросите, что именно написано на этой странице — если модель отвечает, что не может прочитать контент из-за JavaScript, или цитирует старые/нерелевантные данные, диагноз подтверждён.
  4. Посмотрите серверные логи на user-agent GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot — заходы есть, но если контент рендерится клиентом, в ответе на эти заходы бот всё равно получает пустой HTML.
  5. Проверьте код ответа сервера через curl без выполнения JS (curl -A GPTBot ваш-URL) — если в выводе нет текста статьи, значит его там нет и для бота.

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

Что переделать: SSR, SSG и правильная архитектура рендеринга

Критичный для бота контент — основной текст, метаданные, заголовки, навигация — должен приходить в первом HTML-ответе сервера; клиентский рендеринг допустим только для некритичных интерактивных виджетов (Vercel, 2024).

На практике это означает выбор одной из двух схем:

  • Серверный рендеринг (SSR) — сервер на каждый запрос генерирует готовый HTML с текстом и отдаёт его сразу; дополнительная интерактивность уже достраивается в браузере поверх готовой страницы. Подходит для страниц, которые часто меняются (каталог с ценами, личный кабинет).
  • Статическая генерация (SSG) — HTML-страница собирается заранее, на этапе сборки, и раздаётся как обычный файл; идеально для блога, статей, лендингов, документации, которые не меняются каждую секунду.

На фреймворках Next.js и Nuxt обе схемы — штатный режим работы, а не экзотическая настройка; их отличие от «чистого React/Vue SPA» именно в том, что сервер отдаёт готовый HTML с текстом до того, как браузер начнёт выполнять JavaScript. Например, сам сайт marketingos.ru работает на Next.js 16 с серверным рендерингом и периодической ревалидацией — то есть структурно не подвержен описанной проблеме: любой бот, включая ChatGPT и Claude, получает готовый HTML со всем текстом страницы при первом же запросе.

Если переход на SSR/SSG целиком — дорогой проект, промежуточный вариант — динамический рендеринг: отдавать ИИ-ботам и поисковым кроулерам пререндеренную версию HTML (например, через Prerender.io или встроенный рендер-сервис хостинга), а обычным пользователям — ту же SPA. Это рабочий костыль на переходный период, но не замена нормальной архитектуре: он добавляет точку отказа и требует поддержки отдельного пайплайна.

Сколько стоит и кому точно нужно переделывать рендеринг

Переделка рендеринга оправдана там, где органический и ИИ-трафик приносит заявки и выручку: интернет-магазинам, медиа, B2B-сайтам с длинным циклом сделки и блогам, которые должны попадать в ответы ИИ-поисковиков.

Тип сайтаНужно ли переделыватьТипичная сложность
Интернет-магазин на SPA-фреймворкеда, в первую очередь карточки товаров и категориисредняя-высокая: миграция на SSR/SSG фреймворк
B2B-сайт с блогом и лендингамида, особенно контентные страницысредняя: часто хватает статической генерации блога
Внутренний личный кабинет, закрытая часть за логиномнет — боты туда не заходят—
Лендинг одной акции без претензии на органикунизкий приоритетнизкая

По нашей практике в проектах e-com и B2B за 2025–2026, миграция контентных разделов (блог, карточки товаров, лендинги) на SSR/SSG — это проект на недели, а не на дни, и чаще всего укладывается в 4–8 недель при наличии готовой команды фронтенда; цена сильно зависит от объёма шаблонов и интеграций и в каждом случае требует отдельной оценки у подрядчика. Закладывайте это в бюджет как отдельную строку, а не как «доработку» — формулировка влияет на то, как CFO читает смету.

Что с видимостью в Яндекс.Нейро и Алисе

Для Яндекс.Нейро и Алисы официальных данных о рендеринге JavaScript, аналогичных исследованию Vercel по западным ИИ-ботам, в открытом доступе на момент написания статьи нет — выдавать западную статистику за российскую было бы нечестно.

Яндекс — основной поисковик для российской аудитории, и его генеративные ответы строятся на отдельном индексе и инфраструктуре, отличной от GPTBot или ClaudeBot. Логика «боты не рендерят JS, значит отдавайте готовый HTML» с высокой вероятностью применима и здесь, потому что это общее архитектурное ограничение кроулеров, а не специфика конкретного вендора — но подтверждённых официальных данных именно по Яндексу у нас нет, и домысливать цифры мы не будем. Дополнительная практическая деталь для российского рынка: сами ChatGPT и Claude официально не работают в России, поэтому для чисто российской аудитории куда важнее проверить видимость в Яндекс.Нейро и Алисе, чем в ChatGPT — а для сайтов с международной аудиторией или B2B-трафиком из других стран сценарий из этой статьи сохраняет полную силу. Подробнее о том, как устроена видимость сайта именно в Алисе, разобрано в статье про видимость сайта в Алисе, а общие принципы оптимизации под генеративные ответы — в статье про GEO и AEO-оптимизацию.

Частые ошибки

  • Проверяют видимость сайта только в Google Search Console. Эта консоль показывает, как сайт видит Googlebot, который рендерит JS — она ничего не говорит о том, что видят GPTBot или ClaudeBot.
  • Закрывают GPTBot через robots.txt и считают вопрос решённым. Правило в robots.txt не действует на ChatGPT-User, который заходит по прямому действию пользователя в чате — сайт всё равно может быть процитирован неверно.
  • Переносят на SSR только главную страницу. Карточки товаров, статьи блога и лендинги — именно те страницы, которые чаще всего цитируют ИИ-ответы; выборочная миграция не решает задачу.
  • Путают наличие файла JavaScript с его выполнением. Боты скачивают bundle.js (ChatGPT — 11,5% запросов, Claude — 23,84%, по данным Vercel), но не запускают его — в логах это выглядит как «бот заходил», хотя контент он не увидел.
  • Не перепроверяют рендеринг после смены фреймворка или CMS. Любая миграция фронтенда может незаметно вернуть сайт к чисто клиентскому рендерингу — нужен повторный тест через отключение JS.
  • Ждут эффекта от llms.txt без исправления рендеринга. Файл для управления доступом ИИ-ботов не заменяет SSR — подробнее в статье про llms.txt для сайта: это инструмент разметки, а не рендеринга.

Источники

FAQ

Почему сайт нормально виден в Google, но не в ChatGPT?

Потому что это два разных кроулера с разными возможностями. Googlebot полностью рендерит JavaScript и видит страницу так же, как браузер пользователя, а GPTBot, ChatGPT-User и OAI-SearchBot (все три — OpenAI) получают только исходный HTML-ответ сервера без выполнения скриптов.

Claude и Perplexity тоже не видят JavaScript?

Да. По данным Vercel (2024), ClaudeBot и PerplexityBot входят в список ИИ-кроулеров, которые не рендерят JavaScript — наравне с GPTBot, Meta-ExternalAgent, Bytespider и CCBot. Исключение среди крупных ботов — только инфраструктура Google и AppleBot.

Как быстро проверить свой сайт без разработчика?

Отключите JavaScript в настройках браузера и обновите страницу — если основной текст и заголовок пропадают, это именно то, что видит ИИ-бот. Дополнительно попросите ChatGPT или Claude процитировать конкретный URL вашей страницы и сравните ответ с реальным содержимым.

Обязательно переходить на Next.js, чтобы решить проблему?

Нет, дело не в конкретном фреймворке, а в схеме рендеринга. Любой стек, который отдаёт готовый HTML с текстом на сервере — серверный рендеринг (SSR) или статическая генерация (SSG) — решает задачу; Next.js и Nuxt просто делают эту схему штатным режимом работы.

Поможет ли файл robots.txt с запретом или разрешением для ИИ-ботов?

Частично и не для всех ботов. robots.txt управляет доступом GPTBot и OAI-SearchBot, но, по данным OpenAI (2025), может не действовать на ChatGPT-User — бота, который заходит по прямому действию пользователя в чате. Это инструмент доступа, а не решение проблемы рендеринга.

Если у сайта в основном российская аудитория, стоит ли беспокоиться про ChatGPT и Claude?

Отдельно взятые ChatGPT и Claude официально не работают в России, поэтому для чисто российской аудитории приоритетнее проверить видимость в Яндекс.Нейро и Алисе. Но если у сайта есть международный B2B-трафик или зарубежная аудитория, сценарий с невидимостью в ChatGPT и Claude остаётся полностью актуальным.

Сколько времени занимает переход на SSR или SSG?

По нашей практике в проектах 2025–2026 годов, миграция контентных разделов — блога, карточек товаров, лендингов — занимает чаще всего 4–8 недель при готовой команде фронтенда; точный срок и бюджет зависят от объёма существующих шаблонов и интеграций и требуют отдельной оценки.


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