Was ist Server-Side Rendering?
SSR, serverseitiges Rendern
Server-Side Rendering bezeichnet das Erzeugen der fertigen HTML-Seite auf dem Server bei jeder Anfrage, sodass der Browser sofort Inhalt anzeigen kann und das JavaScript diesen erst danach interaktiv macht.
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
- Kostet
- Rechenzeit und Antwortzeit pro Aufruf
Der Ablauf von der Anfrage bis zum Klick
Bei einer Anfrage führt der Server den Komponentenbaum aus, holt die nötigen Daten und schickt fertiges HTML. Der Browser zeichnet es, noch bevor das JavaScript-Bündel geladen ist. Danach läuft dieselbe Anwendung im Browser noch einmal an und übernimmt das vorhandene Markup, das ist die Hydration: Erst ab diesem Moment reagieren Klicks und Eingaben.
Zwischen Anzeige und Hydration liegt ein Fenster, in dem die Seite fertig aussieht, aber noch nicht auf Eingaben reagiert. Wer in der ersten Sekunde klickt, sieht nichts passieren. Streaming hilft dagegen, weil der Server die Seite stückweise sendet und wichtige Teile früher aktiv werden.
SSR, SSG und CSR nebeneinander
Bei der statischen Generierung entsteht das HTML einmal beim Bauen und liegt danach fertig im Ausliefernetz. Das ist die schnellste und billigste Variante, taugt aber nur, wenn der Inhalt für alle gleich ist und sich nicht ständig ändert. Für einen Ratgebertext oder eine Produktbeschreibung ist es die richtige Wahl.
SSR lohnt sich, wenn die Seite pro Anfrage anders aussieht, etwa weil sie den angemeldeten Zugang, Preise oder Verfügbarkeiten zeigt, und trotzdem indexierbar sein und schnell erscheinen soll. Der Preis ist ein Server, der bei jeder Anfrage arbeitet, mit allem, was dazugehört: Antwortzeiten, Skalierung, Caching.
Reines Client-Rendering liefert ein leeres Grundgerüst und baut alles im Browser auf. Für Anwendungen hinter einer Anmeldung, bei denen weder Suchmaschinen noch der erste Eindruck zählen, ist das völlig in Ordnung. In einem Next.js-Projekt mischst du die drei Varianten pro Route, statt dich global zu entscheiden.
Die typischen Stolpersteine
Der häufigste Fehler ist Code, der nur im Browser funktioniert und trotzdem auf dem Server ausgeführt wird. Ein Zugriff auf window oder localStorage im Rumpf einer Komponente bricht dort ab. Solche Zugriffe gehören in einen Effekt oder in eine Komponente, die ausdrücklich nur im Browser läuft.
Der zweite ist ein Hydration Mismatch: Server und Browser erzeugen unterschiedliches Markup, meist wegen Zufallswerten, Datumsformaten oder Zeitzonen. React verwirft dann das Ergebnis und baut neu auf, was den Geschwindigkeitsgewinn wieder auffrisst. Formatiere Datumsangaben deshalb mit fest gesetzter Zeitzone und Sprache.
Und schließlich das Datenholen: Wenn jede Komponente einzeln lädt, wird die Antwortzeit des Servers zur Summe aller Aufrufe. Deshalb lässt du Abfragen parallel laufen und cachst auf der Serverseite, wofür der App Router eigene Mechanismen mitbringt.
KI-generiertDieses Bild wurde mit KI erzeugt · Yves Hoppe / KI / cmt
Server-Side Rendering und was oft damit gleichgesetzt wird
SSG erzeugt HTML einmal beim Bauen, SSR bei jeder Anfrage. Dazwischen liegt die inkrementelle Neuerzeugung, bei der eine statische Seite nach einer festgelegten Zeit im Hintergrund erneuert wird.
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.
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.
KI-generiertDieses Bild wurde mit KI erzeugt · Yves Hoppe / KI / cmt
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 .
Kurse, die Server-Side Rendering behandeln
Häufige Fragen
Brauche ich SSR für Suchmaschinen?
Wird meine Seite durch SSR schneller?
Kann ich SSR und statische Seiten mischen?
Deine Ansprechpartner
Du willst das Thema nicht nur nachschlagen, sondern anwenden können? Wir beraten dich persönlich und kostenlos.
Yves Hoppe
Weiterbildung & Beratung
Ordnet mit dir ein, welcher Kurs zu deinem Vorwissen passt.
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.