De W3 Total Cache instellingen voor de beste snelheid

Gijs Hovens, 8 december 2014

Een vraag die we vaak krijgen bij Savvii is of de plug-in W3 Total Cache nog kan bijdragen aan meer snelheid naast de Managed WordPress-hostingtechnieken die Savvii al inzet. Het even korte als duidelijke antwoord op die vraag is: vaak wel, mits goed ingesteld. Wil je weten wat de beste instellingen voor W3 Total Cache zijn en hoe je het beste uit deze techniek haalt? Lees dan verder, want in dit artikel leggen we het uit.

W3 Total Cache Instellingen

Het nut van caching

Een van de technieken die we bij Savvii inzetten om sites van onze klanten sneller te maken is caching.

Dat doen we in alle pakketten met Varnish proxy caching voor volledige webpagina’s. Daarnaast beschikken onze VPS-pakketten nog over XCache opcode caching en memcached object caching.

We gaan in dit artikel niet alle opties helemaal doorlopen, maar beperken ons tot de belangrijkste instellingen die relevant zijn voor onze klanten.

De belangrijkste leidraad voor onderstaande instellingen is om W3 Total Cache (W3TC) alleen zaken af te laten handelen die Savvii niet kan regelen op een hoger niveau in de stack.

Helaas is W3 Total Cache geen al te gebruiksvriendelijke plug-in, zodat je uiteindelijk voor elk onderdeel op 2 plaatsen aanpassingen moet doen: general settings en de specifieke settingspagina’s.

Het is daarom slim om voordat je begint eerst een aantal tests uit te voeren met webpagetest.org om een zogenaamde nulmeting te hebben.

Na elke setting is het ook verstandig om even te testen wat het effect is op je first-byte-time en de totale laadsnelheid. De effecten van W3 Total Cache verschillen namelijk van site tot site en maken je WordPress-site zeker niet in alle gevallen sneller. Meer hierover lees je in ons artikel over het meten van websitesnelheid.

Het cachen van pagina’s

Door gebruik te maken van pagina-caching, wordt de kant-en-klare HTML van je pagina opgeslagen en vervolgens getoond aan jouw bezoekers. Dit betekent dat veel php-functies en database-queries niet meer uitgevoerd hoeven te worden.

Pagina-cache kan normaal gesproken uitgeschakeld blijven, met name omdat Varnish al hetzelfde doet, maar dan sneller. Het is vooral belangrijk om pagina-caching te deactiveren op pagina’s die wat betreft hun gebruikersrol thuishoren in de categorieën ‘Administrator’, ‘Editor’, ‘Author’, ‘Contributor’ of ‘Subscriber’.

Is https toch actief? Kies dan bij onze shared-pakketten voor ‘Disk: Enhanced’ en voor VPS-pakketten ‘Memcached’. Het adres van memcached is bij de VPS’en van Savvii 127.0.0.1:11211. Hoe je dit verwerkt in jouw wp-config.php lees je hier.

Minify

Minify zorgt ervoor dat tekstbestanden zoals HTML, CSS en JavaScript worden gecomprimeerd en uiteindelijk dus minder opslagruimte in beslag nemen. Dat kan door bijvoorbeeld witregels en comments te verwijderen. De optie combine maakt het juist weer mogelijk om meerdere CSS- en JS-bestanden samen te voegen tot één bestand.

Hierdoor hoeft er uiteindelijk een minder grote hoeveelheid data verstuurd te worden. Bovendien is het ook sneller om één bestand te downloaden dan enkele bestanden met dezelfde totale grootte.

Minify heeft ook een nadeel: het is potentieel gevaarlijk en kan je site stukmaken. Test de uitwerkingen van het gebruik van Minify daarom altijd goed, óók op snelheidsimpact.

Minify niet je html. Dat is ook niet nodig omdat Savvii al GZIP gebruikt om de HTML te verkleinen. De beschikbaarheid van gzip is ook de reden waarom wij voor CSS en JS alleen het gebruik van combine aanraden. Kies in alle gevallen sowieso voor de standaard minifiers. Zet Minify uit als je W3 Total Cache gebruikt in combinatie met CloudFlare.

Database-caching

Database-caching kan erg handig zijn als pagina-caching niet kan of mag werken. Dit geldt bijvoorbeeld voor webwinkels of sites die sessies gebruiken. Kies in onze shared-pakketten voor ‘Disk’ en voor VPS’en voor ‘Memcached’.

Cache liever geen query’s voor ingelogde gebruikers. De optimale lifetime voor cache-objecten verschilt per site: de onze bedraagt 3600 seconden. Hoe meer bezoekers, hoe korter de tijdsinstellingen waarvoor je kunt kiezen.

Zoals eerder gezegd blijft het belangrijk om te testen of de bovenstaande maatregel jouw site in de praktijk ook echt sneller maakt.

Cachen van objecten

Object-caching is weer een net wat andere cachetechniek. In plaats van pagina’s te cachen, zoals afbeeldingen en stylesheets, cachet deze techniek herhaaldelijk terugkerende queryresultaten (verzoeken om data die worden gegenereerd vanuit de database op een site). Net als normale page requests kunnen dergelijke queryresultaten zich snel ophopen en je site behoorlijk vertragen als er meerdere tegelijk worden aangemaakt.

Object-caching slaat de resultaten van de query’s op in een speciale cachinglaag. Zo hoeft de server niet elke keer een nieuw zoekresultaat te genereren. Dit zorgt voor ontlasting, waardoor de server uiteindelijk veel minder tijd en energie kwijt is met het steeds opnieuw zoeken naar dezelfde gegevens.

