Deel 2 van 10

Snelheid van je webshop en omzet: wat elke extra seconde kost

Snelheid van je webshop en omzet: wat elke extra seconde kost

Kort antwoord: snelheid is geen technische metric maar een vermenigvuldiger voor de hele funnel. Ze werkt tegelijk op conversie, posities in zoekmachines en de prijs van een betaalde klik. Het is de enige verbetering die je niet "alleen voor één kanaal" kunt doen: ze werkt overal tegelijk.

Wat Google precies meet

Sinds 2020 zijn er drie metrics die Google verzamelt bij echte gebruikers van je site en niet in het laboratorium. Ze heten Core Web Vitals en de drempels zijn:

MetricWat het in gewone taal betekentDrempel "goed"
LCPWanneer het hoofdblok van de pagina verschijnt: productfoto, koptot 2,5 s
INPHoe snel de pagina op klikken reageerttot 200 ms
CLSHoeveel de inhoud tijdens het laden verspringttot 0,1

Een detail dat regelmatig wordt gemist: het 75e percentiel telt. Het is niet genoeg dat "bij mij op de laptop hij snel opent": drie kwart van de echte bezoeken, inclusief oude Androids op mobiel internet, moet binnen de drempel vallen.

Bij webshops op WordPress faalt meestal INP: de pagina is snel getekend, maar reageert nog een seconde niet op klikken, omdat op de achtergrond scripts van plug-ins, chat, pixels en het winkelmandje nog werken. De gebruiker leest dat niet als "trage pagina" maar als "de pagina is kapot", en komt niet terug.

Wat het in geld kost

De eerlijkste openbare illustratie is de casestudy van Vodafone op web.dev: een A/B-test op twee visueel identieke versies van een pagina liet zien dat een verbetering van de LCP met 31% 8% meer verkoop opleverde. Zonder redesign, zonder nieuwe actie: alleen snelheid.

Reken het om naar je eigen cijfers, net als in het eerste onderwerp: als de shop 40 000 € per maand omzet, is 8% elke maand 3 200 €. Het werk aan snelheid is eenmalig.

Er is nog een tweede effect dat zelden wordt meegerekend: snelheid verandert de advertentiekosten. Een trage landingspagina verlaagt de kwaliteitsscore in advertentiesystemen en verhoogt de prijs van een klik. Je betaalt dubbel: er komen minder mensen aan, en elke aankomst kostte meer.

Waarom juist WooCommerce vertraagt

WooCommerce zelf is niet traag. Traag wordt het door de typische constructie eromheen. Uit mijn audits is de volgorde van de boosdoeners bijna altijd deze:

  1. Thema met een builder. Een multifunctioneel thema met een visuele builder sleept tientallen CSS- en JS-bestanden mee op elke pagina, ook de bestanden die alleen op de homepage nodig zijn. Dit is de meest voorkomende en meest onderschatte oorzaak.
  2. Plug-ins die overal laden. De plug-ins voor slider, formulier, reviews en berekening van levering registreren hun scripts in de hele shop en niet alleen waar ze worden gebruikt.
  3. Geen paginacache. Elke categoriepagina is een volledige PHP-cyclus plus databasequery's. Op shared hosting van 5 €/maand is dat 1,5–3 seconden tot de eerste byte.
  4. Winkelmandfragmenten. WooCommerce roept standaard op elke pagina wc-ajax=get_refreshed_fragments aan om de teller van het winkelmandje te verversen. Op een verder gecachete pagina is dit het enige niet-cachebare verzoek, en het blokkeert de rest.
  5. Foto's op originele grootte. De fotograaf leverde JPEG's van 4 000 px à 3 MB en ze zijn ongewijzigd geüpload. De browser downloadt 3 MB om een afbeelding van 600 px breed te tonen.
  6. Externe scripts. Chat, pixels, kaarten, reviewwidgets. Elk ziet er onschuldig uit, samen vreten ze de INP op.

Wat je repareert in volgorde van rendement

