SSR, SSG, ISR en CSR: een renderstrategie kiezen
Door Ruben Bijker · Gepubliceerd · 6 min lezen
Een renderstrategie bepaalt waar en wanneer HTML wordt gemaakt: tijdens de build, bij elk verzoek, op de achtergrond volgens een schema, of in de browser. Kiezen per pagina in plaats van per project geeft het beste resultaat.
De vier strategieën
| Strategie | HTML ontstaat | Goed voor | Afweging | | --- | --- | --- | --- | | SSG (statische generatie) | Tijdens de build | Marketingpagina's, docs, blogs | Content wijzigt pas na een nieuwe build | | ISR (incrementele regeneratie) | Tijdens de build, op de achtergrond ververst | Catalogi, artikelen die af en toe wijzigen | Kort venster met verouderde content | | SSR (server-side rendering) | Bij elk verzoek | Gepersonaliseerde of continu wijzigende pagina's | Serverwerk per verzoek, trager dan cache | | CSR (client-side rendering) | In de browser | Dashboards, editors, app-achtige schermen | Leeg begin, zwakker voor zoekmachines en trage apparaten |
Zo beslis je per pagina
- Is de content voor iedereen gelijk? Dan kan het gecachet worden. Kies SSG of ISR.
- Hoe vaak verandert het? Minuten of uren passen bij ISR met een revalidatietijd. Seconden, of per gebruiker, passen bij SSR of client-fetching.
- Moet het vindbaar zijn in zoekmachines? Dan hoort de content in de eerste HTML.
- Zit het achter een login? Dan telt zoeken niet; interactiviteit en actuele data wel.
Streaming en gedeeltelijke rendering
Moderne frameworks kunnen de statische schil van een pagina direct sturen en de dynamische delen streamen zodra ze klaar zijn. Dat geeft de snelheid van een gecachete pagina met de actualiteit van een dynamische. Samen met React Server Components of SvelteKit load-functies blijft de hoeveelheid JavaScript in de browser klein.
Veelgemaakte fouten
- Alles op de client renderen omdat dat het makkelijkst begint, en later tegen performance vechten.
- SSR gebruiken voor pagina's die nooit per gebruiker verschillen: verspilde serverkracht en extra latency.
- Cache-invalidatie vergeten. Statische snelheid heeft alleen zin als nieuwe content ook verschijnt; gebruik tags of webhooks vanuit je CMS om te revalideren.
- Meer hydrateren dan nodig. Interactieve eilanden zijn goedkoper dan een volledig interactieve pagina.
Een praktische standaard
Begin statisch, voeg revalidatie toe waar content wijzigt, gebruik server rendering alleen voor gepersonaliseerde responses en bewaar client rendering voor de echt interactieve delen. Meet met echte gebruikersdata voordat je verder optimaliseert.
Zie ook: een stack kiezen en webperformance en Core Web Vitals.
Veelgestelde vragen
- Is server-side rendering altijd beter dan client-side rendering?
- Nee. Server rendering helpt bij de eerste load en indexering van publieke pagina's. Zeer interactieve, ingelogde schermen werken vaak prima, of beter, aan de clientkant.
- Kan ik renderstrategieën mixen in één applicatie?
- Ja. Moderne frameworks zoals Next.js en SvelteKit laten je per route kiezen, soms zelfs per component.
Bijbehorende dienst: Freelance webdeveloper in Amsterdam
Een project in gedachten?
Vertel kort wat je nodig hebt. Je krijgt antwoord van mij, niet van een verkoopteam.
Neem contact opVerder lezen
- Een webstack kiezen: Next.js, Laravel of Svelte?
Een technische vergelijking van Next.js, Laravel, SvelteKit en Webflow: waar elk sterk is, waar het schuurt en welke vragen echt beslissen.
- Webperformance en Core Web Vitals: wat optimaliseer je eerst?
Een praktische gids over LCP, INP en CLS en de technieken die ze verbeteren: afbeeldingen, fonts, JavaScript, caching en meten.