SPA (Single Page Application) на React, Vue, Angular — проблема для SEO. Контент рендерится на клиенте, а поисковый робот видит пустой HTML.
Проблема
Googlebot рендерит JavaScript, но с задержкой и лимитами. Яндекс рендерит JS значительно хуже. Итог: контент SPA может не попасть в индекс.
Решения
1. SSR (Server-Side Rendering) — лучший вариант.
- Next.js (React), Nuxt.js (Vue), Angular Universal
- Сервер отдаёт готовый HTML с контентом → робот видит всё
- После загрузки — JS «гидрирует» страницу для интерактивности
2. SSG (Static Site Generation).
- Страницы генерируются на этапе сборки → статический HTML
- Идеально для блогов, лендингов, каталогов с редким обновлением
- Gatsby, Next.js (static export), Hugo
3. Dynamic Rendering (крайний случай).
- Определяем User-Agent: если робот → отдаём пре-рендеренный HTML
- Google официально поддерживает, но рекомендует SSR
- Puppeteer, Rendertron — инструменты для пре-рендеринга
Как проверить
GSC → Проверка URL → «Просмотр просканированной страницы». Если видите контент — всё OK. Если пусто — нужен SSR.