Nederlands cloud. Menselijke support.

Caching en CDN: je website versnellen

Caching en CDN: je website versnellen

Veertig procent van de bezoekers verlaat een website die langer dan drie seconden laadt. Dat is geen anekdote, dat is een consequentie met directe impact op omzet en bouncepercentage. Caching en een CDN zijn de twee meest effectieve maatregelen om laadtijden drastisch te verkorten.

De techniek achter beide concepten is niet ingewikkeld: je slaat data op zodat je hem niet steeds opnieuw hoeft op te vragen of te berekenen. Maar de details van hoe je dat doet, op welk niveau en voor welk type content, bepalen hoe effectief het is.

Wat is caching?

Caching is het tijdelijk bewaren van data op een snellere of dichterbijgelegen opslagplek, zodat je hem bij het volgende verzoek direct kunt teruggeven zonder de originele bron opnieuw te raadplegen.

Op een webserver betekent dat: databases worden niet opnieuw bevraagd voor data die net al opgevraagd is. PHP-code wordt niet opnieuw uitgevoerd voor pagina's die nauwelijks veranderen. Afbeeldingen worden niet opnieuw verzonden als ze al bij de browser zijn.

Er zijn meerdere caching-lagen, en ze werken complementair. Hoe meer lagen je effectief inzet, hoe minder werk de server hoeft te doen.

De vier lagen van webcaching

Browsercache is de eerste laag en de dichtst bij de bezoeker. Statische bestanden – CSS, JavaScript, afbeeldingen, lettertypen – worden door de browser bewaard na de eerste download. Bij een volgend bezoek worden ze niet opnieuw opgehaald, maar direct geladen vanuit de lokale cache. Je stuurt dit met de Cache-Control- en Expires-headers mee.

De browserscache ontlast je server maar heeft geen invloed op de eerste laadtijd. Wel op terugkerende bezoekers en paginaovergangen binnen dezelfde sessie.

Object cache (Redis of Memcached) slaat databaseresultaten, berekende waarden en API-responses op in geheugen. Voor webshops is dit bijzonder waardevol: de productcatalogus, categoriepagina's, prijsberekeningen en zoekresultaten worden eenmalig opgebouwd en daarna direct uit Redis geserveerd. De database wordt nauwelijks meer bevraagd voor veelgestelde queries.

Redis is sneller dan Memcached voor complexere datastructuren en ondersteunt persistentie. In de meeste moderne webshop-setups is Redis de standaard.

Full-page cache gaat een stap verder: de volledige HTML-output van een pagina wordt gecachet. Als een bezoeker de homepage opvraagt, wordt die niet opgebouwd uit database-queries en PHP-code, maar direct als ferme HTML-string teruggegeven. Varnish is de meestgebruikte tool hiervoor. Het kan tienduizenden requests per seconde afhandelen bij een bescheiden serverconfiguratie.

Het nadeel van full-page caching is dat het niet werkt voor gepersonaliseerde content: winkelwagens, ingelogde gebruikers, specifieke aanbiedingen. Dat vereist een split-aanpak waar de basisstructuur gecachet wordt maar dynamische elementen via JavaScript worden ingeladen (ESI of AJAX).

Opcode cache is specifiek voor PHP. PHP-code wordt bij elke uitvoering opnieuw geïnterpreteerd, tenzij je OPcache inschakelt. OPcache slaat de gecompileerde bytecode op in geheugen, zodat PHP-scripts direct uitvoerbaar zijn. Dit is een kleine maar consistente performance-verbetering die vrijwel geen configuratie vereist. In iedere productie-PHP-omgeving hoort OPcache ingeschakeld te zijn.

Caching-lagen en hun impact

Browsercache
Terugkerende bezoekers
OPcache
PHP executie -20 tot -40%
Redis (object)
DB-queries -80 tot -90%
Varnish (FPC)
Serverbelasting -90%+

Percentages zijn richtgetallen bij correcte configuratie voor statische of licht-dynamische pagina's.

Wat is een CDN?

Een Content Delivery Network is een netwerk van servers verspreid over meerdere locaties wereldwijd. Wanneer een bezoeker een bestand opvraagt, levert het CDN dat bestand vanuit de server die geografisch het dichtst bij hem staat, in plaats van vanuit jouw originele server.

Voor een Nederlandse webshop met bezoekers in Nederland maakt een CDN misschien geen dramatisch verschil voor laadtijden van de HTML zelf, maar het maakt wel een groot verschil voor statische assets: afbeeldingen, CSS, JavaScript en video's. Die worden van de originele server gedownload naar CDN-edges (PoPs, Points of Presence) en daar gecachet. Vervolgens serveert het CDN ze razendsnel bij elke volgende aanvraag.

Naast snelheid heeft een CDN ook een beschikbaarheidsvoordeel: het vangt een deel van het piekverkeer op voordat het bij jouw server aankomt. Bij een plotselinge traffic-spike vanuit social media of een nieuwsbericht is dat een significante buffer.

