JavaScript SEO в 2026: почему AI-краулер не видит ваш контент

JavaScript SEO — это работа над тем, чтобы значимый текст страницы был доступен роботу без исполнения скриптов. Поисковый робот Google рендерить умеет, но делает это отложенно, а краулеры, которые собирают данные для ChatGPT, Perplexity и нейроответов, о поддержке рендеринга публично не заявляли. Если цена, состав услуги и отзывы появляются только после запроса к API, для нейросети этой информации не существует — она процитирует конкурента, у которого тот же текст лежит в исходном HTML. Ниже — как за десять минут проверить свой сайт, чем CSR отличается от SSR, SSG и пререндера и когда переезд на серверный рендеринг не нужен.

Алексей Малков
Алексей Малков
Основатель GEOAudit.org • GEO/SEO-стратег
150+ аудитов • 12 лет в digital • 100+ отзывов на фрилансе
JavaScript SEO SSR и пререндер Технический аудит
Профиль автора →

Рендеринг — это отрисовка страницы браузером, а не сервером

Рендеринг сайта — это визуализация страницы: браузер получает HTML, строит из него DOM, выполняет скрипты и только после этого показывает человеку готовый экран. Пока сайты собирались на сервере, робот и человек видели одно и то же — в ответ на запрос приходил документ со всем текстом. В SPA (single page application, во множественном числе в англоязычной документации — SPAs) сервер отдаёт почти пустой каркас вроде <div id="root"></div>, а заголовок, цена, состав услуги и отзывы дорисовываются позже, когда отработает JavaScript и вернутся ответы от API.

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

Четыре термина, которые встретятся дальше

CSR (client-side rendering) — отрисовка на стороне клиента: сервер отдаёт каркас, страницу собирает браузер. SSR (server-side rendering) — сервер отдаёт готовый HTML, а скрипты потом «оживляют» его в браузере, это называют гидратацией. SSG — HTML собирается заранее, на этапе сборки проекта, и лежит статикой. Пререндер — отдельная прослойка прогоняет страницу в headless-браузере и складывает готовый HTML в кэш для роботов.

Обновлено: август 2026 — сверили рекомендации по динамическому рендерингу (Google описывает его как обходное решение, а не как долгосрочный путь) и добавили в таблицу краулеры ChatGPT, Perplexity и Claude, которых в прошлой редакции материала не было.

AI-краулер забирает исходный HTML и не ждёт скриптов

У Google обработка страницы разложена на три этапа: сканирование, рендеринг, индексирование. В документации Google Search Central, в разделе про основы JavaScript SEO, это описано прямо: страница, которой нужен рендеринг, попадает в отдельную очередь и ждёт свободных ресурсов. Контент в итоге увидят — но не сразу и не обязательно целиком. Для сводок AI Overviews и для диалогового режима AI Mode это означает, что страница на скриптах попадает в ответ с задержкой на очередь рендеринга, а не сразу после публикации.

Нейросети устроены иначе. Ответ Алисы, ChatGPT или Perplexity собирается из двух источников: того, что модель усвоила при обучении, и живого обхода страниц в момент запроса. Во втором случае у робота нет задачи ждать, пока браузерный движок дорисует интерфейс. Он берёт то, что пришло в ответе сервера, вырезает оттуда текст и отдаёт модели. Если ключевого абзаца в этом ответе не было, в цитату он не попадёт — назовут конкурента, у которого тот же текст лежит в HTML.

КраулерЧьи ответы наполняетЧто известно про рендеринг JavaScript
GooglebotПоиск Google, AI OverviewsРендерит, но отложенно: страница ждёт очереди рендеринга (Google Search Central)
BingbotBing, CopilotMicrosoft заявляет о поддержке рендеринга, но не обещает его для каждой страницы
YandexBotЯндекс, Алиса, нейроответыJavaScript исполняет, приоритеты и лимиты Яндекс публично не раскрывает
GPTBot, OAI-SearchBot, ChatGPT-UserChatGPT и поиск OpenAIПубличных заявлений о рендеринге нет; в аудитах контент из скриптов в ответ не попадает
PerplexityBotPerplexityПубличных заявлений о рендеринге нет
ClaudeBotClaudeПубличных заявлений о рендеринге нет

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

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

