Перейти к содержанию
Tverknit

Как работает пререндеринг

Почему ваш Next.js сайта работает медленнее конкурентов, хотя используете современный стек? Проблема часто не в коде и не в браузере, а в том, как вы рендеритесь страницы на стороне сервера и клиента. Большинство разработчиков либо усложняют динамический рендеринг на сервере, либо отправляют слишком много JS на клиента, мешая поисковым системам индексировать контент страницы полностью. Пререндеринг предлагает другой подход. Во время build вы генерируете HTML на сервере и сохраняете готовые страницы. Файлы лежат на сервере, браузер загружает код мгновенно — это работает лучше всего. С помощью пререндеринга вы используете кешированный HTML и снижаете нагрузку на сервере. Пререндеринг это метод, который помогает поисковым системам индексировать структурированный код и с помощью этого подхода взяли под контроль производительность сайта. В этой статье разбираем, как работает пререндеринг на практике, какой подход выбрать для страницы вашего проекта и сайта.

Как работает пререндеринг — Нейтральный редакционный кадр статьи, общий для анонса и полного текста
Пререндеринг подготавливает полный HTML на сервере во время build, обеспечивая мгновенную загрузку и правильную индексацию контента

Почему поисковые роботы видят пустоту

Большинство современных сайтов на React или Vue имеют одну скрытую проблему. Ты открываешь страницу в браузере — всё красиво, контент на месте. Но когда заглядываешь в Google Search Console, видишь, что поисковые роботы получили пустой HTML. Как так?

Причина в клиентском рендеринге. Браузер загружает оболочку с <div id="root">, а потом JavaScript выполняется и добавляет контент. Боты не ждут выполнения кода — они забирают начальный HTML и уходят. Результат: поисковые системы видят пустую страницу. Контент есть, но индексируется как отсутствующий. Ранжирование падает, трафик не приходит.

Что такое пререндеринг

Пререндеринг — это заранее подготовленный или сгенерированный HTML, который браузер получает сразу, без задержек на JavaScript. На стороне сервера контент страницы готов ещё до момента загрузки. Пользователя видит полный контент, поисковые боты тоже.

Если объяснять аналогией: обычный серверный рендеринг похож на готовку блюда на заказ (долго, но всегда свежее), а статическая генерация — на заготовленные блюда в холодильнике (очень быстро, но есть риск устаревания). Пререндеринг выбирает скорость.

На практике это работает так. На стороне сервера генерируется HTML с полным контентом. Браузер не выполняет код — просто скачивает готовый файл. Поисковых систем получают полный текст, заголовки, разметку. Они индексируют правильнее и быстрее.

Три подхода к пререндерингу

Static Site Generation (SSG). Во время build проекта ты один раз генерируешь все страницы на стороне сервера. Готовые HTML файлы лежат на сервере. Браузер скачивает их мгновенно. Это работает лучше всего по скорости. Минус: очень новые данные не появляются автоматически. Нужно перестраивать весь сайт. Подходит блогам, документации, лендингам.

Incremental Static Regeneration (ISR). Гибридный подход. Основные страницы строишь при build, остальные генерируешь по требованию. Старые страницы кешируются, но обновляются в фоне. Используй это для e-commerce с тысячами товаров. Популярные товары уже готовы, редкие генерируются по первому запросу.

Server-Side Rendering (SSR). Page генерируется на сервере для каждого запроса. Данные всегда свежие, но требует больше ресурсов. Применяй когда у каждого пользователя свои данные.

Коммерческая ценность пререндеринга

Пререндеринг объединяет три бизнес-преимущества.

SEO и индексация. Когда контент готов при загрузке, поисковые системы видят полный текст. Они правильнее анализируют смысл страницы, быстрее её индексируют. Результат: лучшее ранжирование, больше трафика.

Скорость загрузки. Браузеру не нужно выполнять JavaScript. Контент виден сразу. На медленном телефоне или слабом интернете это критично для удержания пользователей.

Стабильность системы. Количество JavaScript на клиенте уменьшается. Браузер не нагружается, вкладка не зависает, батарея телефона разряжается медленнее.

Core Web Vitals при пререндеринге

First Contentful Paint (FCP) — время появления первого контента. Улучшается кардинально. Вместо времени выполнения кода видишь контент сразу.

Largest Contentful Paint (LCP) — загрузка крупного элемента. Улучшается, но меньше чем FCP. Зависит от размера изображений и других ресурсов.

Cumulative Layout Shift (CLS) — стабильность макета при загрузке. Остаётся примерно на одном уровне. Макет уже известен с начала, он не "прыгает".

Конкретные цифры зависят от проекта, но тренд очевидный: пререндеринг критически улучшает FCP, заметно помогает LCP, CLS обычно не меняется.

Где использовать пререндеринг

Статьи и блоги — выбирай SSG. Контент стабилен, страницы готовятся один раз.

E-commerce с быстро меняющимися ценами — используй SSR. Данные должны быть актуальными в реальное время, найти другой способ сложнее.

Каталоги товаров с редкими обновлениями — подходит ISR. Популярные товары готовы при build, редкие генерируются по запросам.

Персональные кабинеты — SSR или динамический рендеринг. Каждый пользователь видит свои данные, заранее сгенерировать невозможно.

Правильный выбор подхода для разных частей сайта одновременно решает проблему с производительностью и с поисковой видимостью. Это не требует колоссальных затрат, а результат заметен с первых дней.

Механизм работы пререндеринга на практике

Три основных подхода к рендерингу страниц

Серверный рендеринг создает HTML на каждый новый запрос клиента. Клиентский рендеринг опирается целиком на javascript в браузере пользователя. Static generation подготавливает все страницы при сборке приложения один раз. Динамический рендеринг позволяет выбирать метод автоматически. Single page application требует больше вычислительного ресурса в браузере — получает пустой HTML файл и javascript загружает данные с нуля.

От запроса к готовому контенту на сервере

При пременении пререндеринг браузер получает готовый HTML с разметкой и данными. Запрос от клиента приходит на сервере, откуда отправляется готовый контент или генерируется из кэша. На стороне браузере парсится HTML код, применяются CSS стили для оформления. Затем javascript гидрирует компоненты, восстанавливая полную интерактивность и функциональность приложения.

Выбор стратегии для разных типов страниц сайта

Главная страница веб сайта подходит для static generation — информация там стабильна. Каталог товаров требует ISR подхода для периодического обновления цен. Личный кабинет работает через SSR стратегию с помощью свежих данных пользователя. Next.js и Nuxt поддерживают все режимы рендеринга страниц, помогая найти оптимальный подход для каждого типа контента проекта.

Наверх