Проблема SEO в Nuxt
Когда мы делаем публичный сайт, часто важно, чтобы его страницы находили в поиске по Google, Yandex и другим системам. Тогда посетители приходят по запросам без постоянной оплаты рекламы.
Сайт, собранный только на Vue без фреймворка полного цикла, обычно отдает в браузер почти пустую HTML-оболочку: в документе есть контейнер и подключение скриптов, а тексты, заголовки и списки появляются позже, когда JavaScript отработает на стороне клиента.
Для человека задержка может быть короткой, но для поискового робота и для первого экрана страница выглядит бедной: нет готового содержимого, которое можно сразу проиндексировать или показать до загрузки интерактивности.
Чтобы текст и разметка были доступны сразу, HTML нужно собрать заранее и отправить вместе с ответом сервера. Такой подход называют SSR (Server-Side Rendering, рендеринг на сервере): сервер выполняет код страницы, получает готовую разметку и передает ее браузеру.
Nuxt как раз заточен под эту задачу. Он запускает Vue-компоненты на сервере, формирует HTML с текстом страницы и только затем подключает клиентскую часть, чтобы страница стала интерактивной. В следующих уроках мы увидим это на живом проекте.
Поисковики постепенно лучше обрабатывают сайты с чистым клиентским рендерингом, но для надежного SEO и быстрого первого экрана готовый HTML по-прежнему остается сильным решением.
Расскажите, почему пустая оболочка мешает поиску.