Rendering-Strategien im Web

Was ist Server-Side Rendering?

SSR, serverseitiges Rendern

Server-Side Rendering (SSR) bedeutet, dass der Server eine Webseite bei jeder Anfrage als fertiges HTML erzeugt, statt dass erst JavaScript im Browser den Inhalt aufbaut. Der Browser kann den Inhalt dadurch sofort anzeigen, und das mitgelieferte JavaScript macht die Seite danach per Hydration interaktiv.

Wenn die erste Ansicht deiner Anwendung sekundenlang leer bleibt und Suchmaschinen im Quelltext nichts zu lesen finden, führt der Weg zum Rendern auf dem Server.

KI-generiertDieses Bild wurde mit KI erzeugt · Yves Hoppe / KI / cmt
Rendert
Bei jeder Anfrage auf dem Server
Danach
Hydration macht das HTML im Browser interaktiv
Abzuwägen gegen
Static Site Generation und Client-Rendering
Typische Frameworks
Next.js, Nuxt, SvelteKit, Astro

Der Ablauf von der Anfrage bis zum Klick

In einem Framework wie Next.js, Nuxt oder SvelteKit läuft eine SSR-Anfrage in diesen Schritten ab:

  1. Anfrage

    Der Browser ruft eine Adresse auf, etwa die Produktseite eines Shops.

  2. Rendern auf dem Server

    Der Server führt die Komponenten aus, holt die nötigen Daten, zum Beispiel Preis und Lagerbestand, und erzeugt daraus HTML.

  3. Anzeige

    Der Browser zeichnet das HTML sofort, noch bevor das JavaScript-Bündel geladen ist. Die Seite ist sichtbar, reagiert aber noch nicht.

  4. Hydration

    Das JavaScript lädt, dieselbe Anwendung läuft im Browser noch einmal an und hängt Ereignisse an das vorhandene Markup.

  5. Interaktiv

    Ab jetzt reagieren Klicks und Eingaben, und weitere Navigation kann im Browser stattfinden.

Neu ist das Prinzip nicht. PHP, Java Server Pages oder Ruby on Rails haben HTML schon immer auf dem Server erzeugt. Wenn heute von SSR die Rede ist, meint man meist, dass JavaScript-Komponenten aus React, Vue oder Svelte auf dem Server gerendert und im Browser anschließend weiterverwendet werden. Genau dieser zweite Teil, die Hydration, ist das Neue.

Was Hydration bedeutet und warum sie Zeit kostet

Hydration heißt wörtlich Bewässerung: Das trockene HTML vom Server wird im Browser mit Leben gefüllt. Dafür muss das gesamte JavaScript der Seite geladen und ausgeführt werden, und das Framework geht den Komponentenbaum noch einmal durch, um Zustand und Ereignisse mit dem vorhandenen Markup zu verbinden. In React erledigt das hydrateRoot statt des sonst üblichen createRoot.

Zwischen Anzeige und Hydration liegt ein Fenster, in dem die Seite fertig aussieht, aber noch nicht reagiert. Wer in dieser Zeit klickt, sieht nichts passieren. Je größer das Bündel und je schwächer das Gerät, desto länger dauert das. Erzeugen Server und Browser dabei unterschiedliches Markup, spricht man von einem Hydration Mismatch, und das Framework muss Teile der Seite neu aufbauen.

Gegen diese Kosten gibt es mehrere Ansätze. Streaming schickt die Seite in Stücken, sodass wichtige Bereiche früher fertig sind und einzeln hydriert werden. Die Inselarchitektur, etwa in Astro, hydriert nur die wenigen interaktiven Teile und lässt den Rest als reines HTML stehen. React Server Components schicken für Komponenten, die nur Inhalt darstellen, gar keinen JavaScript-Code an den Browser.

SSR, SSG und CSR im Vergleich

Server-Side Rendering ist eine von mehreren Rendering-Strategien. Welche passt, hängt davon ab, wie oft sich der Inhalt ändert und ob er für jeden Besucher anders aussieht.

VarianteHTML entstehtPasst fürPreis
Static Site Generation (SSG)Einmal beim BauenRatgeber, Produktbeschreibungen, DokumentationNeu bauen bei jeder Änderung
Inkrementelle Neuerzeugung (ISR)Beim Bauen, später im Hintergrund erneuertViele Seiten, die sich gelegentlich ändernKurzzeitig veraltete Inhalte möglich
Server-Side Rendering (SSR)Bei jeder AnfragePersonalisierte oder ständig aktuelle Seiten, die indexierbar sein sollenServer arbeitet bei jedem Aufruf
Client-Side Rendering (CSR)Erst im BrowserAnwendungen hinter einer AnmeldungLeere Seite bis das JavaScript läuft

Moderne Frameworks zwingen dich nicht zu einer globalen Entscheidung. In Next.js, Nuxt, SvelteKit oder Astro legst du die Strategie pro Route oder sogar pro Komponente fest: Die Marketingseiten liegen statisch vor, der Warenkorb wird pro Anfrage gerendert, und das Dashboard hinter der Anmeldung läuft komplett im Browser.

KI-generiertDieses Bild wurde mit KI erzeugt · Yves Hoppe / KI / cmt
Nicht verwechseln

Server-Side Rendering und was oft damit gleichgesetzt wird

Server-Side Rendering gegen Static Site Generation

