Caching in Magento: waarom Varnish minder doet dan je denkt

Varnish maakt Magento razendsnel, als een pagina uit de cache komt. Maar lang niet elke pagina komt uit de cache. Waar het misgaat en wat je eraan doet.

Varnish is een cache die voor je Magento-shop staat. Komt een bezoeker op een pagina die al eerder is opgebouwd, dan levert Varnish die direct uit het geheugen. Magento hoeft dan niets te doen, en de pagina staat binnen een paar honderd milliseconden bij de bezoeker. Komt de pagina niet uit de cache, dan moet Magento hem opnieuw opbouwen. Dat duurt vaak een veelvoud.

Varnish staat bij de meeste serieuze Magento-hosting standaard aan. Daarom gaan veel shops ervan uit dat caching geregeld is. In de praktijk komt een groter deel van de pagina’s níet uit de cache dan je zou denken.

Varnish is zo snel als het deel van je pagina’s dat er echt uit komt.

Waar de cache wordt overgeslagen

Marketingparameters. Een bezoeker uit een advertentie of nieuwsbrief komt binnen met parameters als utm_source, gclid of fbclid in de URL. Voor Varnish is dat een andere pagina, tenzij die parameters worden genegeerd. Juist je betaalde bezoekers krijgen dan een trage pagina.

Imports die de cache leegmaken. Een voorraad- of prijsimport die elke nacht of elk uur draait, kan grote delen van de cache ongeldig maken. Bij een slecht ingestelde import wordt soms zelfs de hele cache geleegd. De eerste bezoekers daarna krijgen trage pagina’s, tot de cache weer is opgebouwd.

Klantgroepen. Magento bewaart pagina’s per klantgroep. Heb je veel klantgroepen met eigen prijzen, zoals in een B2B-shop, dan heeft elke groep zijn eigen versie in de cache. Hoe meer groepen, hoe kleiner de kans dat een pagina al klaarstaat.

Blokken die niet cachebaar zijn. Eén blok dat als niet cachebaar is gemarkeerd, bijvoorbeeld in een extensie, maakt de hele pagina niet cachebaar. Dat is een klassieke fout die een shop ongemerkt veel trager maakt.

Wat Varnish niet oplost

Varnish versnelt alleen hoe snel de server antwoordt. Wat er daarna in de browser gebeurt, merkt Varnish niet. Een zware frontend, te veel scripts of een afbeelding die te laat laadt, blijven gewoon traag. Ook de winkelwagen en de checkout komen nooit uit de cache, en moeten dus op eigen kracht snel zijn.

Zo zie je hoe goed de cache werkt

Kijk naar de serverresponstijd (TTFB) bij echte bezoekers. Bij een goed werkende cache zie je twee groepen: veel snelle antwoorden uit de cache, en een kleiner deel trage antwoorden van Magento zelf. Is die tweede groep groot, of zitten er veel bezoekers uit advertenties in, dan valt er winst te halen. Op de server kun je daarnaast het percentage pagina’s bijhouden dat uit de cache komt.

Wat je hieruit meeneemt

  1. Laat Varnish marketingparameters negeren, zodat bezoekers uit advertenties ook een snelle pagina krijgen.
  2. Controleer wat je imports met de cache doen, en ververs alleen wat echt veranderd is.
  3. Meet de serverresponstijd bij echte bezoekers, en kijk welk deel niet uit de cache komt.

Benieuwd hoe je shop er technisch voor staat?

Laat een scan doen, vraag ons om advies of plan een vrijblijvende kennismaking.