STARTDEV

SSR, CSR i SSG – Jak Działa Nowoczesne Renderowanie Stron?

Frontend
SSR, CSR i SSG – Jak Działa Nowoczesne Renderowanie Stron?

Znasz już HTML, CSS i trochę JavaScriptu. Może nawet zacząłeś pracę z Reactem i słyszałeś o Next.js. Wszystko idzie dobrze — aż trafiasz na skróty: CSR, SSR, SSG, renderowanie po stronie serwera, hydracja, SEO.

Brzmi to technicznie i onieśmielająco. A przecież chcesz tylko wiedzieć: jak najlepiej zbudować nowoczesną, wydajną i dostępną stronę internetową.

Ten artykuł to spokojne i rzeczowe wprowadzenie do tematu renderowania — bez żargonu, ale z konkretem.


Czym Właściwie Jest Renderowanie?

W najprostszych słowach: renderowanie to proces przekształcenia kodu strony w to, co widzisz w przeglądarce. Chodzi o to, kiedy i gdzie tworzona jest zawartość widoczna dla użytkownika.

Trzy główne podejścia:

  • CSR (Client-Side Rendering) — treść generowana po stronie przeglądarki.
  • SSR (Server-Side Rendering) — treść generowana po stronie serwera.
  • SSG (Static Site Generation) — treść generowana raz, podczas budowania aplikacji, a potem serwowana jako statyczne pliki HTML.

SSR — Serwer Przygotowuje Pełną Stronę

W podejściu SSR serwer generuje gotowy dokument HTML i przesyła go do przeglądarki. Użytkownik niemal natychmiast widzi pełną stronę z zawartością.

Zalety SSR:

  • Szybszy "time to content" — użytkownik szybciej widzi treść.
  • Lepsze SEO — wyszukiwarki indeksują pełną stronę.
  • Działa bez JavaScriptu — np. na starszych urządzeniach lub przy jego wyłączeniu.

Wady SSR:

  • Większe obciążenie serwera — każda strona renderowana osobno.
  • Hydracja potrzebna do interaktywności — dodatkowy czas ładowania JS.

Typowe zastosowania: blogi, strony informacyjne, strony produktowe.


CSR — Treść Ładowana w Przeglądarce

W CSR przeglądarka otrzymuje początkowo "szkielet" strony z minimalnym HTML i plikami JavaScript. Dopiero po załadowaniu i wykonaniu JS generowana jest dynamiczna treść.

Zalety CSR:

  • Lepsza responsywność po załadowaniu — strona działa jak aplikacja.
  • Mniejsze obciążenie serwera — serwuje tylko statyczne pliki.
  • Świetne wrażenia w aplikacjach SPA.

Wady CSR:

  • Początkowo pusta strona — użytkownik widzi np. "spinner".
  • Problemy z SEO — Google może nie zaindeksować treści.
  • Większe wymagania po stronie klienta.

Typowe zastosowania: panele administracyjne, dashboardy, aplikacje SPA.


SSG — Generowanie Statyczne

SSG (Static Site Generation) to technika, w której strony są generowane raz — na etapie budowania aplikacji — i zapisywane jako statyczne pliki HTML. Są one potem szybko serwowane z CDN, co daje niesamowitą szybkość działania.

Zalety SSG:

  • Błyskawiczne ładowanie — strony są dostępne natychmiast.
  • Brak obciążenia serwera — serwowane są tylko pliki HTML.
  • Świetne SEO i bezpieczeństwo — nie ma backendu, który można zaatakować.

Wady SSG:

  • Brak dynamicznej zawartości w czasie rzeczywistym — zmiany wymagają przebudowania strony.
  • Nie nadaje się do treści często aktualizowanych — np. koszyków zakupowych.

Typowe zastosowania: blogi, dokumentacje, strony firmowe.


Praktyczne Porównanie: Blog o Podróżach

Załóżmy, że tworzysz blog podróżniczy.

  • W SSR użytkownik wchodzi na stronę z artykułem o Barcelonie i natychmiast widzi nagłówki, zdjęcia i opisy. Cała treść została wygenerowana na serwerze i przesłana jako gotowy HTML. Działa to dobrze nawet przy słabym internecie.

  • W CSR użytkownik widzi początkowo jedynie nagłówek i pasek nawigacji. Przeglądarka pobiera JS, uruchamia go, a dopiero potem ładowana jest treść artykułu. Użytkownik może widzieć przez kilka sekund komunikat typu "ładowanie treści...".

  • W SSG cała treść artykułu o Barcelonie została wygenerowana wcześniej i jest gotowa do natychmiastowego wyświetlenia z CDN. Użytkownik dostaje stronę szybciej niż w SSR, a serwer nie musi nic przeliczać w czasie rzeczywistym.

Taki kontrast pokazuje, jak kluczowy jest wybór odpowiedniego podejścia do renderowania.


