Meet eerst, gok nooit
Voordat u iets aanpast, meet u waar de traagheid zit. Een gevoel van "het voelt traag" is geen diagnose, en zonder meting optimaliseert u vaak het verkeerde onderdeel.
Splits de meting in twee lagen: de server (hoe snel levert Magento de HTML) en de browser (hoe snel wordt de pagina bruikbaar voor de bezoeker). Google Core Web Vitals — LCP (laadsnelheid), CLS (visuele stabiliteit) en INP (reactiesnelheid) — meten die tweede laag en wegen mee in uw ranking.
- Server-tijd: Time To First Byte per pagina-type (home, categorie, product, checkout)
- Browser: LCP, CLS en INP via veldmetingen, niet alleen een labtest
- Meet ingelogd én uitgelogd — de full-page cache gedraagt zich anders voor ingelogde bezoekers dan voor anonieme
Hosting en cache-configuratie
De meest voorkomende oorzaak is niet uw code maar uw fundament. Magento 2 is zwaar en draait slecht op gedeelde hosting of een te krappe VPS; het vraagt om voldoende CPU, geheugen en snelle NVMe-opslag.
Minstens zo belangrijk is dat de caches correct staan. Varnish als full-page cache, Redis voor sessies en objecten, en een goed werkende OPcache maken het verschil tussen honderden milliseconden en enkele seconden. In de praktijk zien we vaak dat Varnish niet actief is, of dat de shop in developer-mode draait op productie — dan wordt bij elk verzoek opnieuw gecompileerd.
- Draait de shop in production-mode, niet developer-mode?
- Is de full-page cache (Varnish) daadwerkelijk actief en geconfigureerd?
- Staan Redis en OPcache aan en zijn ze niet vol- of misgeconfigureerd?
Zwaar thema en te veel JavaScript
Een klassiek Luma-thema laadt veel CSS en JavaScript, waaronder RequireJS en jQuery, die de browser blokkeren voordat de pagina bruikbaar is. Elke extra slider, pop-up en trackingpixel verhoogt de INP en verslechtert de gebruikerservaring op mobiel.
Een lichtgewicht frontend zoals Hyvä vervangt die stack door minimale JavaScript en Tailwind CSS, wat de Core Web Vitals aanzienlijk verbetert. Migreren is een investering, maar het lost een oorzaak op in plaats van een symptoom.
Ongeoptimaliseerde afbeeldingen
Productfoto's zijn vaak het grootste onderdeel van een pagina en daarmee de directe oorzaak van een trage LCP. Afbeeldingen die op volledige resolutie worden geladen terwijl ze klein worden getoond, verspillen bandbreedte en tijd.
Serveer moderne formaten zoals WebP of AVIF, schaal afbeeldingen naar de werkelijke weergavegrootte, en gebruik lazy loading voor alles onder de vouw. Reserveer expliciet ruimte voor afbeeldingen om layout-shift (CLS) te voorkomen.
Trage of slecht gebouwde modules
Elke third-party module voegt code toe die bij elk verzoek meedraait. Een enkele slecht geschreven extensie — met ongecachte database-queries, layout-manipulaties of externe API-calls in het kritieke pad — kan een verder gezonde shop op de knieën krijgen.
Meet per module met profiling welke plugins en observers tijd kosten. Verwijder wat u niet gebruikt, en beoordeel bij elke nieuwe extensie eerst de kwaliteit voordat u die op productie zet. Minder modules is bijna altijd sneller.
Onderhouden database en indexen
Een Magento-database groeit onder de motorkap: logtabellen, verlopen quotes, sessies en URL-rewrites lopen jarenlang vol als niemand opruimt. Grote, opgeblazen tabellen maken elke query langzamer.
Zorg dat indexers op "update on schedule" staan in plaats van bij elke opslag, houd de log-cleaning-cron actief, en ruim historische data periodiek op. Een goed werkende OpenSearch/Elasticsearch is bovendien essentieel voor snelle categorie- en zoekpagina's.