SEO для SPA и PWA: почему сайт не виден поисковику
Почему JavaScript-сайты могут плохо индексироваться, чем отличаются SPA, PWA, SSR и prerender, и как сделать страницы видимыми для поиска.
Категория: Technical SEO / frontend. Интент: Понять, почему SPA/PWA сайт не получает нормальную индексацию. Время чтения: 8 минут.
- Проблема часто не в дизайне, а в том, какой HTML получает поисковик
- Title и description после загрузки JS хуже, чем мета в первом HTML-ответе
- Для SEO-страниц стоит использовать SSR, SSG или хотя бы prerender
Почему SPA может просесть в поиске
SPA часто отдает один пустой HTML-файл, а весь контент появляется после загрузки JavaScript. Пользователь видит сайт нормально, но бот сначала получает почти пустую оболочку.
Современные поисковики умеют исполнять JavaScript, но это дополнительный этап. Он может занимать время, ломаться из-за ошибок, ограничений ресурсов или неправильных роутов. Для коммерческих и SEO-страниц это лишний риск.
Какие симптомы смотреть
Если в исходном HTML нет уникального H1, текста, title, description и canonical для конкретной страницы, это сигнал. Еще хуже, если прямой переход на URL отдает 404 или всегда один и тот же title.
Проверять нужно не только браузером, но и через curl, просмотр исходного кода, Search Console, Вебмастер, логи сервера и фактическую индексацию URL.
Что делать
Для важных страниц лучше использовать SSR или SSG. SSR генерирует HTML на сервере при запросе, SSG заранее создает статические HTML-файлы. Prerender - компромисс: после сборки создаются HTML-файлы для выбранных маршрутов.
Если проект уже на Vite SPA, можно начать с prerender для статей, кейсов и посадочных. Это не заменяет полноценный SSR, но закрывает главную боль: мета и HTML для конкретного URL появляются сразу.
Что важно не забыть
Нужны sitemap, robots.txt, canonical, человекочитаемые URL, корректная отдача вложенных маршрутов на хостинге и отсутствие конфликтов между SPA fallback и статическими index.html.
Для PWA отдельно проверяют service worker: он не должен отдавать устаревшие страницы поисковику или ломать прямые переходы на вложенные URL.
Чек-лист
- Проверить исходный HTML конкретного URL
- Добавить уникальные title, description и canonical
- Сделать prerender/SSG для статей и кейсов
- Настроить sitemap и robots.txt
- Проверить прямые переходы на вложенные маршруты после деплоя
Связанные материалы
- pSEO-страницы - Почему programmatic SEO особенно чувствителен к HTML-отдаче.
- Парсинг sitemap - Как проверить структуру сайта и найти проблемные URL.
- Разборы JUXA LAB - Вернуться к списку статей и систем.
Можно собрать такую систему под вашу нишу
Если у вас есть маркетинговая задача, которую сложно масштабировать руками, я могу спроектировать контур: данные, парсинг, AI-слой, фронт, бэк, аналитику и понятный интерфейс контроля.