Обсудить проект

Серверный рендеринг и SEO: почему сайт на JavaScript может плохо индексироваться

Если содержимое страницы появляется только после выполнения JavaScript, поисковики могут увидеть её пустой или проиндексировать с задержкой. Объясняю разницу между серверным и клиентским рендерингом и что выбрать для сайта компании.

Обложка статьи «Серверный рендеринг и SEO: почему сайт на JavaScript может плохо индексироваться»
Содержание
  1. Два способа сформировать страницу
  2. Серверный рендеринг (SSR)
  3. Клиентский рендеринг (CSR)
  4. Как поисковые системы обрабатывают JavaScript
  5. Типичные проблемы JavaScript-сайтов
  6. Как проверить, что видит поисковик
  7. Что выбрать для сайта компании
  8. Когда клиентский рендеринг уместен
  9. Влияние на скорость и Core Web Vitals
  10. Как это устроено у меня
  11. Итог

Современные сайты часто строятся как «одностраничные приложения»: браузер загружает почти пустую страницу и скрипт, который затем запрашивает данные и рисует всё содержимое. Пользователю это может быть незаметно. Но для поисковых систем разница существенна: если текст страницы появляется только после выполнения JavaScript, есть риск, что поисковик увидит её пустой, проиндексирует с задержкой или не найдёт ссылки на другие страницы.

Разберём, как это работает и какой подход выбрать для сайта, который должен приносить трафик из поиска.

Два способа сформировать страницу

Серверный рендеринг (SSR)

Сервер формирует готовый HTML с текстом, заголовками, ссылками и метатегами и отправляет его браузеру. Браузер сразу показывает содержимое, а JavaScript добавляет интерактивность — меню, формы, анимации.

Так работают классические сайты на PHP-фреймворках, в том числе на Laravel, и большинство CMS.

Клиентский рендеринг (CSR)

Сервер отдаёт минимальный HTML-каркас и JavaScript-приложение. Содержимое строится в браузере после загрузки и выполнения скриптов и запросов к API.

Так работают одностраничные приложения на популярных JavaScript-библиотеках, если их не дополнять серверным рендерингом.

План статьи «Серверный рендеринг и SEO: почему сайт на JavaScript может плохо индексироваться»: Два способа сформировать страницу; Как поисковые системы обрабатывают JavaScript; Типичные проблемы JavaScript-сайтов; Как проверить, что видит поисковик; Что выбрать для сайта компании; Когда клиентский рендеринг уместен

Как поисковые системы обрабатывают JavaScript

Google умеет выполнять JavaScript, но делает это не всегда сразу: страница может сначала попасть в очередь на обработку, и её содержимое будет учтено позже. Для крупных сайтов и часто обновляемого контента эта задержка заметна. Яндекс также умеет обрабатывать JavaScript, но надёжнее, когда основной контент доступен в исходном HTML.

Кроме того, рендеринг может сорваться по техническим причинам: скрипт не загрузился, API ответил ошибкой или слишком медленно, а робот не стал ждать. Тогда поисковик видит пустую страницу.

Типичные проблемы JavaScript-сайтов

  • пустой исходный HTML: текст и заголовки появляются только после выполнения скриптов;
  • одинаковые метатеги: title и description меняются скриптом, и поисковик может видеть один и тот же заголовок на всех страницах;
  • ссылки без адресов: переходы реализованы через обработчики кликов, а не обычные ссылки, и робот не может их обнаружить;
  • адреса с решёткой: разделы вида /#/services — для поисковика это одна страница;
  • медленная первая загрузка: пользователь видит пустой экран, пока скачивается и выполняется приложение, что ухудшает LCP;
  • ошибки 404, которые отдают код 200: приложение показывает «страница не найдена», но сервер отвечает, что всё в порядке.

Как проверить, что видит поисковик

  • Откройте исходный код страницы (не инструменты разработчика, а именно «Просмотр кода страницы»). Есть ли там текст статьи или описания услуги? Если в исходнике только пустой контейнер и скрипты — контент формируется на клиенте.
  • Отключите JavaScript в браузере и обновите страницу. Что осталось?
  • Проверка URL в Search Console покажет, как Google видит отрисованную страницу.
  • Проверка ответа сервера в Яндекс.Вебмастере покажет исходный HTML.

Что выбрать для сайта компании

Для сайтов, которые должны приводить клиентов из поиска, — корпоративных сайтов, страниц услуг, блогов, каталогов — надёжнее серверный рендеринг:

  • контент сразу доступен поисковикам;
  • страница быстро отображается, особенно на слабых телефонах;
  • проще управлять метатегами, canonical, микроразметкой;
  • статус ответа сервера корректный: 200, 301, 404.

Интерактивность при этом никуда не девается: JavaScript используется для того, что действительно требует динамики, — квизов, фильтров, калькуляторов, форм.

Когда клиентский рендеринг уместен

  • закрытые части сайта, которые не нужно индексировать: личные кабинеты, админ-панели, внутренние сервисы;
  • сложные интерактивные инструменты, где важна скорость реакции интерфейса.

Если же JavaScript-фреймворк нужен для публичной части, используют его серверный режим или предварительную генерацию страниц. Это решает проблему индексации, но усложняет инфраструктуру.

Влияние на скорость и Core Web Vitals

Серверный рендеринг помогает не только индексации, но и скорости. При клиентском рендеринге браузер должен сначала скачать и выполнить приложение, затем запросить данные и только потом показать содержимое — на слабых телефонах и медленном интернете это заметные секунды. При серверном рендеринге готовый текст приходит в первом же ответе, поэтому метрика LCP обычно лучше, а пользователь быстрее видит то, ради чего пришёл.

Как это устроено у меня

Публичные страницы сайтов, которые я делаю, формируются на сервере: текст статьи, содержание, хлебные крошки, метатеги, микроразметка — всё есть в исходном HTML. Статьи доступны поисковикам без выполнения скриптов. JavaScript добавляет то, что нужно пользователю: мобильное меню, анимации, квиз, отправку формы без перезагрузки. Административная панель — интерактивное приложение, но её индексировать и не нужно.

Итог

Серверный рендеринг — надёжная основа для SEO: поисковики сразу видят контент, страницы быстрее открываются, а технические настройки проще контролировать. Если ваш сайт построен как JavaScript-приложение и плохо индексируется, проверьте исходный HTML страниц — проблема может быть именно в этом. Подробнее о технологиях — в статье почему Laravel. Я разрабатываю быстрые сайты с серверным рендерингом — подробнее на страницах корпоративных сайтов и веб-систем. Оставьте заявку — проверю, как поисковики видят ваш сайт.