Проверка за десять минут: что реально видит робот

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

  1. Исходный код. Ctrl+U, затем поиск по документу (Ctrl+F) по фразе, ради которой страница существует: цена, состав услуги, ключевой абзац. Искать нужно точную формулировку, а не отдельное слово — меню и футер найдутся всегда.
  2. Отключённый JavaScript. DevTools, Ctrl+Shift+P, команда Disable JavaScript, перезагрузка. То, что осталось на экране, — примерно то, с чем работает краулер без рендеринга.
  3. Запрос без браузера. curl -A "GPTBot" https://site.ru/page вернёт ровно тот HTML, который получает робот: ни один скрипт при этом не выполняется.
  4. Google Search Console. Инструмент проверки URL, кнопка «Изучить просканированную страницу» — там лежит HTML уже после рендеринга Googlebot. Разница с первым пунктом показывает, сколько работы висит на скриптах.
  5. Вопрос самой нейросети. Задайте ChatGPT или Перплексити отраслевой вопрос вроде «имплантация зубов в Москве» и посмотрите, кого и какими словами процитируют. Это индикатор, а не доказательство: результат зависит от того, каким инструментом модель воспользовалась.

Шестой шаг для тех, у кого есть доступ к логам

Все пять проверок выше отвечают на вопрос «что робот получил бы». Логи сервера отвечают на вопрос «а приходил ли он вообще». Выгрузите записи за месяц и отфильтруйте по названиям краулеров из таблицы: GPTBot, OAI-SearchBot, PerplexityBot, ClaudeBot, YandexBot. Смотреть надо на две вещи — сам факт визита и код ответа. В аудитах мы регулярно видим, что бот приходил, получал 403 от защиты сайта или редирект на главную и уходил: контент при этом идеальный, а видимости нет, потому что до текста никто не добрался. Если краулеров в логах нет совсем, проблема ещё раньше — на уровне доступа, а не рендеринга.

Как отличить проблему рендеринга от проблемы доступа

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

Четыре способа отдать контент: CSR, SSR, SSG и пререндер

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

ПараметрCSRSSRSSGПререндер
Что получает AI-краулерПустой каркасПолный HTMLПолный HTMLПолный HTML из кэша
Кто собирает страницуБраузер пользователяСервер на каждый запросСборщик заранееHeadless-браузер по расписанию
Свежесть данныхВсегда актуальныеВсегда актуальныеНа момент сборкиНа момент прогона кэша
Нагрузка на серверМинимальнаяВысокая, нужен запас мощностиМинимальнаяСредняя, плюс отдельный сервис
Что придётся сделатьНичего, это состояние по умолчаниюПереписать фронтендПеревести шаблоны на сборкуНастроить прослойку, код не трогая
Кому подходитЛичные кабинеты и внутренние сервисыКаталоги и цены, которые меняются ежедневноБлог, услуги, отраслевые страницыГотовый SPA, который переписывать некому

На практике выбор сводится к двум сценариям. Если фронтенд можно трогать — SSR или SSG для публичных разделов и CSR для всего, что за авторизацией: личный кабинет нейросети всё равно не увидят, и продвигать его не нужно. Если переписывать некому и некогда — пререндер закрывает вопрос за недели, а не за кварталы, но остаётся прослойкой, за которой придётся следить.

Что проверить сразу после переезда на SSR

Переезд не считается завершённым, пока не сошлись четыре пункта. Первый: ключевой текст и цена видны в исходном коде без скриптов — то же правило исходника, что и до работ. Второй: несуществующий адрес отдаёт код 404, а не двухсотый ответ с пустым каркасом, иначе в индекс уедут сотни одинаковых страниц. Третий: canonical, title и разметка Schema.org приходят с сервера, а не дописываются фронтендом. Четвёртый: время ответа сервера не выросло вдвое — SSR собирает страницу на каждый запрос, и без кэширования выигрыш в видимости легко разменять на проигрыш в скорости. Отдельная проверка после переезда — битые ссылки и цепочки редиректов: при смене роутинга старые адреса нередко отвечают двухсотым кодом с пустым каркасом или ведут к нужной странице через две-три промежуточные склейки.

