U voert een rapport uit, lost iets op, voert een nieuw rapport uit en het nieuwe rapport toont onverwachte wijzigingen. Of u voert twee rapporten direct na elkaar uit zonder iets te wijzigen en ze verschillen toch. Dat is verrassend gebruikelijk en bijna altijd te verklaren door hoe het moderne web werkt en niet door een bug in de analyse. Dit artikel loopt door de meest waarschijnlijke redenen.
1. Cachelagen
Caching is veruit de meest voorkomende reden voor verschillen tussen rapporten. Een typische WordPress-site heeft meerdere cachelagen op elkaar gestapeld:
- Page cache (bijv. WP Rocket, LiteSpeed, W3 Total Cache): bewaart volledig gerenderde HTML en serveert die voor een instelbare levensduur. Verloopt de levensduur, dan triggert de volgende bezoeker een regeneratie die andere advertenties, andere aanbevelingen of een vers gegenereerde combined-asset-bestandsnaam kan bevatten.
- Object cache (Redis, Memcached): cachet resultaten van databasequery's. Minder zichtbaar van buitenaf, maar kan veranderen welke plug-ins of widgets bij een bepaald verzoek vuren.
- CDN edge cache (Cloudflare, BunnyCDN, KeyCDN): het CDN kan een iets oudere of nieuwere versie serveren, afhankelijk van welke edge node het verzoek ontvangt.
- Hostercache (managed WordPress-hosters): Kinsta, WP Engine, SiteGround en anderen draaien hun eigen server-side caches met hun eigen invalidatielogica.
Twee rapporten die enkele minuten na elkaar worden uitgevoerd, kunnen gemakkelijk in verschillende cachetoestanden landen. Dat alleen verklaart al de meeste verschillen.
2. Dynamische content
Veel sites renderen delen van de pagina dynamisch bij elk verzoek. Veelvoorkomende voorbeelden:
- „Recente berichten“- of „Nieuwste producten“-widgets die de nieuwste items ophalen.
- „Misschien bevalt u dit ook“-aanbevelingen.
- Random testimonialroulators.
- Advertentieslots die creatives rouleren.
- Gepersonaliseerde begroetingen op basis van geo-IP of apparaat.
- Live tellers, voorraden, prijzen.
Zelfs zonder cachewijziging kunnen twee verzoeken verschillende HTML opleveren, verschillende woordtellingen, verschillende afbeeldingstellingen en soms verschillende externe bronnen.
3. A/B-tests en feature flags
Draait uw site een A/B-testtool (VWO, Optimizely, Convert) of feature flags (LaunchDarkly, GrowthBook), dan kan elk bezoek aan een andere variant worden toegewezen. Varianten kunnen betekenen:
- Verschillende koppen of afbeeldingen.
- Een andere paginalay-out.
- Verschillende scripts of diensten van derden geladen.
- Verschillende cookies ingesteld.
Vanuit het oogpunt van het rapport heeft dezelfde URL legitiem twee verschillende pagina's geproduceerd.
4. Scripts van derden en tag managers
Tag managers (Google Tag Manager, Tealium, Matomo Tag Manager) bepalen on-the-fly welke tags worden geactiveerd. Voorwaarden kunnen tijdstip, locatie van de bezoeker, toestemmingsstatus en samplingregels omvatten. Een rapport van vandaag en een van morgen kunnen volledig verschillende trackingpixels en analyticsscripts laden, ook al is de website zelf niet veranderd.
5. Cookietoestemming en de toestemmingsbanner
Moderne consent managers serveren vaak een uitgeklede versie van de pagina totdat toestemming is gegeven, en laden dan de volledige set tracking- en personalisatiescripts. InspectWP bezoekt zonder toestemming. Verandert uw consent manager zijn standaardgedrag (default-deny vs. default-accept-in-bepaalde-regio's), dan verandert het rapport mee.
6. Tijdgebonden content
Sommige sites veranderen met de klok mee:
- Promotiebanners die op een specifiek tijdstip live gaan.
- Seizoensgebonden hero-afbeeldingen.
- Voorraad- en prijsupdates.
- Geplande blogposts.
Een rapport om 09:00 en een om 09:05 kunnen op een geplande wijziging gaan zitten.
7. Geografische verschillen
InspectWP crawlt altijd vanuit dezelfde vaste locatie. Vergelijkt u een InspectWP-rapport met wat u in uw eigen browser uit een ander land ziet, dan kunt u legitiem andere content zien (taal, prijzen, beschikbare producten), andere lettertypen (CDN-endpoints), andere externe bronnen (regiospecifieke Maps-providers).
8. Plug-in- en thema-updates
WordPress en veel plug-ins updaten automatisch. Tussen twee rapporten kan een plug-in zijn bijgewerkt, zijn assetbestandsnamen hebben gewijzigd, een functie hebben verwijderd of een nieuwe externe bron hebben toegevoegd. De site lijkt voor een mens gelijk maar produceert een andere fingerprint.
9. Variabiliteit aan de serverzijde
HTTP-versieonderhandeling, keuze van compressie-algoritme (gzip vs. brotli), specifieke HTTP-headers en details van de TLS-handshake kunnen alle variëren afhankelijk van welke server in een load-balanced cluster het verzoek afhandelt. Deze verschillen verschijnen in de secties Headers en Prestaties.
10. Hoe twee rapporten zinvol vergelijken
- Voer beide rapporten kort na elkaar uit als u „as-is“-toestanden wilt vergelijken.
- Wis de caches vóór elk rapport als u de toestand na cache-rebuild wilt vergelijken.
- Schakel A/B-tests tijdelijk uit als u specifiek de basis wilt meten.
- Crawl exact dezelfde URL, inclusief trailing slash en queryparameters.
https://example.comenhttps://example.com/zijn technisch verschillende URL's. - Kijk naar structuur, niet naar ruis. Verschillen in „woordaantal“ van enkele procenten of een enkele rouleerende advertentie zijn meestal niet betekenisvol. Verschillen in plug-in-lijsten, beveiligingsheaders, SEO-tags of critical-status-velden meestal wel.