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.