Czym Jest Hydracja?

Hydracja (z ang. hydration) to proces, w którym statyczna strona HTML — wygenerowana wcześniej (np. przez SSR lub SSG) — „ożywa” po załadowaniu JavaScriptu w przeglądarce. Dzięki temu elementy strony stają się interaktywne: działają formularze, przyciski, menu rozwijane, itd.

Bez hydracji strona może wyglądać poprawnie, ale nie będzie reagować na działania użytkownika.

Jak to działa?

  1. Serwer lub build system (w przypadku SSG) generuje stronę HTML z treścią.
  2. Użytkownik widzi stronę od razu, ale nie działa jeszcze interaktywność.
  3. Przeglądarka pobiera i wykonuje JavaScript.
  4. JavaScript „hydratuje” stronę, podłączając logikę Reacta (lub innego frameworka) do istniejącego HTML.

Hydracja jest więc kluczowa w SSR i SSG — pozwala połączyć szybki czas ładowania treści (jak w stronach statycznych) z dynamiczną interaktywnością znaną z aplikacji SPA.


Hybrydowe Podejście: Najlepsze z Obu Światów

Coraz częściej łączy się zalety SSR, CSR i SSG w jednej aplikacji. Frameworki takie jak Next.js (dla Reacta) czy Nuxt.js (dla Vue) umożliwiają mieszane podejście.

Przykłady:

  • SSR dla kluczowych stron: landing page, strona główna, produkt.
  • CSR dla paneli użytkownika, koszyków zakupowych, konfiguratorów.
  • SSG dla stron statycznych: blogi, dokumentacje, FAQ.

To podejście nosi nazwę hybrydowego renderowania.

W praktyce oznacza to łączenie różnych strategii renderowania w jednej aplikacji — w zależności od potrzeb konkretnej strony lub komponentu.

Można też spotkać się z terminami takimi jak:

ISR (Incremental Static Regeneration) — pozwala na aktualizowanie statycznych stron bez konieczności pełnego przebudowania całej aplikacji. Umożliwia dynamiczne odświeżanie wybranych treści w tle.

Server Components — komponenty Reacta renderowane wyłącznie po stronie serwera. Pozwalają zmniejszyć wagę przesyłanego JavaScriptu i poprawić wydajność.

Taki miks technologii pozwala zoptymalizować czas ładowania strony, poprawić SEO i zredukować koszty utrzymania infrastruktury.


Architektura Klient-Serwer

W klasycznym modelu działania aplikacji webowej mamy do czynienia z komunikacją typu klient-serwer:

  • Klient (czyli przeglądarka użytkownika) wysyła żądanie do serwera.
  • Serwer odpowiada — w zależności od podejścia — pełną stroną HTML (SSR), szkieletową stroną z JavaScriptem (CSR), lub gotowym, wcześniej wygenerowanym plikiem HTML (SSG).
  • Przeglądarka odbiera tę odpowiedź i renderuje treść dla użytkownika.

Różnica między SSR, CSR a SSG polega więc na tym, gdzie i kiedy generowana jest treść strony:

  • SSR: treść generowana dynamicznie na serwerze w momencie żądania.
  • CSR: treść generowana dynamicznie w przeglądarce po stronie klienta.
  • SSG: treść generowana statycznie na etapie budowania aplikacji i potem serwowana jako gotowy HTML.

To podejście klient-serwer stanowi fundament działania nowoczesnych aplikacji internetowych.


Dostępność (a11y) To Nie Opcja

Bez względu na technikę renderowania, zadbaj o:

  • Poprawne znaczniki semantyczne (<nav>, <main>, <article>).
  • Strukturalne nagłówki H1-H6.
  • Opisy alternatywne (alt) dla obrazków.
  • Dobry kontrast i czytelność tekstu.
  • Obsługę klawiatury i czytników ekranu.

Dostępność to nie luksus, ale fundament. Dla wielu użytkowników to jedyny sposób na korzystanie z Twojej strony.


Porównanie SSR vs CSR vs SSG

Cecha SSR CSR SSG
Miejsce renderowania Serwer Przeglądarka Podczas builda
Czas do pierwszej treści Krótki Dłuższy Natychmiastowy
Interaktywność Po hydracji Po załadowaniu JS Po hydracji
SEO Doskonałe Może wymagać dodatkowych zabiegów Doskonałe
Obciążenie serwera Większe Mniejsze Zerowe
Złożoność implementacji Średnia Niska (ale gorsze UX) Średnia

Podsumowanie

Zrozumienie SSR, CSR i SSG pozwala dobrać najlepszą strategię do projektu, poprawić wydajność, SEO i wrażenia użytkownika. To fundament nowoczesnego frontendu.

Dołącz do newslettera

Bądź na bieżąco z artykułami