Om optimaal gebruik te kunnen maken van de techniek, kies je bij de shared-pakketten voor ‘Disk’ en bij de VPS-pakketten voor ‘Memcached’.

Als lifetime-waarde kiezen wij meestal voor het getal van van 3600 seconden. Ook hier geldt: hoe meer bezoekers, hoe korter de tijd mag zijn.

Voor object-cache geldt hetzelfde als voor database-cache: goed blijven testen op snelheid als je het gebruikt!

Browser-caching

Wanneer een gebruiker die een browser-cache aanwendt een pagina opvraagt in een webbrowser, wordt er ook een kopie van deze pagina op de harde schijf opgeslagen. Hetzelfde geldt voor afbeeldingen, geluidsfragmenten en andere bestanden die van internet komen. Wanneer de gebruiker dezelfde pagina opnieuw opvraagt, wordt deze in het algemeen niet opnieuw via internet opgehaald, maar van de harde schijf geplukt.

Browser-caching zorgt er in feite voor dat bepaalde bestandstypes die bij je website horen worden opgeslagen in de browser van je bezoeker. Opgeslagen betekent hier eigenlijk dat de browser onthoudt wanneer hij opnieuw moet checken of de opgeslagen bestanden gewijzigd zijn. Hierdoor controleert en downloadt de browser in de tussentijd de gecachte bestanden niet meer, waardoor uiteindelijk nog maar een klein deel van je website hoeft te worden ingeladen.

Ons advies is om deze optie van W3 Total Cache helemaal niet te gebruiken. Functionaliteiten als GZIP-compressie en het inzetten van cache-control-headers handelt Savvii al af op een hoger niveau in de hostingstack. Het nogmaals activeren van http-compressie (GZIP) kan namelijk vervelende problemen, zoals websitecrashes, veroorzaken.

Caching met user agents en referrer groups

Deze opties kun je gebruiken om de caching voor bepaalde en nader gespecificeerde groepen bezoekers aan te passen. Denk bijvoorbeeld aan plug-ins die speciaal zijn ontworpen om jouw website te optimaliseren voor mobiele sitebezoekers.

Denk je dat dit nodig is? Neem dan contact met ons op voor een deskundig advies op maat.

Caching en een CDN

Het content delivery network (CDN) van Savvii maakt je website sneller door via proxyservers de afstand te verkleinen tussen de bezoeker en de locatie van de server waarop jouw website draait. Maak je gebruik van het Savvii-CDN? Dan kun je de W3TC-CDN gewoon op disabled laten staan.

Ben je tevreden over je instellingen? Dan is het slim om je configuratie ook te exporteren. Dat kan gemakkelijk onderaan de pagina met algemene instellingen. Op dezelfde manier kun je bij je andere sites de settings ook weer invoeren. Maar voor elke nieuwe site geldt wel weer: testen is en blijft belangrijk!

Conclusie

Het hangt dus grotendeels van de gekozen instellingen af of W3 Total Cache jouw WordPress-site echt sneller maakt. Het is vooral belangrijk om de plug-in alleen te gebruiken voor zaken die niet op een hoger niveau in de stack kunnen worden afgehandeld.

Heb je interesse in een optimale configuratie afgesteld voor jouw situatie? Neem dan contact met ons op.

Er zijn 10 reacties

Geert

8 december 2014

Mijn ervaring is dat object en db cache nagenoeg geen optimalisatie geven en vaak voor problemen zorgen, en soms voor enorme vertragingen zorgen.

Waarvoor dient dit wél? En klopt het dat dit dus alleen interessant is als pagina chache niet kan worden gebruikt? Of is het gebruik hiervan in combinatie met pagina cache ook nuttig?

Reactie op Geert

Gijs Hovens

8 december 2014

> Hi Geert,

DB en objectcaching zijn inderdaad alleen maar nuttig als pagecaching niet kan worden gebruikt, óf als een pagina nog niet in de pagecache zit maar div. DB queries en objects wel al.

Performance is inderdaad moeilijk te voorspellen, vandaar ons advies vooral veel te testen.

Gr. Gijs

Jorrit

8 januari 2015

Is XCache nog relevant nu PHP 5.5 een eigen OPCode implementatie heeft?

Reactie op Jorrit

Gijs Hovens

8 januari 2015

> Hallo Jorrit,

XCache Opcode caching is inderdaad niet meer nuttig bij gebruik van php 5.5. XCache kan alternatief ook nog voor object caching gebruikt worden.

Gr. Gijs

Kier

8 januari 2015

I definitely got a speed improvement using a caching plugin on my https site, on top of the already very fast speeds from Savvii !

However, I have ditched the W3TC plugin for another. Why - W3TC has too many settings. I wasted hours (and hours!) ticking a box, testing the speed, ticking another box, testing the speed (repeat ...).

I then tested the 'Quick Cache' plugin. Ticked ONE box to set it up, tested site speed. Result - better speed that I had got with all my W3TC tinkering.

Sometimes too many options is not a good thing .

Reactie op Kier

Jan

10 januari 2015

Naar aanleiding van de reactie van Kier heb ik ook quick cache geprobeerd. Van een firsttime byte van 0.483s naar 0.180s gegaan zonder instellingen.

Gijs Hovens

2 februari 2015

Ook QuickCache werkt bij Savvii. Voordeel t.o.v. W3TotalCache is o.a. dat het simpeler in te stellen is.

Andre zwanenburg

24 november 2015

Hallo Gijs

Moet ik varnisch cache aanzetten in w3?

Groet andre

Reactie op Andre zwanenburg

Gijs Hovens

24 november 2015

Hallo André,

Nee, Varnish cache werkt ook zonder w3tc. Flushen van die cache gaat via onze eigen Savvii plugin.

Gr. Gijs

Reageer