Разделите crawl, render и index
Google описывает три фазы обработки JavaScript-приложений: crawling, rendering и indexing. Ошибка может возникнуть на каждой: URL не обнаружен, ресурс заблокирован, JS падает при рендеринге или итоговый контент не соответствует ожиданию.
Сравните исходный HTML и rendered DOM
Для ключевого шаблона проверьте: H1, основной текст, canonical, robots meta, hreflang, ссылки на категории и карточки. Если важный элемент появляется только после пользовательского клика или запроса, crawler может не пройти тот же путь.
Ссылки должны быть настоящими ссылками
Навигация, построенная только на onclick без <a href>, усложняет discovery. Для SEO-важных переходов используйте crawlable URLs, а JavaScript оставляйте для улучшения интерфейса.
Lazy loading не должен скрывать контент
Изображения и блоки можно лениво загружать, но не делайте их зависимыми только от действий, которые поисковый renderer не воспроизводит. Проверяйте URL Inspection / rendered HTML и браузер без взаимодействий.
SSR/SSG — инструмент, а не самоцель
Server-side rendering или static generation могут упростить доступность контента, но плохая canonical-логика или дубли маршрутов останутся. Архитектуру выбирают по продукту и поддерживаемости, а SEO проверяют на итоговом HTML.
Что проверить до внедрения
- Выбрать 5–10 ключевых шаблонов и сохранить raw HTML + rendered DOM.
- Проверить metadata, content и crawlable links в обоих состояниях.
- Посмотреть console/network errors и заблокированные ресурсы.
- Проверить lazy-loaded элементы без скролла/клика.
- После изменения фреймворка провести crawl staging до релиза.
На что опирается материал
Для меняющихся функций поисковых систем и AI 21SEO отделяет официально подтверждённые требования от практической интерпретации.