Семь мест, где рендеринг ломается чаще всего

Полностью «слепые» сайты встречаются реже, чем частичные потери. Обычно страницы открываются и даже индексируются, а из ответа выпадает ровно тот фрагмент, который и должен был стать цитатой. Вот что мы находим в технических аудитах чаще остального.

  • Контент за кликом. Табы, аккордеоны и кнопка «показать полностью». Если содержимое подгружается по клику, а не спрятано стилями, в исходном HTML его нет.
  • Цена и наличие через виджет. Самый дорогой случай: описание услуги в HTML есть, а цифра приходит отдельным запросом. Нейросеть отвечает «цену уточняйте» — и человек уходит к тому, у кого цена в тексте.
  • Отзывы из внешнего сервиса. Виджет агрегатора рисуется скриптом, поэтому ни оценок, ни текста отзывов в исходнике не остаётся, а вместе с ними теряется и разметка.
  • Роутинг без серверных адресов. Ссылки с решёткой вида #/uslugi/audit и переходы, которым не соответствует отдельный ответ сервера: краулеру нечего запрашивать.
  • Бесконечная прокрутка вместо пагинации. Товары и статьи со второго экрана существуют только для того, кто скроллит мышкой.
  • Мета-теги и разметка через скрипты. Title, canonical и JSON-LD, которые проставляет фронтенд после загрузки: для рендерящего робота это сработает, для остальных — нет.
  • Закрытые бандлы в robots.txt. Классика: закрыли /static/ и /assets/ «чтобы не грузили сервер» — и отключили рендеринг даже там, где он был возможен. Что открывать роботам, разобрано в материале про robots.txt и AI-краулеры.
Я не помню технического аудита сайта на React или Vue, где не нашлось бы хотя бы одного блока, который появляется только после запроса к API. Обиднее всего, что это почти всегда цены и отзывы — ровно то, что нейросети цитируют охотнее всего. Владелец сайта при этом уверен, что всё на месте: он же видит эти блоки своими глазами.
Алексей Малков
Алексей Малков
Основатель GEOAudit.org

Чистый HTML — необходимое условие, но не достаточное

Правило исходника решает задачу доступа, а не задачу выбора. Когда текст наконец виден роботу, задача JavaScript SEO на этом заканчивается и начинается другая: почему модель должна процитировать именно вас. Это уже GEO — Generative Engine Optimization, оптимизация под генеративные движки, которая надстраивается над обычным SEO, а не заменяет его.

  • Разметка Schema.org в исходном HTML, а не подставленная скриптом. Типы WebSite, WebPage, Service, FAQPage и Organization дают модели структуру вместо сплошного полотна текста — что и зачем размечать, разобрано в материале Schema.org для GEO.
  • Файл llms.txt — короткая карта смыслов сайта, адресованная напрямую AI-краулерам.
  • Абзацы, которые можно вырезать и вставить в ответ без потери смысла: определение, цифра, условие. Как они устроены, показано в разборе цитируемых фрагментов.
  • Упоминания за пределами сайта: отраслевые каталоги, справочники, отзывы. Модель сверяет, встречается ли бренд где-то ещё, кроме собственного домена.

Когда мы собираем AI Visibility Score, страницы, у которых значимый текст появляется только после скриптов, выносятся в отчёт отдельным списком. Улучшать их по смыслу бессмысленно, пока они физически недоступны краулеру, — это первая группа на переделку и обычно самая быстрая по отдаче.

📈
Кейс
GEO-аудит B2B-производства
+180% трафика

Пререндер для краулеров — это клоакинг?

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

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

Чего делать точно не стоит

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

Когда SSR не нужен и что не сработает

