CSR vs SSR 🤼

Выбирая между CSR и SSR, ты на самом деле решаешь, будет ли твой сайт быстрым для пользователей и заметным для поисковой системы. Это не скучная тема для гиков, а ключ к успеху твоего проекта. Давай разберемся без сложных терминов, но с конкретными цифрами Что это вообще такое?

CSR (Client-Side Rendering) - это когда твой браузер делает всю грязную работу. Ты получаешь почти пустой HTML-файл, а потом JavaScript как волшебник из шляпы достает и показывает весь контент. Пока волшебство происходит, пользователь смотрит на пустоту.

SSR (Server-Side Rendering) - это когда сервер делает всю подготовку за кулисами и отправляет тебе готовую страницу, как пиццу с доставкой. Открыл - и сразу можно есть 🍕

Выбор между CSR и SSR - это не философский спор. Это про деньги и аудиторию 1) Если страница грузится больше 3 секунд, 53% пользователей просто уходят. Ты теряешь больше половины аудитории, пока чихнуть не успеешь. 2) Каждые лишние 100 мс загрузки снижают конверсию на 7%. Медленный сайт = меньше продаж и регистраций. 3) Сайты с плохими метриками скорости хуже ранжируются в поисковой системе.

🚀 Первая отрисовка контента (FCP): «Ну что, появилось хоть что-то?»

Это время, за которое пользователь перестает смотреть на белый экран и видит первый кусок текста или картинку 1) SSR: 0.5–1.5 секунды. Сервер сразу присылает контент в HTML. На 3G-сети - около 1.2 секунды. Быстро и предсказуемо. 2) CSR: 1.4–3.5+ секунды. Сначала грузится JS, потом он запрашивает данные, и только потом что-то появляется. На 3G это легко растягивается за 3.5 секунды, и ты уже рискуешь потерять терпение пользователя.

Итог раунда: SSR выигрывает нокаутом на первых секундах боя. Это критично для блогов, новостей и интернет-магазинов, где пользователь ждет немедленного результата.

⚡ Время до интерактивности (TTI): «А можно уже кликнуть?»

Момент истины, когда страница перестает быть картинкой и на нее можно реально нажимать. 1) CSR: 2–5 секунд. После начальной загрузки приложение “оживает” целиком. Все кнопки, формы и меню работают мгновенно. Идеально для админок, дашбордов и SPA, где пользователь надолго. 2) SSR: Парадокс! Быстрый старт, но… Контент появился быстро (FCP отличный), но ты не можешь с ним взаимодействовать, пока браузер не “оживит” его с помощью того же JavaScript. Этот процесс называется гидратацией, и он может создать неприятную паузу, когда кнопка есть, а нажать ее нельзя.

Итог раунда: CSR дает более целостный и отзывчивый опыт после загрузки. SSR может подвести в момент, когда пользователь уже решил действовать.

🎯 Кумулятивный сдвиг макета (CLS): «Эй, да не прыгай ты!»

Мера того, насколько элементы страницы дергаются и прыгают во время загрузки. Представь, что ты целишься кликнуть на кнопку, а она вдруг уезжает вниз. 1) SSR: Стабильность (~0.05). Сервер знает точные размеры картинок и блоков и сразу резервирует под них место. Все стоит как вкопанное. 2) CSR: Рулетка (0.1–0.3+). Контент часто подгружается динамически, и браузер не знает, сколько места под него выделить. Текст и картинки могут внезапно сдвигать весь макет.

Итог раунда: SSR - мастер стабильности. CSR требует очень аккуратной верстки и предзагрузки размеров, чтобы не бесить пользователей.

Главный вопрос: когда что выбирать?

1️⃣ Выбирай CSR, если твой проект 1) Интерактивный SPA: Веб-приложение типа Trello, Figma, сложный личный кабинет или админ-панель. 2) Закрытый клуб: Система, требующая логина (SaaS). SEO здесь вообще не нужен. 3) Локальная история: Данные и состояние приложения живут в браузере, навигация между разделами должна быть мгновенной.

2️⃣ Выбирай SSR, если твой проект 1) Ловец трафика: Блог, новостной портал, интернет-магазин, сайт-визитка. Видимость в поисковиках - это твой хлеб. 2) Скоростной забег: Главная цель - показать контент пользователю максимально быстро. 3) Демократичный проект: Аудитория с разными телефонами и скоростями интернета.

Согласен ли ты с данными наблюдениями по CSR и SSR? Жду ответов в комментариях.

CSR vs SSR 🤼 | Сетка — социальная сеть от hh.ru