Eine moderne Webapp kann sich sehr unterschiedlich „anfühlen“: Manche Seiten erscheinen sofort, andere bauen sich sichtbar nach und nach auf. Hinter diesem Unterschied steckt oft die Frage, wie HTML entsteht: auf dem Server, im Browser oder schon beim Build (Erstellen der Anwendung). Wer das Grundprinzip versteht, trifft bessere Entscheidungen für Performance, SEO (Suchmaschinenoptimierung) und Komplexität.
In der Praxis begegnen dabei drei Grundmodelle: SSR (Server Side Rendering), SSG (Static Site Generation) und CSR (Client Side Rendering). Zusätzlich gibt es Mischformen wie „Hydration“ (interaktiv machen nach dem ersten HTML) und Streaming (HTML stückweise senden). Dieser Artikel ordnet die Begriffe ein, zeigt Vor- und Nachteile und hilft bei der Auswahl – ohne Framework-Mythen.
Rendering-Modelle: Wer baut das HTML und wann?
CSR: Rendering im Browser
Bei CSR liefert der Server häufig nur ein schlankes Grundgerüst (z. B. ein index.html mit einem leeren Container). Der Browser lädt dann JavaScript, ruft Daten über APIs ab und erzeugt daraus die sichtbare Seite.
Alltagsbild: Der Server liefert nur die Küche, gekocht wird beim Gast. Das ist flexibel, aber der erste Eindruck kann langsamer sein, weil erst JavaScript geladen und ausgeführt werden muss.
SSR: Rendering auf dem Server pro Request
Bei SSR erzeugt der Server bei jedem Seitenaufruf HTML (oft inklusive der ersten Daten). Der Browser bekommt sofort „fertiges“ HTML und kann es anzeigen, während JavaScript später die Interaktivität ergänzt (Hydration).
Alltagsbild: Das Gericht kommt fertig an den Tisch; nachwürzen (Interaktivität) passiert später. SSR ist besonders hilfreich, wenn die erste Darstellung schnell und zuverlässig sichtbar sein soll.
SSG: HTML wird beim Build erzeugt
SSG erstellt HTML-Dateien schon beim Build. Beim späteren Aufruf liefert ein CDN (Content Delivery Network) nur statische Dateien aus. Inhalte ändern sich dann entweder durch einen neuen Build oder über dynamische Teile (z. B. clientseitig nachgeladene Daten).
Alltagsbild: Das Gericht wird vorkochen und steht bereit. Das ist meist sehr schnell, aber nicht ideal für Inhalte, die sich bei jedem Request unterscheiden müssen (z. B. personalisierte Dashboards).
Warum die Entscheidung wichtig ist: SEO, Ladezeit, Kosten
SEO und „erste Sichtbarkeit“
Suchmaschinen können JavaScript zwar oft verarbeiten, aber eine Seite mit sofort vorhandenem HTML ist in der Regel einfacher zu erfassen und weniger fehleranfällig. Für öffentlich sichtbare Inhalte (Marketingseiten, Dokus, Blog, Shop-Kategorien) ist SSR oder SSG häufig die entspanntere Wahl.
Wichtig: SEO hängt nicht nur am Rendering. Saubere URLs, sinnvolle Titles, interne Verlinkung, Ladezeit und stabile Inhalte zählen ebenfalls.
Performance: Was Nutzer wirklich spüren
Bei CSR ist ein häufiger Stolperstein die Phase, in der zwar schon etwas geladen wird, aber noch nichts „fertig“ wirkt. Das liegt an JavaScript-Bundles, API-Calls und der Ausführung im Browser. SSR/SSG liefern dagegen oft schneller sichtbares HTML.
Allerdings kann SSR auf dem Server teurer werden: Jede Anfrage bedeutet Arbeit (Rendern, Daten laden, Templates ausführen). SSG verschiebt diese Kosten in den Build und liefert zur Laufzeit extrem effizient aus.
Betrieb und Komplexität
CSR wirkt auf den ersten Blick simpel (ein Frontend, APIs dahinter), aber Fehlerbehandlung, Ladezustände, SEO-Anforderungen und „leere“ Inhalte beim Initial Load erhöhen schnell die Komplexität.
SSR benötigt zusätzlich eine Server-Umgebung oder Serverless-Funktionen, plus Caching. SSG ist im Betrieb oft am einfachsten, kann aber bei häufigen Änderungen oder großen Seitenmengen Builds aufwendiger machen.
Typische Einsatzfälle: Welche Strategie passt wann?
Öffentliche Inhalte: Blog, Doku, Landingpages
Wenn Inhalte öffentlich und nicht personalisiert sind, ist SSG oft ideal: schnelle Auslieferung, wenig Serverlast, robust. Bei sehr dynamischen Inhalten (z. B. News-Ticker) kann SSR sinnvoll sein, um aktuell zu bleiben, ohne ständig neu zu bauen.
Apps hinter Login: Dashboards, Admin-Oberflächen
Hier dominiert häufig CSR, weil Suchmaschinen nicht relevant sind und Inhalte stark vom Benutzer abhängen. Trotzdem kann SSR für Teile sinnvoll sein, etwa für schnellere Navigation oder bessere „erste Sichtbarkeit“ bei langsamen Geräten.
Praxis-Tipp: Oft ist ein hybrider Ansatz gut: öffentlich sichtbare Bereiche mit SSR/SSG, eingeloggte Bereiche eher CSR.
E-Commerce: Kategorien, Produktseiten, Warenkorb
Produkt- und Kategorieseiten profitieren häufig von SSR/SSG, weil SEO und Performance wichtig sind. Warenkorb und Checkout sind dagegen oft stärker interaktiv und können clientseitig laufen – solange der Übergang sauber gelöst ist (z. B. konsistente Daten, klare Fehlertexte).
Entscheidungshilfe in 2 Minuten: Das passt am ehesten
Die folgende Orientierung ist bewusst pragmatisch. Mischformen sind normal, aber ein Startpunkt spart Zeit.
- SSG: Inhalte ändern sich selten oder planbar (z. B. Blog, Doku, Marketing). Ziel: maximale Geschwindigkeit und einfacher Betrieb.
- SSR: Inhalte müssen beim Aufruf aktuell sein (z. B. Preise, Verfügbarkeit, News) oder SEO ist wichtig und CSR wäre riskant.
- CSR: Stark interaktive Oberfläche hinter Login, Fokus auf App-Feeling, Daten kommen ohnehin aus APIs.
So gelingt der Einstieg ohne späteren Umbau
Praktische Schritte für ein solides Setup
- Ziele klären: Soll die Seite primär gefunden werden (SEO) oder ist es eine interne App?
- Datenquellen prüfen: Kommen Inhalte aus einem CMS/DB und wie oft ändern sie sich?
- Routing planen: Welche Seiten sind öffentlich (SSR/SSG) und welche sind App-Bereiche (CSR)?
- Caching früh mitdenken: SSR braucht fast immer Caching-Strategien, sonst wird es unnötig teuer.
- Fehlerbilder definieren: Was sieht ein Nutzer bei langsamen APIs, Timeouts oder fehlenden Daten?
Häufige Stolperfallen aus der Praxis
Hydration-Probleme: HTML passt nicht zum JavaScript
Bei SSR/SSG wird HTML zuerst ausgeliefert und anschließend „übernimmt“ JavaScript. Wenn der Browser beim Start andere Daten oder eine andere Darstellung hat als der Server beim Rendern, entstehen Warnungen oder sichtbare Sprünge. Ursache sind oft Zeitabhängigkeiten (Datum/Zeit), zufällige IDs oder unterschiedliche Datenstände.
Lösungsidee: Daten für die erste Ansicht konsistent vom Server mitgeben und im Client wiederverwenden, statt sofort neu zu laden.
Doppelte Datenabrufe: einmal Server, einmal Client
Ein Klassiker: Der Server rendert mit Daten, der Client lädt beim Mount (Start der Komponente) noch einmal dieselben Daten. Das ist nicht nur unnötig, sondern kann auch zu Flackern führen.
Abhilfe: Daten-„Cache“ zwischen Server und Client nutzen (je nach Framework), oder eine klare Regel: initiale Daten nur serverseitig, clientseitig erst bei Interaktionen nachladen.
SSR ohne Cache: teuer und langsam unter Last
SSR wirkt im kleinen Test schnell, kann aber bei vielen Requests zum Flaschenhals werden. Wenn jede Anfrage die gleichen Inhalte rendert, ist das verschenkte Arbeit.
Empfehlung: Seitenebenen-Caching (z. B. Reverse Proxy) oder ein CDN davor. Für stark dynamische Inhalte: gezielt Teilbereiche dynamisch halten, den Rest cachen.
Kompakter Vergleich: Stärken und Grenzen auf einen Blick
| Modell | Stärken | Typische Grenzen |
|---|---|---|
| CSR | App-Feeling, klare Trennung Frontend/API, gut für personalisierte UIs | Erste Sichtbarkeit kann leiden, mehr Aufwand für SEO und Ladezustände |
| SSR | Schneller erster Inhalt, oft robuster für SEO, gute Basis für hybride Apps | Mehr Betriebskomplexität, Serverkosten, Caching wichtig |
| SSG | Sehr schnelle Auslieferung, einfacher Betrieb, ideal für Content-Seiten | Build-Prozess bei häufigen Updates, Personalisation nur eingeschränkt |
Wie das mit APIs, Auth und Fehlern zusammenspielt
Authentifizierung: öffentlich vs. eingeloggter Bereich
Wenn SSR Seiten rendert, die Nutzerdaten enthalten, müssen Sessions/Cookies sauber behandelt werden. Das betrifft besonders SameSite, CSRF-Schutz (Angriffe über fremde Webseiten) und die Frage, ob Tokens im Browser oder serverseitig genutzt werden.
Passend dazu helfen diese Vertiefungen: HTTP Cookies verstehen – Session, SameSite und Sicherheit und CSRF Schutz im Web – Formulare und APIs richtig absichern.
API-Antworten und Fehler: Stabilität ist Teil der UX
Egal ob CSR oder SSR: Wenn eine API mal langsam ist oder Fehler liefert, braucht die Oberfläche ein klares Verhalten. Das betrifft z. B. sinnvolle Statuscodes, verständliche Fehlermeldungen und sauberes Retry-Verhalten (erneut versuchen).
Als Ergänzung: HTTP Statuscodes verstehen – Fehler sauber behandeln und API-Fehler richtig behandeln – robuste Webanwendungen.