Переезд на серверный рендеринг — дорогая операция, и нужна она не всем. Мы честно отговариваем от неё в пяти случаях.

  • Текст и так в исходнике. Проверка по правилу исходника прошла — значит, JavaScript у вас не проблема, и бюджет разумнее потратить на контент и упоминания.
  • Сайт закрыт от посторонних. Личный кабинет, внутренний портал, панель управления: краулеры туда не ходят и ходить не должны.
  • Трафик приходит не из поиска. Если продажи идут из рекламы, партнёров и рекомендаций, рендеринг сам по себе не изменит выручку — он меняет только доступность текста для роботов.
  • Про вас нигде не спрашивают. Нейросеть не назовёт бренд, вокруг которого нет ни запросов, ни упоминаний. Сначала спрос, потом техника.
  • Некому поддерживать. SSR — это не галочка в настройках: появляется сервер, который надо мониторить, кэшировать и чинить в пятницу вечером. Без такой команды пререндер честнее.

И то, что не сработает точно. Рендеринг не заменяет ни продвижение, ни раскрутку бренда: он снимает техническое ограничение, а не создаёт причину вас цитировать. Не помогут и обходные трюки: мета-теги, дописанные скриптом после загрузки, копия контента в теге noscript вместо нормального HTML, PDF-версия страницы «специально для роботов». Всё это добавляет сущностей, за которыми нужно следить, и не решает исходную задачу — отдать значимый текст в первом же ответе сервера.

Если непонятно, к какой группе относится ваш сайт, начните с бесплатной диагностики: мы покажем, что видит краулер в исходном HTML и по каким запросам вас уже цитируют нейросети. Полная проверка машиночитаемости — доступ роботов, рендеринг, разметка, скорость — это технический GEO-аудит, от 40 000 ₽.

FAQ

Что такое JavaScript SEO простыми словами?

Это работа над тем, чтобы значимый текст страницы находился в HTML, который отдаёт сервер, а не появлялся только после исполнения скриптов в браузере. Проверка простая: откройте исходный код страницы и найдите поиском фразу, ради которой она существует. Нет в исходнике — значит, для части роботов её нет вообще.

Видит ли ChatGPT сайт, написанный на React?

ChatGPT видит то, что сервер отдал в ответ на запрос его краулера. Если проект собран по схеме CSR и текст дорисовывается скриптами, до модели доходит только каркас: меню, футер и заголовок вкладки. Публичных заявлений о том, что краулеры OpenAI исполняют JavaScript, нет, поэтому единственная надёжная страховка — держать значимый текст в исходном HTML.

Обязательно ли переходить на SSR ради нейросетей?

Нет. Задача — отдать значимый текст в первом ответе сервера, а способ вторичен. Для блога и страниц услуг достаточно SSG, для готового SPA, который некому переписывать, подходит пререндер. SSR оправдан там, где данные меняются постоянно: каталог, остатки, цены.

Как проверить, что AI-краулер видит текст, без разработчика?

Три шага занимают около десяти минут. Откройте исходный код страницы (Ctrl+U) и поищите в нём ключевую фразу; отключите JavaScript в DevTools и перезагрузите страницу; запросите URL через curl с любым user-agent. Если во всех трёх случаях текста нет — проблема в рендеринге, а не в контенте.

Влияет ли рендеринг на попадание в ответы Алисы?

Яндекс исполняет JavaScript, но приоритеты и лимиты рендеринга публично не раскрывает, а нейроответы Алисы собираются в том числе на лету. Полагаться на то, что робот успеет отрисовать SPA, рискованно: текст, который есть в HTML сразу, доступен всегда и всем краулерам.

Сколько стоит проверить рендеринг сайта?

Базовую проверку можно сделать самостоятельно и бесплатно по шагам из раздела «Проверка за десять минут». Бесплатная диагностика GEOAudit.org (0 ₽) показывает, попадает ли сайт в ответы нейросетей. Полный разбор машиночитаемости — доступ роботов, рендеринг, разметка, скорость — это технический GEO-аудит, от 40 000 ₽.

Проверим, что видит краулер на вашем сайте

Бесплатная диагностика (0 ₽) покажет, доходит ли ваш текст до нейросетей и кого называют вместо вас. Полная проверка машиночитаемости — технический GEO-аудит от 40 000 ₽.

Бесплатная GEO-диагностика Заказать полный GEO-аудит