SSG erzeugt HTML einmal beim Bauen, SSR bei jeder Anfrage. Für den Besucher sehen beide gleich aus, der Unterschied liegt darin, wann gerechnet wird und ob die Seite für jeden Besucher anders sein kann.

Server-Side Rendering gegen React Server Components

Server Components laufen ausschließlich auf dem Server und schicken ihren eigenen Code nicht an den Browser. Sie sind ein Baustein, nicht dasselbe wie SSR: Auch eine Server Component kann in einer Seite stecken, die statisch erzeugt wurde.

Server-Side Rendering gegen Prerendering

Der Begriff wird für beides benutzt, gemeint ist meist das Vorabrendern zur Bauzeit. Wenn er in einer Diskussion fällt, lohnt die Rückfrage, ob Bauzeit oder Anfragezeit gemeint ist.

Server-Side Rendering gegen Dynamic Rendering

Dynamic Rendering lieferte Suchmaschinen eine serverseitig gerenderte Fassung und Menschen die Client-Variante. Google bezeichnet das selbst nur als Übergangslösung und empfiehlt stattdessen SSR, statische Generierung oder Hydration für alle Besucher.

KI-generiertDieses Bild wurde mit KI erzeugt · Yves Hoppe / KI / cmt
In der Praxis

Der Server kennt weder Fenster noch Zeitzone des Besuchers

Code, der im Browser selbstverständlich ist, fällt auf dem Server sofort um. Ein Zugriff auf das Fenster-Objekt, auf den lokalen Speicher oder auf die Bildschirmbreite existiert dort nicht, und viele Bibliotheken zeigen das erst beim ersten Rendern. Solche Aufrufe gehören in den Teil, der erst nach dem Einhängen im Browser läuft.

Der zweite Klassiker ist der Unterschied zwischen dem, was der Server geschrieben hat, und dem, was der Browser daraus macht. Eine formatierte Uhrzeit, ein Zufallswert oder eine Anzeige nach Zeitzone fallen auf beiden Seiten verschieden aus, und dann wirft der Browser das gelieferte HTML weg und baut die Seite neu. Damit ist genau der Vorteil verspielt, für den du den Aufwand betrieben hast.

Jeder Aufruf kostet Rechenzeit, anders als bei vorgebauten Seiten. Für Inhalte, die sich selten ändern, lohnt sich deshalb eine Zwischenspeicherung mit einer klaren Regel, wann sie verfällt. Ohne die leistet der Server bei jedem Besuch dieselbe Arbeit ein zweites Mal.

Server-Side Rendering lernen

Wann welche Variante die richtige ist, gehen die Trainings zu React und dem App Router an einem echten Projekt durch.

Was dabei eine Ebene tiefer passiert, vom Event Loop bis zu Node.js, klären die Kurse zu JavaScript im Browser und auf dem Server.

Häufige Fragen

Brauche ich SSR für Suchmaschinen?
Nicht zwingend, aber es ist der sichere Weg. Google führt JavaScript inzwischen aus, das kostet allerdings Zeit und gelingt nicht bei jedem Skript, andere Crawler und viele KI-Dienste lesen oft nur das HTML. Für Seiten, deren Sichtbarkeit zählt, ist serverseitig oder statisch erzeugtes HTML die verlässlichere Grundlage.
Wird meine Seite durch SSR schneller?
Der erste sichtbare Inhalt kommt früher, weil der Browser nicht auf das JavaScript warten muss. Die Bedienbarkeit kann sich sogar verzögern, wenn das Bündel groß ist. Deshalb lohnt der Blick auf zwei Kennzahlen: Largest Contentful Paint für den Moment, in dem der Hauptinhalt steht, und Interaction to Next Paint für die Reaktion auf Eingaben.
Brauche ich für SSR einen eigenen Server?
Du brauchst eine Laufzeitumgebung, die bei jeder Anfrage Code ausführt, etwa einen Node.js-Server, Serverless-Funktionen oder Edge-Funktionen eines Hosting-Anbieters. Eine rein statisch erzeugte Seite kommt dagegen mit einem einfachen Webserver oder einem CDN aus.
Welche Frameworks unterstützen SSR?
Für React sind es vor allem Next.js und React Router (früher Remix), für Vue Nuxt, für Svelte SvelteKit. Angular bringt SSR über das Paket @angular/ssr mit, und Astro rendert standardmäßig statisch, kann aber pro Seite auf Rendern bei der Anfrage umschalten.

Passt thematisch dazu

Ob sich dafür ein komplettes Framework lohnt, entscheiden vier Anforderungen, die für Next.js sprechen.

Wenn die Seite trotz SSR träge wirkt, helfen dir die Ursachen schlechter LCP-, INP- und CLS-Werte weiter, die im Frontend am häufigsten vorkommen.

Persönlich für dich da

Deine Ansprechpartner

Du willst das Thema nicht nur nachschlagen, sondern anwenden können? Wir beraten dich persönlich und kostenlos.

Yves Hoppe

Yves Hoppe

Weiterbildung & Beratung

Ordnet mit dir ein, welcher Kurs zu deinem Vorwissen passt.

Norbert Jansen

Norbert Jansen

Beratung & Inhouse

Plant Inhouse-Trainings, die an euren eigenen Daten und Abläufen ansetzen.

Server-Side Rendering im Kurs statt im Lexikon

Nachschlagen bringt dich bis zum Verstehen. Anwenden lernst du an echten Aufgaben.