В 2026 Googlebot выполняет JavaScript, но большинство AI-краулеров (ChatGPT, Perplexity, Claude) — нет. Чтобы быть видимым и в поиске, и в ответах ИИ, отдавайте основной контент в серверном HTML, а не полагайтесь на клиентский рендеринг.
Десять лет вопрос JavaScript SEO звучал просто: "Отрендерит ли Googlebot мою страницу?" В 2026 у него появилась вторая половина, не менее важная: "А AI-краулеры смогут?" И для большинства из них ответ — нет. Вот как на самом деле работает рендеринг сейчас и что с этим делать.
Разрыв в рендеринге между Google и AI-краулерами
Googlebot рендерит JavaScript. Он берёт ваш HTML, ставит страницу в очередь, запускает современный Chromium и индексирует полученный DOM. Этот двухэтапный процесс надёжен уже годами, так что хорошо сделанное клиентское приложение может ранжироваться в обычном поиске Google.
С AI-краулерами история другая. Боты, питающие ChatGPT, Perplexity, Claude и собственные AI-системы Google, в основном берут сырой HTML и не выполняют JavaScript. Они созданы для скорости и масштаба на миллиардах URL, а запускать полноценный браузер для каждой — дорого. Так что они читают то, что отдаёт сервер, и двигаются дальше.
Это создаёт разрыв в рендеринге. Страница, которую Googlebot терпеливо рендерит, может выглядеть совершенно пустой для LLM-краулера. Если ваш контент, заголовки и ссылки существуют лишь после выполнения JavaScript, вы можете ранжироваться в Google, но быть невидимыми в ответах ИИ — именно там, где видимость в 2026 растёт быстрее всего.
Два семейства краулеров, которые стоит различать:
- Краулеры обучения/индексации (например, GPTBot, ClaudeBot), собирающие контент для моделей и поиска.
- Живые retrieval-фетчеры, тянущие страницу в реальном времени под конкретный запрос. Они самые нетерпеливые из всех и почти никогда не ждут рендеринга.
SSR против CSR: выбирайте безопасный вариант по умолчанию
Выбор архитектуры решает, переживёт ли ваш контент этот разрыв.
- Клиентский рендеринг (CSR). Сервер отдаёт почти пустую HTML-оболочку плюс JavaScript-бандл; страницу строит браузер. Отлично для интерактивности уровня приложения, опасно для доступности краулерам. Боты без рендеринга видят пустую оболочку.
- Серверный рендеринг (SSR). Сервер возвращает полностью сформированный HTML на каждый запрос, а JavaScript затем гидратирует его для интерактивности. Каждый краулер сразу получает контент.
- Статическая генерация (SSG). Страницы пререндерятся в HTML на этапе сборки. Самый быстрый и дружелюбный к краулерам вариант для контента, не меняющегося от запроса к запросу.
Моя рекомендация по умолчанию прямая: отдавайте основной контент в исходном HTML, через SSR или SSG. Чистый CSR оставляйте для по-настоящему интерактивных, залогиненных или неиндексируемых поверхностей. Если ваша ценность — это контент и вы хотите видеть его в ответах ИИ, он должен быть в HTML, который отдаёт сервер.
Ловушки гидратации, что тихо всё вам ломают
Даже команды, внедрившие SSR, спотыкаются о гидратацию — шаг, где клиентский JavaScript "перехватывает" серверный HTML. Следите за таким:
- Контент, появляющийся лишь после гидратации. Если вкладки, аккордеоны или блоки "читать далее" подгружают настоящий текст через JavaScript, краулеры без рендеринга его не видят. Кладите полный текст в серверный HTML и управляйте видимостью через CSS.
- Расхождения гидратации. Когда серверный и клиентский HTML не совпадают, некоторые фреймворки отбрасывают серверную разметку и перерендеривают на клиенте, на мгновение воссоздавая проблему CSR. Держите вывод сервера и клиента идентичным.
- Крайние случаи стриминга и частичной гидратации. Современные фреймворки стримят HTML частями. Убедитесь, что значимый контент идёт в исходном документе, а не в асинхронном блоке, прибывающем поздно.
- Клиентская маршрутизация. Если внутренняя навигация происходит полностью в JavaScript без настоящих
<a href>, краулеры не могут по ней идти. Всегда рендерите настоящие теги-якоря с реальными URL.
Сделайте контент доступным для обоих
Практический чек-лист, который я применяю к каждому насыщенному JavaScript сайту:
- Кладите основной контент на сервер. Главный текст, H1–H3, детали товара и внутренние ссылки должны быть в сыром HTML.
- Используйте настоящие ссылки.
<a href="/real-url">, а не<div onclick>. Именно так и Google, и LLM-краулеры находят ваш сайт. - Рендерите метаданные на сервере. Title, meta description, canonical и структурированные данные (JSON-LD) должны присутствовать без JavaScript.
- Не блокируйте ресурсы в robots.txt. Если вы полагаетесь на рендеринг Googlebot, ему нужны ваши CSS и JS. Блокировка ломает рендер.
- Добавляйте структурированные данные. Разметка Schema.org помогает каждому парсеру, а чистый, хорошо размеченный HTML — это то, что LLM извлекают надёжнее всего.
- Следите за доступом краулеров. Осознанно решайте, пускать ли AI-краулеров. Блокировка их в robots.txt — это компромисс по видимости, а не нейтральный выбор по умолчанию.
Как проверить, что краулеры действительно видят
Перестаньте доверять рендеренному виду в DevTools. Он показывает DOM после JavaScript — то, что видит Googlebot, но не сырые фетчеры. Вместо этого:
- Смотрите сырой код. Используйте
curl -A "Mozilla/5.0" https://yoursite.com/pageили Просмотр кода страницы в браузере (не Inspect). Убедитесь, что ваш основной текст, заголовки и ссылки присутствуют в этом HTML. - Сравнивайте с рендеренным DOM. Разница между сырым кодом и рендеренным DOM — это именно то, что пропускают краулеры, зависящие от JavaScript.
- Используйте инструмент проверки URL в Search Console, чтобы увидеть рендеренный HTML Googlebot, и отключите JavaScript в браузере, чтобы сымитировать бота без рендеринга.
- Проверяйте логи сервера на user-agent AI-краулеров, чтобы узнать, кто вас действительно фетчит и как часто.
Разрыв между "Просмотром кода" и рендеренным DOM — это ваш риск видимости в ИИ в одном измерении. Если ваш контент живёт лишь в рендеренном DOM, у вас есть над чем работать.
Что делать с существующим CSR-сайтом
Не каждая команда может переписать приложение за квартал. Если вы уже на тяжёлом клиентском рендеринге, у вас есть прагматичные промежуточные шаги:
- Динамический рендеринг для ботов. Отдавайте краулерам пререндеренный HTML, а пользователям — привычное приложение. Google когда-то называл это обходным решением, но для видимости в ИИ это часто спасает ситуацию, пока идёт миграция.
- Гибридный рендеринг по маршрутам. Переведите на SSR или SSG сначала самые важные контентные шаблоны — главную, категории, статьи, — а панель управления или личный кабинет оставьте на CSR.
- Прегенерация ключевых страниц. Даже простой билд-шаг, сохраняющий статический HTML для топовых URL, делает их доступными каждому краулеру.
- Приоритизация по ценности. Начните со страниц, которые приносят трафик и фигурируют в запросах, где вы хотите появляться в ответах ИИ. Не мигрируйте всё сразу.
Цель — не архитектурная чистота, а то, чтобы ваш настоящий контент оказался в исходном HTML там, где это приносит деньги.
Главный вывод
В 2026 рендеринг больше не забота одного лишь Google. Googlebot выполнит ваш JavaScript, но AI-краулеры, решающие, появитесь ли вы в ответах ChatGPT и Perplexity, обычно нет. Отдавайте настоящий контент в серверном HTML, используйте настоящие ссылки и серверные метаданные и тестируйте через "Просмотр кода", а не DevTools. Сделайте это — и вы будете понятны каждой системе, которая имеет значение, а не только той, что случайно запускает браузер.
FAQ
Выполняют ли AI-краулеры JavaScript в 2026?
В основном нет. Googlebot рендерит JavaScript, но краулеры ChatGPT, Perplexity и Claude обычно берут сырой HTML и пропускают клиентский рендеринг. Контент, появляющийся лишь после выполнения JS, часто для них невидим.
Что лучше для SEO и видимости в ИИ — SSR или CSR?
Серверный рендеринг (SSR) или статическая генерация безопаснее, так как полный контент есть в исходном HTML для любого краулера. Клиентский рендеринг (CSR) рискует пустыми страницами для ботов без JS, включая большинство LLM-краулеров.
Как проверить, доступен ли контент без JavaScript?
Смотрите сырой HTML через curl или "Просмотр кода страницы" в браузере, а не рендеренный DOM в DevTools. Если основной текст, ссылки и заголовки отсутствуют в этом коде, краулеры без JS их не видят.
Нечастые заметки про SEO и GEO. Без спама.