Правильный ответ: не выбирать один режим для всего сайта.
Для интернет-магазина и блога на NextJS лучше такая схема:
Тип страницы Лучший вариант Почему
Статьи блога SSG / ISR Быстро, стабильно, SEO-контент сразу в HTML
Главная SSG / ISR Меняется нечасто, хорошо кэшируется
Категории товаров ISR Категории нужны в индексе, но ассортимент может обновляться
Карточки товаров ISR + on-demand revalidate Страница быстрая, но можно обновлять после изменения цены/остатка
Фильтры каталога избирательно ISR / SSR, остальное noindex Не все фильтры нужны в индексе
Поиск по сайту SSR или CSR + noindex Обычно не нужен в индексе
Корзина, кабинет, избранное CSR SEO там не нужен
CRM/admin-зоны CSR Это не индексируемые страницы
Главная рекомендация
Для SEO-страниц интернет-магазина и блога:
используйте Server Components + SSG/ISR как базовый вариант. SSR — только там, где данные должны быть свежими на каждый запрос. CSR — только для интерактива и личных зон.
В App Router у Next.js Server Components используются как базовая модель, а маршруты рендерятся на сервере по умолчанию. Это хорошо для SEO, потому что важный контент можно отдавать без ожидания клиентского JavaScript.
Почему не чистый SPA / CSR
Для SEO плохо, когда товар, текст статьи, H1, Title, Description, хлебные крошки, ссылки и schema.org появляются только после выполнения JS в браузере.
Google умеет обрабатывать JavaScript, но процесс идёт через этапы crawling → rendering → indexing, то есть рендеринг JS — отдельный этап. Чем больше SEO-контента зависит от клиента, тем выше риск задержек и проблем с индексацией.
Когда использовать SSG
SSG хорошо подходит для страниц, которые редко меняются:
статьи блога;
лендинги;
страницы услуг;
статичные SEO-страницы;
страницы брендов;
информационные разделы.
Плюс: максимальная скорость.
Минус: если страниц много и они часто обновляются, полный rebuild может стать неудобным.
Когда использовать ISR
ISR — лучший основной вариант для SEO-магазина.
Он позволяет держать страницы статическими и быстрыми, но обновлять их без полной пересборки сайта. Next.js прямо описывает ISR как способ обновлять статический контент без rebuild всего сайта, снижать нагрузку на сервер и работать с большим количеством страниц.
Используйте ISR для:
карточек товаров;
категорий;
брендов;
SEO-фильтров;
блога, если статьи могут обновляться;
страниц подборок: /laptops/dell/, /krossovki/nike/, /blog/seo/.
Примерно так:
export const revalidate = 3600;
То есть страница может обновляться раз в час.
Для товаров лучше делать не просто revalidate, а on-demand revalidation после изменения товара в CMS/админке.
Когда использовать SSR
SSR нужен не для “лучшего SEO”, а для свежести данных.
Используйте SSR, если на странице критично показывать актуальные данные прямо на каждый запрос:
цена зависит от региона;
остатки должны быть точными;
контент персонализирован;
выдача зависит от cookies/session;
A/B или geo-логика меняют основной контент.
Минус SSR: HTML генерируется на каждый запрос, поэтому такая страница обычно тяжелее для сервера и хуже кэшируется, чем SSG/ISR. В документации Next.js SSR описан именно как генерация HTML на каждый запрос.
Что такое RSC в этой схеме
RSC — это не замена SSR/SSG/ISR.
React Server Components — это способ писать компоненты, которые выполняются на сервере. А вот будет страница статической, динамической или с ревалидацией — это уже вопрос кэширования и data fetching.
Проще:
RSC — где выполняется компонент;
SSG/ISR/SSR — как и когда генерируется страница;
CSR — что дорисовывается в браузере.
Практическая схема для магазина
Я бы делал так:
/ → ISR
/catalog/ → ISR
/catalog/category-slug/ → ISR
/product/product-slug/ → ISR + on-demand revalidate
/blog/ → ISR или SSG
/blog/article-slug/ → SSG / ISR
/search/ → SSR или CSR + noindex
/cart/ → CSR + noindex
/account/ → CSR + noindex
/checkout/ → CSR/SSR + noindex
Важное SEO-правило
Для всех индексируемых страниц в первом HTML должны быть:
title;
meta description;
canonical;
H1;
основной текст;
цена/название/описание товара;
хлебные крошки;
внутренние ссылки;
schema.org;
пагинация или ссылки на товары.
Не надо делать так, чтобы Google сначала видел пустой шаблон, а потом ждал JS.
Итог
Для блога:
SSG или ISR.
Для интернет-магазина:
ISR как база, SSR только для реально динамических страниц, CSR только для личных и интерактивных частей.
Самая безопасная SEO-архитектура на NextJS:
SEO-контент → Server Components + SSG/ISR
Свежие данные → SSR только где нужно
Интерактив → Client Components
Личный кабинет/корзина → CSR + noindex
Не надо выбирать “SSR против SSG”. Для нормального магазина почти всегда нужна гибридная схема.