De volgorde is belangrijk: eerst het goedkoopste en meest effectieve:

  1. Foto's: converteren naar WebP/AVIF, de juiste grootte serveren, alles onder de eerste schermhoogte lazy-loaden, maar niet de hoofdfoto van het product (dat bederft de LCP)
  2. Paginacache + object cache: statische caching van categorieën en productpagina's, Redis of Memcached voor databasequery's
  3. Winkelmandfragmenten uitschakelen waar ze niet nodig zijn, of vervangen door een lichte verversing van de teller
  4. Plug-ins doorlichten: ongebruikte verwijderen, het laden van scripts beperken tot pagina's die ze echt nodig hebben
  5. Externe scripts uitstellen: chat en pixels laden na interactie en niet in <head>
  6. Fonts: eigen hosting, font-display: swap, alleen de gebruikte varianten
  7. Hosting: als de TTFB na dit alles nog steeds boven 600 ms ligt, zit het probleem in de hardware en niet in de code

De eerste drie punten geven meestal 70% van het effect en kosten een paar dagen. De technische details van elk ervan staan in de naastliggende gids: Core Web Vitals, afbeeldingen, fonts en scripts en caching.

Insert voor de developer

  • Zet HPOS aan. High-Performance Order Storage verplaatst bestellingen van wp_posts/wp_postmeta naar eigen tabellen. Bij een shop met tienduizenden bestellingen verandert dat zowel het dashboard als elke query naar bestellingen.
  • Meet veldgegevens, geen labgegevens. De labmodus van PageSpeed Insights is handig om te debuggen, maar de beoordeling komt uit de veldgegevens van CrUX. Het Core Web Vitals-rapport in Search Console vertelt de waarheid.
  • Zoek naar lange taken, niet naar het "gewicht van de pagina". INP wordt gedood door concrete handlers: het hertekenen van het winkelmandje, het script van een slider, synchrone analyticscode. Profileer het tabblad Performance in plaats van kilobytes te tellen.
  • Controleer de autoload-opties. SELECT SUM(LENGTH(option_value)) FROM wp_options WHERE autoload='yes': als dat megabytes zijn, sleept elk verzoek die ballast mee. Meestal zijn het resten van verwijderde plug-ins.
  • Verifieer op een mobiel profiel met netwerk- en CPU-throttling. Op je MacBook is het altijd snel.

Wanneer thema-optimalisatie niet meer helpt

Er is een grens waarachter niets meer te verbeteren valt: thema en plug-ins leggen een minimum aan werk op dat niet te verwijderen is zonder de shop kapot te maken. Symptomen dat je hem hebt bereikt:

  • De mobiele LCP blijft hangen op 3–4 seconden, terwijl foto's en cache al gedaan zijn
  • Elke nieuwe plug-in verslechtert de metrics merkbaar
  • Je moet kiezen tussen "snel" en "heeft de benodigde functies"

Op dit punt blijven twee wegen over. De eerste is functionaliteit afslanken: de builder opgeven, templates herschrijven, een deel van de plug-ins verwijderen. De tweede is de site en de backend scheiden: WooCommerce laten voor producten, bestellingen en het dashboard, en de frontend apart op een snelle stack bouwen. Hoe dat werkt en wanneer het loont, beschrijft de pagina WooCommerce en headless, inclusief een eerlijke beschrijving van wanneer het niet loont. Een kant-en-klare oplossing van dit type is NextWoo, een Next.js-site op een bestaande WooCommerce.

Praktische test

  • Ik heb het Core Web Vitals-rapport in Google Search Console geopend en de mobiele adressen bekeken
  • Ik ken LCP, INP en CLS uit veldgegevens en niet alleen uit een labtest
  • Ik heb het gewicht van de hoofdfoto van het product gecontroleerd: onder 150–200 KB
  • Ik heb de TTFB op een categoriepagina gecontroleerd: onder 600 ms
  • Ik heb de winkelmandfragmenten uitgeschakeld of beperkt
  • Ik heb de lijst met plug-ins doorgenomen: elke plug-in is nodig of verwijderd
  • Ik heb uitgerekend wat 8% meer verkoop in mijn geld waard is

Hoe nu verder

Een snelle shop is een voorwaarde en geen reden om te kopen. Daarna komt de bezoeker op de productpagina en beslist hij of hij je genoeg vertrouwt om zijn geld af te geven: een productpagina die verkoopt.

Wil je het aan iemand overdragen: website sneller maken, met een audit, een lijst met werk op prioriteit en een vaste prijs voor de uitvoering.

Wil je dat iemand met een frisse blik naar je webshop kijkt?

Stuur de link naar je webshop en de cijfers waar je niet tevreden over bent. Je krijgt een analyse terug: waar het geld precies weglekt en wat je als eerste moet oplossen — met een vaste prijs voor het werk.

Vraag een webshop-audit aan