Wat cache je op een CDN?

De vuistregel: alles wat voor iedere bezoeker hetzelfde is, kan gecachet worden op een CDN.

  • Afbeeldingen (JPG, PNG, WebP, SVG)
  • CSS- en JavaScript-bestanden
  • Lettertypen (WOFF2)
  • Video's en andere mediabestanden
  • Statische HTML-pagina's (bij SSG-setups)
  • PDF's en downloadbare documenten

Wat je niet cache op een CDN: pagina's met sessie-afhankelijke content, checkout-flows, ingelogde gebruikerspagina's en API-calls die persoonsgebonden data teruggeven. Daarvoor stel je cache-regels in op basis van cookies of headers, zodat die verzoeken altijd doorgaan naar de originele server.

Cache-invalidatie: het moeilijkste onderdeel

Caching heeft één fundamenteel probleem: als de originele content verandert, weet de cache dat niet automatisch. Een klant ziet een verouderde productprijs, een CDN-edge serveert een afbeelding die al vervangen is, Redis geeft een categoriepagina terug die niet meer klopt.

Cache-invalidatie – het gecontroleerd leegmaken van de cache als content verandert – is om die reden een van de ingewikkelder aspecten van cachingstrategieën. De gangbare benaderingen:

  • TTL (Time To Live): gecachte items vervallen na een vastgestelde tijd. Simpel, maar je hebt geen directe controle. Een TTL van 5 minuten betekent maximaal 5 minuten verouderde data.
  • Tag-based invalidation: content wordt voorzien van tags. Als je een product aanpast, gooi je alle gecachte items met de tag "product-123" weg. Varnish en veel moderne CDN's ondersteunen dit.
  • Event-driven invalidation: bij iedere CMS-opslag of productwijziging wordt automatisch een invalidatieverzoek gestuurd naar de cache. Dit vereist wat meer configuratie maar geeft realtime accuracy.

Hoe een CDN werkt

Zonder CDN
Bezoeker (Amsterdam)
verzoek
Server (datacenter)
response
Bezoeker ontvangt pagina
Volledige round-trip, server draagt alles
Met CDN
Bezoeker (Amsterdam)
verzoek
CDN edge (Amsterdam)
cache hit: direct antwoord
Bezoeker ontvangt pagina
Minimale latency, server ontlast

Populaire CDN-opties

De markt voor CDN-diensten is groot. De meestgebruikte keuzes voor Nederlandse websites:

Cloudflare is de populairste keuze voor kleinere tot middelgrote organisaties. Het gratis abonnement biedt al CDN, DDoS-bescherming en SSL. De betaalde plannen voegen meer configuratiemogelijkheden en analytics toe. Cloudflare werkt als reverse proxy, wat betekent dat al het verkeer via hun netwerk loopt.

BunnyCDN is een Europese aanbieder (Slovenië) met goede dekking en concurrerende prijzen. Voor organisaties die liever binnen Europa blijven is dit een serieuze optie.

Fastly en Akamai zijn de enterprise-opties met geavanceerde configuratiemogelijkheden (Varnish-gebaseerde VCL-configuratie bij Fastly, uitgebreide regelsystemen bij Akamai). Hogere kosten, maar meer controle voor complexe vereisten.

AWS CloudFront is de logische keuze als je al in het AWS-ecosysteem zit. Integreert naadloos met S3, EC2 en andere AWS-diensten.

Core Web Vitals en de praktijk

Google gebruikt Core Web Vitals als rankingsignaal. Drie metrics zijn relevant: Largest Contentful Paint (LCP), Interaction to Next Paint (INP) en Cumulative Layout Shift (CLS). Een CDN verbetert direct de LCP: het grote element dat als eerste zichtbaar is (vaak een hero-afbeelding) wordt sneller geleverd vanuit een nabije edge-locatie.

Redis en full-page caching verbeteren de Time to First Byte (TTFB), de tijd voordat de browser de eerste byte van het antwoord ontvangt. Een snelle TTFB heeft directe invloed op hoe snel een pagina begint te renderen.

Conclusie

Caching en CDN zijn geen luxe-functies. Ze zijn onderdeel van een serieuze webinfrastructuur, ongeacht het platform of de schaal van je website. De investering in Redis, Varnish en een CDN betaalt zich terug in lagere laadtijden, minder serverbelasting en hogere conversie.

Begin simpel: schakel OPcache in als die nog niet actief is, voeg Redis object caching toe, en zet een CDN voor statische assets in. Dat zijn drie maatregelen die je in een middag implementeert en die direct resultaat geven.

Hulp nodig bij het versnellen van je website? Bekijk onze high-traffic oplossingen.

Hulp nodig bij de implementatie?

Onze experts helpen je graag met persoonlijk advies.

Plan een gesprek