Cache preloading
Waarom de eerste bezoeker vaak wacht
Cache preload is het vooraf laden van pagina's en bestanden in de cache, zodat de eerste bezoeker meteen een opgeslagen versie krijgt. Het proces heet ook cache warming: je warmt de cache op voordat er echt verkeer komt.
Na het legen van een cache of het verlopen van kopieën is de cache leeg. De eerste bezoeker die een pagina opvraagt, krijgt dan een cache miss en wacht tot de pagina is opgebouwd. Dat betekent dat PHP en de database het werk moeten doen. Bij veel verkeer kan dat tegelijk gebeuren voor veel pagina's. Wat een miss precies is, lees je bij cache hit en cache miss.
Hoe preloading werkt
Een preloader loopt je site langs, meestal via de sitemap of de interne links, en vraagt elke pagina op. Zo ontstaat de kopie in de cache voordat een echte bezoeker komt. Sommige cachingplugins doen dat automatisch na elke wijziging.
Een CDN kan ook bestanden vooraf naar edge-servers brengen, maar dat werkt niet altijd voor dynamische pagina's. Voor die pagina's is preloading alleen zinvol als de cache de inhoud mag bewaren en er geen persoonlijke gegevens in staan. Hoe de paginacache zelf werkt, lees je bij paginacaching.
Wanneer het zinvol is en wanneer niet
Preloading helpt vooral bij pagina's die veel bezoek krijgen en die je na een leegmaak snel weer beschikbaar wilt hebben. Denk aan de homepage, belangrijke categoriepagina's en populaire artikelen. Voor een kleine site met weinig bezoek is het effect beperkt, want de eerste bezoeker merkt de traagheid dan minder.
Let op dat preloading niet te veel serverbelasting oplevert. Duizenden pagina's tegelijk opvragen kan de server even zwaar belasten als een drukke dag. Plan het daarom buiten piekuren of beperk het tot de belangrijkste pagina's. Zie ook wanneer je de cache legt.
Veelgestelde vragen
Is cache preloading hetzelfde als cache legen?
Nee, het is het tegenovergestelde van wat je bij legen doet. Bij legen verwijder je kopieën; bij preloading maak je ze vooraf opnieuw aan. Vaak gebeurt het na elkaar: eerst legen na een wijziging, daarna preloaden zodat bezoekers niet op een lege cache stuiten.
Kan ik met preloading een trage website sneller maken?
Nee, niet op zichzelf. Preloading verkort de wachttijd na een leegmaak, maar lost geen trage code, zware databasequery's of een te krap hostingpakket op. Voor een blijvende verbetering moet je de oorzaak van de vertraging aanpakken, bijvoorbeeld met betere caching of lichtere pagina's.