Als je website langzaam wordt, dan moet je gaan cachen. Een aanname die vaak wordt gedaan. Echter, wat als je al drie cachingplugins hebt geïnstalleerd, samen met vier andere optimalisatieplugins? Wat als je website daardoor alleen maar langzamer lijkt te worden? Het antwoord is simpel, je leest dan dit blog door 🙂
Wellicht heb je de uitdrukking ‘cachen is cashen’ weleens gehoord. Hiermee wordt bedoeld dat met het toevoegen van caching je website sneller wordt, dat op zijn beurt zorgt voor onder andere een hogere conversie. Ook kun soms af met minder rekenkracht, dat voor een besparing kan zorgen. Niet gek dus dat altijd wordt geadviseerd om een cachingplugin te gebruiken bij je WordPress-installatie. Toch kan het gebruiken van caching soms nadelig zijn. In dit blog leg ik uit hoe dat zit.
Redis nu beschikbaar!
Deze geavanceerde cachingtechniek slaat veelgebruikte data op in het snelle RAM. Je website wordt zo vliegensvlug! Lees meer →
Welke soorten caching zijn er?
Er zijn verschillende soorten caching, denk bijvoorbeeld aan:
- Applicatiecaching (zoals WordPress-caching)
- File system caching (hier hebben wij een heel gaaf systeem voor)
- MySQL caching
- PHP opcode caching
Over elke manier van caching is wel een blog te vullen. Ze hebben allemaal één ding gemeen: je wilt caches gebruiken om data die je vaker wilt opvragen én waarbij het veel moeite kost om te verkrijgen in een tussenlaag opslaan. Dit, zodat deze data gemakkelijker toegankelijk is. In dit blog ga ik het alleen hebben over WordPress-caching, maar met een beetje fantasie is een groot deel ook toepasbaar op de andere soorten van caching. Zodoende heb ik een ‘beetje’ fantasie gebruikt voor het volgende voorbeeld.
WhateverCars, een fictief autoverhuurbedrijf
Laat ik proberen een analogie te maken met een fictief autoverhuurbedrijf, WhateverCars genaamd. Het is fictief, omdat er iets speciaals wordt geboden: elke auto, in elke uitvoering, met welke opties dan ook, kun je bij ze huren. Om dit te doen, hebben ze een enorme voorraad auto’s. Deze voorraad is zo groot, dat ze helaas op aarde niet genoeg plek konden vinden om alles te stallen.
Gelukkig is het een fictief autoverhuurbedrijf, dus kunnen ze zonder grote problemen deze voorraad auto’s op de maan stallen. Voor de vluchten gebruiken ze natuurlijk de Falcon 9 van SpaceX. Dit verloopt prima, klanten zijn blij dat ze elke auto kunnen kiezen die ze willen, met alle opties die ze willen. Echt alles is mogelijk.
Voorwaarden om goed te cachen
Zoals ik eerder in het artikel aangaf, hebben de verschillende manieren om te cachen iets waarin ze niet van elkaar verschillen. Laten we even nadenken over wat ze met elkaar gemeen hebben, te beginnen met het sneller toegankelijk maken van zaken die veel moeite kosten om te verkrijgen.
Moeite bij het opvragen
Bij WhateverCars is er toch een puntje van kritiek: zelfs bij de simpele auto’s die je bij de concurrent meteen kunt ophalen, moet je deze bij WhateverCars minimaal een dag van tevoren reserveren in verband met de raketvlucht vanaf de maan.
Om dit probleem op te lossen, heeft WhateverCars besloten om auto’s die zijn teruggebracht eerst een maand op aarde te laten, voordat ze deze terugvliegen naar de maan. WhateverCars heeft nu een ‘cache’ van auto’s die ze kunnen verhuren zonder wachttijd! De cache zelf kost natuurlijk geld, je moet immers ruimte hebben op aarde om de auto’s te parkeren. Dit wordt echter ruimschoots terugverdiend door de grotere aantallen die worden verhuurd worden. Blijkbaar willen toch veel mensen eenzelfde soort auto, als het maar snel kan.
Meerdere keren opvragen
Caching is leuk, maar als je dingen gaat cachen die je daarna nooit meer gaat opvragen, is dat natuurlijk zonde van de inspanning. Dit merken ze bij WhateverCars ook. De parkeerplaats op aarde raakt behoorlijk vol, omdat een groot aantal auto’s maar één keer wordt verhuurd. Uitbreiden van de parkeerplaats kost veel geld en eigenlijk is het al te groot om daar nog snel de juiste auto te vinden. Ook hier vinden de slimme jongens van WhateverCars wat op. Alleen auto’s die vaker verhuurd gaan worden, gaan ze op aarde bewaren. Door hun ervaring weten ze welke auto’s vaker verhuurd zullen gaan worden dus die stallen ze nu in de ‘cache’.
Bij WordPress (ja, we gaan het eindelijk over caching bij WordPress hebben) gelden dezelfde voorwaarden. Je wilt alleen zaken cachen die meerdere keren worden opgevraagd en die zonder cache veel moeite kosten om op te halen. Dit is wat vaak de ‘semi-statische content’ wordt genoemd. Dit is content die dynamisch wordt gegenereerd, maar telkens wel dezelfde uitkomst heeft. In het voorbeeld van WordPress kan dit een blogartikel zijn. Dit ontstaat uit een combinatie van het uitvoeren van PHP-code en de gegevens die staan opgeslagen in de database. Cache je te weinig, dan is je site niet zo snel als hij zou kunnen zijn. Echter, cache je te veel dan geldt dit ook!
De problemen van te veel cachen
We zien het regelmatig gebeuren, onze proactieve monitoring merkt op dat een bepaalde website veel meer I/O (lezen en schrijven) doet dan je zou verwachten. Wat is er aan de hand? We gaan kijken. De website is een WordPress-blog. Wat opvalt, is dat er een map op het pakket aanwezig is met daaronder miljoenen bestanden, een zogeheten ‘cache directory’. Best vreemd voor een blog die net lekker op gang aan het komen is met zeven artikelen. We kijken verder. Er zijn 37 plugins geladen, waarvan drie cachingplugins en vier optimalisatieplugins. Laten we de cachingplugins eens uitschakelen. De site is ineens een stuk sneller. Wat gaat hier mis? Daarvoor gaan we terug naar WhateverCars.
Verkeerd cachen
Stel je voor, WhateverCars heeft zeven verschillende auto’s op de maan. Mensen bestellen deze auto’s, maar allemaal met een sticker met hun eigen naam en geboortedatum erop. De auto’s worden daarna, inclusief deze sticker, in de cache geplaatst. De cache groeit en groeit doordat iedereen een verschillende naam en geboortedatum heeft. Er staan inmiddels drie miljoen auto’s op aarde, allemaal niet verhuurbaar.
Om het nog eens erger te maken, is er geen systeem om de voorraad te beheren. Elke keer als iemand een auto wil huren, moet een medewerker de parkeerplaats op om te bekijken of er toevallig een auto tussenstaat met de juiste sticker waar de naam en geboortedatum op staat. Dit proces duurt inmiddels al bijna een dag. Vervolgens is er niets gevonden en moet de auto alsnog worden ingevlogen. Het was dus veel sneller geweest om de auto meteen vanaf de maan te laten invliegen!
Zo kan het ook zijn met WordPress. Stel, je hebt een plugin die elke pagina iets unieks geeft en je cachet deze pagina pas nadat dit unieke stukje is toegevoegd. Je hebt dan een onbruikbare cache die alleen maar groter wordt en de performance negatief beïnvloedt.
Less is more
Als je enthousiast met je blog bezig bent, is het heel begrijpelijk dat je allerlei plugins gaat uitproberen tot je je blog helemaal naar je smaak hebt aangepast. Het is in zo’n geval echter wel verstandig om plugins die je hebt geprobeerd, maar waar je uiteindelijk niets mee doet, ook weer te verwijderen. Dit gaat ook zeker op voor caching en optimalisatieplugins. Probeer de juiste te vinden en houd het bij die ene plugin. Een goede cachingplugin zorgt trouwens ook dat de cache niet oneindig blijft groeien, maar ruimt pagina’s die verlopen zijn ook weer op.
Caching is goed, maar niet te veel
Concreet gesteld, probeer zoveel plugins uit als je wilt, maar gebruik er uiteindelijk zo weinig mogelijk. Wees niet bang om bij problemen een (tijdelijk) een plugin uit te schakelen. Een aantal punten om op te letten:
- Is jouw website langzamer dan je verwacht? Grote kans dat verschillende mensen je dan een aantal diverse WordPress-plugins aanraden. Een goede caching- of optimalisatieplugin is zeker een aanwinst voor je website, maar probeer het bij één te houden.
- Wordt je website na verloop van tijd langzamer? Probeer dan eens zoveel mogelijk plugins uit te schakelen en/of te verwijderen. Dit komt de snelheid zeker ten goede. Probeer ook je cache regelmatig te legen of je cachingplugin eens uit te schakelen of te verwijderen.
- Wordt je site hier sneller van? Je weet dan dat er iets mis is met je cachingplugin, wellicht in combinatie met een andere plugin die je gebruikt.
- Het uitschakelen van een plugin is in theorie voldoende. Echter, in mijn optiek is het beter om plugins en themes die je niet meer gebruikt te verwijderen. Op die wijze voorkom je dat er beveiligingsrisico’s ontstaan door vergeten, gedateerde plugins op je pakket.
Zit je er ook aan te denken om met WordPress een mooie, snelle website op te zetten? Wacht niet, ga nu aan de slag met je (nieuwe) WordPress-website!
P.S. Blijf op de hoogte en volg ons via Facebook, X, Instagram, e-mail en RSS. Heb je vragen, tips of opmerkingen? Laat het achter als reactie. Vond je het artikel nuttig? Deel het dan met anderen!