Server-side rendering is een methode waarbij de server de volledige markup voor een pagina genereert en naar de browser stuurt, in plaats van een minimaal document te verzenden dat vervolgens door JavaScript wordt aangevuld. De browser kan direct na ontvangst van het antwoord relevante inhoud weergeven, zonder te hoeven wachten tot een pakket met gegevens is gedownload, geparseerd, uitgevoerd en opgehaald.
Het pakt specifieke en goed gedocumenteerde zwakheden van puur client-side rendering aan. Content verschijnt aanzienlijk sneller, met name op tragere apparaten en verbindingen waar de uitvoering van JavaScript veel tijd kost. Zoekmachines en andere geautomatiseerde gebruikers ontvangen content direct, in plaats van afhankelijk te zijn van een renderingfase die vertraagd of onvolledig kan zijn. Voorbeelden van content die op sociale media wordt gedeeld, werken zonder speciale aanpassingen. En de gebruikerservaring verslechtert minder snel wanneer JavaScript niet laadt of wordt uitgevoerd, wat vaker voorkomt dan de meeste teams denken.
Hydratatie is de bijbehorende kostenpost die vaak wordt onderschat. Nadat de server-gerenderde markup is weergegeven, moet het client-side framework gebeurtenisafhandelaars koppelen en de interne status herstellen om de pagina interactief te maken. Gedurende deze periode lijkt de pagina klaar voor gebruik, maar reageert deze niet. Dit leidt tot een kenmerkende fout waarbij een bezoeker op iets zichtbaars klikt en er niets gebeurt. Op grote pagina's en trage apparaten kan dit tijdsvenster aanzienlijk zijn.
Er zijn verschillende benaderingen ontwikkeld om die kosten te verlagen. Partiële en selectieve hydratatie zorgen ervoor dat alleen de interactieve delen van een pagina interactief zijn in plaats van de hele pagina. Streaming verzendt de markup stapsgewijs, zodat de content verschijnt voordat de hele pagina is gegenereerd. Island architectures behandelen interactieve componenten als geïsoleerde eenheden binnen verder statische markup. Elk van deze benaderingen vermindert de hoeveelheid werk aan de clientzijde die na de eerste rendering nodig is.
Statische sitegeneratie is het alternatief dat het overwegen waard is voor content die niet per verzoek verandert. Pagina's worden tijdens het bouwen gegenereerd en als bestanden aangeboden, wat sneller is dan renderen per verzoek, goedkoper is om aan te bieden, robuuster is en gemakkelijker lokaal te cachen is. Wanneer content verandert, maar niet per bezoeker, herbouwen incrementele regeneratiestrategieën de betreffende pagina's volgens een schema of op aanvraag, waardoor de meeste voordelen worden behaald zonder een volledige heropbouw.
De operationele implicaties verschillen van statische hosting op manieren die planning vereisen. Renderen per verzoek verbruikt serverbronnen evenredig aan het verkeer, wat schaalbaarheidsaspecten en kosten met zich meebrengt die statische bestanden niet hebben. Caching wordt belangrijk en het cachen van pagina's met gepersonaliseerde content vereist een zorgvuldige scheiding van wat per gebruiker varieert en wat niet. Serverfouten beïnvloeden nu de paginarendering in plaats van alleen het laden van gegevens.
De strategie voor het ophalen van data bepaalt in de praktijk grotendeels het voordeel. Serverrendering is alleen zinvol als de benodigde data snel beschikbaar is, en een serverrendering die wacht op verschillende trage interne services kan zelfs trager zijn dan een clientrendering die direct een shell weergeeft. Wanneer afhankelijkheden traag zijn, behoudt het streamen van de onderdelen die klaar zijn terwijl de rest wordt verwerkt, het voordeel.
De beslissing moet gebaseerd zijn op de inhoud en het publiek, in plaats van op een vastomlijnd raamwerk. Pagina's met veel content die hoog moeten scoren in zoekresultaten en snel moeten laden, zelfs bij slechte internetverbindingen, profiteren hier aanzienlijk van. Zeer interactieve applicaties achter authenticatie, waar zichtbaarheid in zoekresultaten irrelevant is en gebruikers de applicatie al hebben geladen, profiteren veel minder en rechtvaardigen de complexiteit mogelijk niet. Veel producten gebruiken verstandig verschillende benaderingen voor verschillende onderdelen.
Omdat de keuze tegelijkertijd van invloed is op de infrastructuur, de levering en de zoekprestaties, is het een architectonische beslissing in plaats van een voorkeur voor de front-end. In de praktijk wordt dit geëvalueerd binnen webprestaties werken aan de hand van gemeten veldgegevens, geïmplementeerd via productontwikkelingen de implicaties van de zoekopdracht worden beoordeeld met Marketing diensten, aangezien indexeringsgedrag vaak het sterkste argument is voor de verandering.