Joomla hosting

Geert van Soest, webdeveloper bij VisionEars, schreef een interessant blog over het versnellen van je Joomla! site met Varnish Cache. Hij gaat in op de snelheidswinst die behaald is en op de uitdagingen bij de implementatie van Varnish op een Joomla! site. 

Als je website erg langzaam is en je bezoekers een kop koffie kunnen halen bij het laden van iedere pagina, zullen ze snel weg zijn en hun heil elders zoeken. Dit resulteert vanzelfsprekend in veel minder (online) conversies, maar ook in een lagere positie in Google. Kortom, een snelle website is van levensbelang voor de gebruikerservaring van de bezoekers en de portemonnee van de ondernemer. Een absolute must op het gebied van snelheidsoptimalisatie is Varnish Cache.

Onze vaste hostingpartner Byte biedt dit sinds kort aan en wij zijn in de veronderstelling dat wij daarmee de snelste Joomla! websites van Nederland ontwikkelen.

Tot wel 20 keer sneller met Varnish Cache!

Op 1 september 2015 hebben wij voor de eerste keer Varnish Cache geïmplementeerd, bij de website van Phenom-World. Al sinds die website in februari van dit jaar de lucht in ging, hebben we continue de snelheid ervan verbeterd. En hoewel we al een heel eind op weg waren door het gebruik van de ingebouwde cache technieken van Joomla!, hebben we onszelf inmiddels overtroffen! Inmiddels (30 november 2015) hebben we Varnish ook geïmplementeerd bij de website van Mastermate.

De grootste snelheidswinst door de toepassing van Varnish zit in de Time To First Byte (TTFB). Dit wil zeggen; de tijd totdat de eerste resultaten op het scherm van de bezoeker verschijnen.

 

Pagina TTFB zonder Varnish* TTFB met Varnish*
Homepage 348,2 ms 16,5 ms (20X sneller!)
Product overzichtspagina 314,2 ms 17,5 ms (18X sneller!)
Product detailpagina 306,3 ms 16,8 ms (18X sneller!)

* De tests zijn uitgevoerd met de Google Chrome Developer Tools. De resultaten zijn het gemiddelde van vijf tests.

Hoe werkt Varnish Cache?

Varnish zorgt voor een extra laag tussen het device van de bezoeker en de server waarop de website draait. Als je geen gebruik maakt van Varnish, wordt er bij ieder paginabezoek een verzoek gedaan aan de webserver die de berekeningen uitvoert, informatie uit de database haalt en deze content serveert op het scherm van de bezoeker.

Maak je echter gebruik van Varnish, dan wordt de output van iedere bezochte pagina opgeslagen in diens geheugen. Als deze pagina daarna nogmaals bezocht wordt – door een willekeurige bezoeker – dan wordt meteen de output van de opgevraagde pagina weergegeven. De webserver komt er dus niet eens meer aan te pas; geen ellenlange berekeningen en query’s meer!

Zonder Varnish

 

zonder_varnish

Met Varnish

met_varnish

Alleen de toepassing van Varnish verricht echter geen wonderen! Als de opgevraagde HTML binnen een halve seconde op het scherm van de bezoeker verschijnt, maar je gebruik maakt van onnodig grote afbeeldingen en onnodig veel CSS en Javascript bestanden, dan zal het toch een tijdje duren voordat de pagina in zijn geheel geladen is. Blijf afbeeldingen dus optimaliseren, voeg CSS en Javascript nog altijd zoveel mogelijk samen, et cetera.

Ga er dus niet vanuit dat je door de implementatie van Varnish ineens een score van 100/100 haalt bij bijvoorbeeld Pagespeed Insights van Google.

De uitdagingen bij het implementeren van Varnish Cache

Er kleven natuurlijk ook enkele risico’s aan de implementatie van Varnish. Het is absoluut niet zo dat je met één druk op de knop klaar bent. Test je website tijdens de implementatie continue en grondig door. Je zult namelijk altijd te maken hebben met bepaalde onderdelen die niet door Varnish gecached mogen worden. Dit kan een specifieke pagina zijn, maar ook onderdelen van een pagina. In het laatste geval kun je overwegen om de specifieke content met jQuery en een Ajax-call te ‘vervangen’ door de juiste dynamische content.

Vergeet daarnaast niet dat een pagina bij het eerste bezoek nog niet razendsnel is. De pagina moet immers één keer vanuit de webserver ingeladen worden, en pas dan kan hij opgeslagen worden in de Varnish Cache. Als de Varnish Cache van de server geleegd wordt of verlopen is, dan moet dit proces natuurlijk opnieuw in gang gezet worden.

Benodigdheden voor de implementatie van Varnish Cache

Voor een succesvolle implementatie van Varnish zijn drie dingen cruciaal:

  1. De server moet ingericht worden voor het gebruik van Varnish. Informeer bij je hostingpartij of dit het geval is.
  2. Je website moet ingericht worden voor het gebruik van Varnish. Byte heeft een eigen plugin voor de inrichting van Varnish op een Joomla!website, waarmee je ook gemakkelijk bepaalde componenten en pagina’s voor Varnish kan uitsluiten. Ook hebben ze een plugin voor onder andere WordPress en Drupal.
  3. Een partij die de expertise heeft om Varnish juist te implementeren. 😉

Wil jij hulp bij de Varnish implementatie?

Neem dan contact op met VisionEars, zij delen graag hun kennis en gaan online uitdagingen aan met vooruitstrevende oplossingen.

 

*) Bekijk de originele blogpost op de website van VisionEars.

Scan je eigen Magento shop op veiligheidslekken