Durf je het aan, je site angstaanjagend snel te maken?
Vorige week heb ik over de plugin Cache Enabler geschreven en je verteld, wat volgens mij het grootste nadeel van deze verder overigens geweldige plugin is.
Het nadeel van deze plugin is namelijk, dat er geen ‘preloading’ plaatsvindt. Of met andere woorden, ondanks het feit, dat deze plugin de snelste caching plugin is, die ik heb kunnen vinden, zal een pagina pas snel worden, wanneer hij al een keer bezocht is. De eerste bezoeker na het legen van de cache krijgt nog steeds een ‘langzame’ pagina.
Niet lang na het posten van het artikel kreeg ik een email van Harry M. (op zijn verzoek post ik niet zijn volledige naam), omdat hij me in wilde huren om de site van zijn werkgever nog sneller te maken. Hij had Cache Enabler geïnstalleerd. Maar de site van zijn werkgever beschikt over een kennisbank met meer dan 5000 pagina’s informatie. En hoewel de site druk bezocht wordt, is het aantal hits per pagina toch redelijk beperkt.
Logisch met zoveel informatie!
Harry was wat verder gaan zoeken en kwam de plugin ‘Warm Cache’ tegen. Hij had het idee, dat deze plugin een geweldige plugin is om het probleem van de ‘preloading’ op te lossen, maar begreep eigenlijk weinig van de instructies bij de plugin.
De vraag was of ik het voor zijn werkgever –op basis van een WordXPression Strippenkaart– kon configureren op de juiste manier.
Ik heb hem een tegenbod gedaan. Ik wilde het gratis doen, op de voorwaarde, dat ik mijn ervaringen met deze plugin mocht gebruiken voor een nieuwe blogpost.
Het verbaasde mij niet dat Harry zijn werkgever direct akkoord ging.
Het idee achter Warm Cache
De Warm Cache plugin is even simpel als geniaal.
Waarschijnlijk heb je op de één of andere manier een XML sitemap aangemaakt, om je site beter vindbaar te maken voor Google.
Een XML Sitemap (niet te verwarren met een ‘sitemap pagina’, iets wat inmiddels hopeloos verouderd is), is een machine-leesbaar bestand, wat zoekmachines vertelt, welke pagina’s op een site geïndexeerd moeten worden.
Wanneer je de één of andere SEO plugin gebruikt, zal deze plugin hoogstwaarschijnlijk zo’n sitemap voor je aanmaken. Als dat niet het geval is, dan kan je altijd nog de Google XML Sitemaps plugin van Arne Brachhold gebruiken.
De ‘Warm Cache’ plugin zal die XML Sitemap periodiek uitlezen en iedere URL in die sitemap bezoeken. En door het bezoeken van die URL zal automatisch een gecachete versie van die pagina gemaakt worden.
Het probleem
Wanneer je minimaal éénmaal per vijf minuten een bezoeker hebt, zoals op de WordXPression site, dan kan zo’n plugin simpelweg gebruik maken van WP Cron, de ingebouwde ’task manager’ van WordPress.
Maar WP Cron wordt alleen actief, wanneer de site bezocht wordt. En daarmee eigenlijk net iets te laat. En bovendien zal een taak als het ‘opnieuw genereren van alle pagina’s’ zeer zeker de snelheid van de site enorm vertragen.
Vandaar dat de maker van de plugin ervoor gekozen heeft niet WP Cron te gebruiken maar de ‘cron’ task manager van de linux versie waaronder jouw website draait.
Hoe je dit precies moet configureren verschilt van hoster tot hoster. In dit artikel geef ik je een voorbeeld hoe je het doet in de CPanel beheersomgeving. CPanel is één van de meest gebruikte beheersomgevingen voor websites. Maar ik ken minstens een tiental Nederlandse hostingpartijen, die gebruik maakt van andere omgevingen.
En om het nog eens ingewikkelder te maken, kan een hoster met betrekking CPanel kiezen uit verschillende ‘skins’. Dus zelfs als je CPanel gebruikt, kan jouw omgeving er anders uitzien.
Mocht je er niet uitkomen, richt je dan tot je hoster.
Warm Cache configureren
Het configureren van Warm Cache zelf is kinderlijk eenvoudig. Je hoeft maar twee gegevens in te geven.
Het eerste is de locatie van de XML Sitemap. Dit is een gegeven, wat je -als het goed is- doorkrijgt van de plugin die je gebruikt voor XML sitemap. In onderstaande afbeelding zie je hoe het er bijvoorbeeld voor een Yoast sitemap uit kan zien .
Een tweede setting die je in moet geven is of je wil of niet een ‘Flush’ parameter wilt zetten. Dit is nodig, wanneer je gebruik maakt van een zogenaamde ‘load balancer’. De beste manier om hier achter te komen, is om het op ‘Nee’ te zetten. En wanneer de plugin niet lijkt te werken, dit alsnog op ‘Ja’ in te stellen.
Wanneer je deze gegevens hebt ingegeven krijg je een URL niet aangeroepen moet gaan worden. In bovenstaande afbeelding is een deel van deze URL ‘gemaskeerd’, uit veiligheidsoverwegingen. Je moet gewoon de URL die de plugin jou geeft kopiëren en vervolgens naar je beheerspanel gaan.
CPanel
Wanneer je in CPanel zit, zie je als het goed is ondermeer iets als onderstaande:
Meestal staat de CRON manager onder ‘Web Tools’ met een icoontje met als ondertitel ‘Scheduled Tasks’, ‘Cron Manager’ of ‘Cron Jobs’.
Daar klik je dus op.
Cron Manager
Wanneer je in de Cron Manager zit, dan zie je als je er nooit eerder wat gedaan hebt, een scherm waar je bepaalde waarden in moet vullen. Het ziet er waarschijnlijk ongeveer als onderstaand uit :
Het belangrijkst is hier de regel in het ‘command’ veld.
Deze moet er uitzien als
wget -q -O [jouw url uit Warm Cache] > /dev/null 2>&1
Wat je hier eigenlijk zegt is ‘haal deze URL op, alsof je een browser bent, maar stuur alle output naar de digitale prullenbak.
Daarnaast moet je instellen hoe vaak dit commando uitgevoerd moet worden.
In het voorbeeld geef ik ‘iedere 30 minuten’ aan. Maar dat is best vaak. Afhankelijk van hoe vaak je je website bijwerkt, kan je dit getal aanpassen.
In het geval van Harry zijn werkgever, besloten we dit iedere 2 uur te doen.
Voor de WordXPression site heb ik dit tijdelijk op 30 minuten ingesteld, maar afhankelijk van de ervaringen die ik meet, zal dit waarschijnlijk in de komende weken worden aangepast.
De voordelen
De voordelen zijn natuurlijk evident. Omdat de bezoeker van de site minder vaak tegen een URL aan zal lopen die niet ‘pre-cached’ is, zal de algemene snelheidservaring met de website drastisch toenemen.
Natuurlijk is twee dagen te weinig tijd om goede uitspraken te doen. Maar in de dagen voor het weekend, was de gemiddelde snelheid waarmee een pagina werd geladen 1.78 seconden. 92% van alle pagina’s zat onder de 0.6 seconden, 8% in de range 5-9 seconden. En die 8 % haalde dit percentage natuurlijk flink omhoog.
Afgelopen weekend was de gemiddelde snelheid voor het laden van een pagina 0.68 seconden. 98.7% zat in de range van 0.13 tot 0.72 seconden.
1.3% van alle bezoekers zaten in de range 5.2-7.4 seconden.
Dus van 8% die de site nog steeds als ‘langzaam’ ervaarde, ging ik terug naar 1.3%.
In de komende periode ga is ‘spelen’ met hoe vaak ik de cache opnieuw moet gaan genereren, om voor jou een ideale bezoekerservaring te creëren.
En nu voor jou!
Hoe ervaren jouw bezoekers de snelheid van je website? Bedenk dat de gemiddelde bezoeker ‘weg’ is, wanneer hij op een nieuwe website komt en meer dan 4 seconden moet wachten.
Graag kijk ik samen met jou naar de snelheid van je website, hoe we die kunnen optimaliseren, en ook hoe we door het verbeteren van je sitenavigatie je sitebezoek omhoog kunnen brengen.
Dit kan allemaal via de WordXPression Strippenkaart. Interesse? Neem contact op!