Сайт на клиентском JavaScript невидим для ИИ-ботов: как проверить и что переделать
Если сайт собран на 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 в браузере и посмотреть, остаётся ли контент на странице видимым: если страница становится пустой, это и есть то, что видит ИИ-бот.
Порядок проверки для маркетолога или владельца сайта, без привлечения разработчика:
- Откройте страницу сайта, отключите выполнение JavaScript в настройках браузера (DevTools → Settings → Debugger → Disable JavaScript в Chrome) и обновите страницу.
- Посмотрите, остался ли основной текст, заголовок H1 и навигация — если экран пустой или виден только каркас, это подтверждает проблему.
- Попросите ChatGPT и Claude процитировать конкретный URL вашего сайта и спросите, что именно написано на этой странице — если модель отвечает, что не может прочитать контент из-за JavaScript, или цитирует старые/нерелевантные данные, диагноз подтверждён.
- Посмотрите серверные логи на user-agent GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot — заходы есть, но если контент рендерится клиентом, в ответе на эти заходы бот всё равно получает пустой HTML.
- Проверьте код ответа сервера через 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 для сайта: это инструмент разметки, а не рендеринга.
Источники
- The rise of the AI crawler — Vercel, 2024
- Bots (GPTBot, OAI-SearchBot, ChatGPT-User) — OpenAI Developers, 2025
- AI features and your website — Google Search Central, 2025
- GEO: Generative Engine Optimization — arXiv (Princeton/Georgia Tech/Allen AI, ACM SIGKDD), 2024
- AI Search & JavaScript Rendering (кейс) — GSQi, Glenn Gabe, 2025
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 разбираем именно такие рабочие задачи вместе с практиками, которые уже прошли через это на своих проектах.