Почему React-сайты невидимы для Googlebot и как это исправить
Разбор, почему сайты на React-SPA плохо индексируются в Google и Яндексе, как это проверить за минуту и какие архитектурные варианты решают проблему: SSG, SSR и пререндер.
React-сайты в формате SPA плохо индексируются поисковиками, потому что сервер отдаёт пустой HTML, а контент рисуется JavaScript уже в браузере. Googlebot умеет «дорисовывать» страницы, но делает это медленно и не для всех URL подряд. YandexBot и LLM-боты часто видят SPA пустыми. Решение — отдавать готовый HTML через SSG, SSR или пререндер.
Что вообще видит поисковик, когда заходит на React-сайт
Когда поисковый бот делает запрос к серверу обычного React-приложения (SPA), он получает короткий HTML-каркас примерно такого вида: <html><head><title>Loading…</title></head><body><div id="root"></div><script src="/app.js"></script></body></html>. В этом ответе нет ни одной строки контента — ни заголовков, ни текстов, ни ссылок на внутренние страницы.
Контент появится только после того, как бот скачает JavaScript-бандл, выполнит его, дождётся ответа от API и нарисует элементы. Для человека это сотые доли секунды. Для поискового робота — повод записать страницу как пустую и поставить её в очередь на «отрисовку», которая может занять часы или даже не случиться вовсе.
Как это проверить за минуту
- Откройте сайт в Chrome.
- Нажмите Ctrl+U (или правая кнопка → «Просмотреть код страницы»).
- Поищите в исходнике пару абзацев и заголовок, которые видны на сайте.
- Если их нет — у вас классическая SPA-проблема. Поисковик увидит то же самое.
Почему Googlebot не справляется с SPA
Google официально пишет (developers.google.com/search/docs/crawling-indexing/javascript): мы умеем «рендерить» JavaScript, но это занимает дополнительные ресурсы и идёт во вторую очередь после стандартного обхода HTML. На практике это значит: первая попытка индексации — пустая страница. Через несколько дней — повторный визит с рендером. Если страниц много, очередь рендера растягивается.
Кроме того, ошибки JavaScript, медленный API, AdBlock-подобные блокировки на стороне Googlebot могут в любой момент сорвать рендер. И тогда страница так и останется в индексе как пустая или вылетит из него совсем.
Что с YandexBot и LLM-ботами
YandexBot заметно слабее Googlebot в исполнении JavaScript: документация Яндекса прямо рекомендует отдавать контент в HTML или подключать пререндер. Боты крупных LLM (GPTBot, OAI-SearchBot, PerplexityBot, ClaudeBot) обычно вообще не выполняют JavaScript — индексируют только то, что есть в первом ответе сервера.
Это значит, что SPA-сайт может быть в индексе Google (с задержкой и оговорками), но при этом полностью невидим для Яндекса и для LLM. В русскоязычном интернете это критично: большая доля поискового трафика идёт через Яндекс.
Архитектурные решения
Вариантов фактически три: SSG (статическая генерация — собираем готовый HTML на этапе билда), SSR (рендеринг на сервере при каждом запросе) и пререндер (генерируем HTML только для ботов через сервис вроде Prerender.io). У каждого свои компромиссы.
- SSG быстрый и дешёвый: контент готов заранее, отдаётся со скоростью статики, идеально для маркетинговых сайтов и блогов.
- SSR гибче: контент свежий на каждом запросе, нужна работающая серверная инфраструктура. Подходит, когда страницы зависят от данных в реальном времени.
- Пререндер — пластырь: нужен внешний сервис, который ловит ботов по User-Agent и отдаёт им заранее сохранённый HTML. Работает, но добавляет точку отказа.
Какой подход выбрать
Для большинства маркетинговых сайтов, лендингов, блогов и каталогов услуг правильный ответ — SSG. Современные фреймворки (Next.js, Astro, Vite + плагины) умеют это из коробки. Контент готов заранее, отдаётся быстро, виден всем поисковикам и LLM.
Если ваш React-проект — это интерфейс приложения (личный кабинет, чат, дашборд), оставлять его SPA нормально: ему не нужно индексироваться. Просто маркетинговые страницы (главная, тарифы, блог, посадочные) выносите в отдельный SSG-слой.
Как это устроено во Взлетим
Взлетим решает эту проблему за вас архитектурно. Сайты пользователей собираются как готовый HTML на этапе публикации — каждая страница отдаётся со всеми текстами, заголовками и ссылками внутри. Сама панель управления Взлетим — это SPA на React, потому что ей не нужно индексироваться. А маркетинговые страницы (vzleteam.ru/welcome, vzleteam.ru/pricing) тоже пререндерятся в HTML, чтобы поисковики видели их с первой секунды.
Если вы делаете сайт во Взлетим — ничего настраивать не нужно. SSG-сборка работает по умолчанию, на всех тарифах, для всех ваших проектов.
Частые вопросы
Другие статьи
Все статьи →- SEO и поисковики
Почему сайты на Взлетим попадают в Яндекс — а другие AI-конструкторы нет
Разбираем на пальцах, что именно видит Яндекс-бот, когда заходит на сайт, собранный AI. Почему обычные AI-конструкторы оставляют поисковиков ни с чем — и как Взлетим решает эту проблему за вас.
18 апреля 2026Читать - SEO и поисковики
Чек-лист SEO для лендинга в 2026 — без воды
Конкретные пункты, которые делают лендинг видимым в Google и Яндексе в 2026. Без устаревших трюков и SEO-мифов: только то, что реально влияет на индексацию и позиции.
26 апреля 2026Читать - Архитектура
SSG vs SSR vs SPA: что выбрать AI-конструктору сайтов
Сравниваем три подхода к рендерингу веб-страниц с точки зрения скорости, индексации и сложности. Объясняем, почему AI-конструкторы массово делают SPA — и почему это плохо для пользователей.
26 апреля 2026Читать - SEO и поисковики
Как индексировать новый сайт в Яндексе быстрее: пошаговый план
Конкретная последовательность действий, которая ускоряет индексацию нового сайта в Яндексе с месяцев до 1–2 недель: подтверждение прав, sitemap, переобход, IndexNow.
26 апреля 2026Читать