In dit bericht stipte ik het al even aan, hoe je de snelheid en de prestaties van je WordPress website kunt verbeteren met een cachingplugin.
Zo’n cachingplugin maakt van je dynamische pagina’s die normaal vanaf de server worden opgehaald en waarvoor de database geraadpleegd moet worden, statische html pagina’s. Die statische pagina’s kunnen veel sneller door de server worden geserveerd. En dat levert enorm veel snelheidswinst op.
De enige voorwaarde is dat je WordPress installatie op een Apache webserver draait en dus een .htaccess bestand heeft. Als je installatie op een Nginx server draait, dan is er ook geen .htaccess bestand en kun je deze plugin niet gebruiken.
Ik gebruik eigenlijk altijd W3 Total cache omdat dat de meest uitgebreide plugin is die er is.
Zelfs met alle instellingen zo uit “de doos” verzorgt het activeren van deze plugin een aanzienlijke snelheids- en performancewinst. En hij maakt niet alleen statische pagina’s van je site, hij doet nog veel meer. Het enige minpunt zou kunnen zijn dat door de overweldigende hoeveelheid opties het instellen van deze plugin nogal ingewikkeld kan lijken.
Hieronder laat ik stap voor stap zien hoe ik de instellingen voor mijn site heb gedaan, in de hoop dat dat jou helpt om het maximale uit je site te halen.
Mocht je er niet uitkomen, je kunt mij hier ook voor inhuren!
Allereerst, meet de snelheid en het prestatielevel van je site voordat je de plugin activeert, zodat je kunt zien hoeveel er is verbeterd. Hier vind je met welke tools je dat zou kunnen doen.
Na activatie verschijnt onderstaand menu in je menu aan de linkerkant, de plugin brengt je naar het dashboard, dat geeft je informatie over diensten die je erbij kunt kopen.
Het echte werk begint bij het volgende menu:
General settings
Zoals je ziet, er zijn nogal wat zaken die ingesteld kunnen worden. En al deze items hebben aan de linkerkant in het menu nog gedetailleerder instellingen…
Per onderdeel:
Algemeen
De enige instelling hier is gelijk nogal een gevaarlijke: “Toggle all caching types on or off (at once)”. Ik houd er persoonlijk niet van om de keuze om alle caching opties tegelijk aan of uit te zetten aan een plugin over te laten, dus ik gebruik deze nooit. Maar als je haast hebt kan het handig zijn. En je kunt van te voren kijken of het je site overhoop haalt of niet, want er zit een preview optie in gelukkig.
Pagina cache
Da’s de belangrijkste, die moet worden geactiveerd. Standaard is dat ook al zo. De uitgebreide instellingen van deze optie in het linkermenu spreken voor zich.
Wanneer pagina caching actief is, zie je ook als eigenaar van de site een opgeslagen versie van de site, dus als je er wijzigingen in maakt zie je die niet direct, pas als je de cache leegt. Je kunt pagina caching deactiveren voor ingelogde gebruikers, dan zie je direct wat je wijzigt.
Punt van aandacht: het komt regelmatig voor dat een contactformulier op een contactpagina na activatie van pagina caching ineens atniet meer werkt. Dat komt omdat de pagina wel wordt opgeslagen in de cache, maar de onderliggende code om het formulier te laten werken niet.
In de geavanceerde instellingen van Pagina cache kun je bij pagina’s die nooit gecached moeten worden de contact pagina toevoegen, dan heb je dat probleem niet meer.
Minify
Ook niet onbelangrijk. Geminificeerde bestanden zijn sneller van de server af te halen dan de normale css, javascript en html bestanden, want veel kleiner. Je site wordt daar dus sneller van.
In deze optie gebruik ik altijd alleen maar de ‘Minify html‘ setting, de javascript en css bestanden minificeer ik zelf (dat geeft de beste resultaten in mijn ervaring).
Minify css kun je veilig activeren, minify javascript wil op sommige hosters en/of in combinatie met sommige thema’s wel eens ongewenste resultaten geven, dus test altijd even de voorkant van je site nadat je deze hebt geactiveerd.
Minify wordt alleen toegepast op het actieve thema, mocht je een childthema gebruiken zul je ook de bestanden van het parent theme moeten minificeren. Dat kan worden ingesteld in de geavanceerde instellingen van de minify optie.
Database cache
Het is mogelijk om ook de database te cachen. Omdat de database van zichzelf al razendsnel is levert deze instelling niet heel veel snelheidswinst op, tenzij je een site hebt waar vaak grote aanvragen via de database lopen. Als die aanvragen worden gecached scheelt dat wel.
Object cache
Deze instelling kan handig zijn, maar wanneer ik hem activeer gaat mijn performance rating bij pingdom omlaag omdat van sommige bestanden geen expiry date meer wordt opgegeven. Dit is dus een instelling die je zal moeten testen.
Browsercache
Ook hier weer, enig experimenteren kan nuttig zijn, want het varieert per hostingprovider. In de instellingen heb ik de volgende drie opties niet actief:
- Set W3 Total Cache header
- Prevent caching of objects after settings change
- Do not process 404 errors for static objects with WordPress
De rest is wel actief. Activatie van deze drie opties leidde tot slechtere performance, vandaar dat ik ze niet gebruik.
User Agent Groups
Met deze instelling kun je realiseren dat bepaalde user agents (browsers van bepaalde apparaten) worden geredirect naar een mobiele skin als je een separate mobiele skin op je site gebruikt. Er wordt dan voor die browser een specifieke cache gecreƫerd. Mijn site is volledig responsief, er is dus geen ander theme om naartoe te redirecten.
Referrer Groups
Referrer groups kunnen zoekmachines zijn, die je dan vervolgens een specifiek thema kunt laten zien door ze daarnaar door te sturen, en er ook een specifieke cache voor te maken, maar je kunt dit ook instellen voor grote sites als Reddit en dergelijke, die ineens een enorme stroom traffic naar je site kunnen sturen. Het kan handig zijn om die naar een specifieke pagina te loodsen, zodat de rest van je site daar geen last van heeft.
CDN
Eigenlijk alleen te gebruiken wanneer je ook echt een CDN (Content Delivery Network) gebruikt. Zoniet, dan kun je alle instellingen laten zoals ze zijn.
Monitoring
Is alleen van toepassing wanneer je een New Relic account hebt. Heb je dat niet, hoef je niets te veranderen aan deze instelling, die is niet actief zonder New Relic account.
Extensions
Deze worden gebruikt om compatibiliteit met bijvoorbeeld de seo plugin van Yoast in te stellen, en compatibiliteit met andere plugins.