← Blog

SEO

GA4, Plausible, Matomo: spiekbriefje voor NL-bureaus

Het is weer dinsdag. Een klant vraagt waarom GA4 4.200 sessies laat zien en de oude UA-screenshot 11.000. Kies de tool, lever het antwoord voor vrijdag.

Jacob Molkenboer· Oprichter · A Brand New Company· 4 jun 2026· 8 min
Drie messing kaartmeters op een donkergroen leren vloeiblad, naast een gevouwen kaart met chartreuse lint.

Het is de derde dinsdag op rij dat dezelfde Slack-thread opent: "Waarom zegt GA4 4.200 sessies terwijl de oude screenshot uit UA 11.000 zegt?" De klant heeft een blogpost over Plausible gescand, een LinkedIn-rant over Matomo bekeken en wil nu de tool kiezen die wél de waarheid vertelt. Jij bent degene die voor vrijdag een beslissing moet leveren.

Dit is het spiekbriefje dat we open hebben staan in een vastgepind tabblad zodra een Nederlandse klant voor de derde keer van Universal Analytics afstapt. Elke regel is een valkuil die ons minstens één middag heeft gekost. Gebruik 'm vóór de kickoff-call, niet erna.

GA4: de vier cijfers waar je een veeg uit de pan voor krijgt

Thresholding verbergt data stilletjes

Als een rapport een gebruikersdimensie combineert met een klein publiek, laat GA4 de hele rij vallen. De drempel ligt ergens onder de 50 gebruikers per segment. Google noemt dit "data thresholding" en het springt automatisch aan zodra Google Signals aanstaat of er demografie gebruikt wordt. Op een B2B-site met 800 bezoeken per maand kan dit je top drie landingspagina's verbergen in een uitsplitsing per land. Google beschrijft het gedrag, maar de knop om het uit te zetten zit niet op de voor de hand liggende plek. Zet de report identity op "Device-based" voordat de klant het dashboard ziet.

Sessies zijn niet meer wat ze waren

Een GA4-sessie eindigt na 30 minuten inactiviteit, net als in UA. Maar een GA4-sessie stopt niet meer om middernacht, en stopt ook niet meer als de verkeersbron verandert. Een bezoeker die om 23:55 op een Google Ad klikt en weer om 00:05, telt in GA4 als één sessie en in UA als twee. Vertel dit op de kickoff-call. Laat de klant dit niet zelf ontdekken in het eerste maandrapport.

Consent Mode v2 is in Nederland geen optie

Sinds maart 2024 vereist Google Consent Mode v2 op elk EER-account dat GA4 combineert met Ads-remarketing. Zonder die instelling verdampt het remarketing-publiek en valt de conversion modelling stilletjes uit. De implementatiegids is droog maar klopt. Cookiebot, Usercentrics en Complianz ondersteunen het allemaal, maar alleen als de integratie verder loopt dan hun build van april 2024. Oudere Complianz-installaties op WordPress sturen ad_user_data=denied mee, ook nadat de bezoeker geaccepteerd heeft. Controleer de dataLayer met Tag Assistant voordat je victorie kraait.

Sampling op de gratis variant slaat eerder toe dan de docs beweren

GA4 begint explorations te samplen zodra je rond de 10M events in een datumbereik komt, niet 10M sessies. Op een drukke e-commercesite die view_item afvuurt op elke productkaart zit je daar al in week twee. De oplossing is de BigQuery-export, gratis tot 1M events per dag. Zet die op dag één op, niet op dag veertig, nadat de klant al een gesampled rapport naar de directie heeft gestuurd.

Let op

Wil de klant een vergelijking jaar op jaar en migreerde diens site halverwege 2023, dan heb je geen baseline. UA stopte met verzamelen op 1 juli 2023 en Google verwijderde de historische data op 1 juli 2024. Alles van daarvoor bestaat alleen nog in screenshots van de klant of een BigQuery-backup die iemand hopelijk heeft gemaakt.

Plausible: de simpele tool met vijf voetnoten

Het standaardscript blokkeert zichzelf

Een flink deel van de Nederlandse desktopbezoekers draait uBlock Origin of een vergelijkbare lijst, en de standaard plausible.io/js/script.js staat op de meeste daarvan. De oplossing is de proxy: serveer het script vanaf je eigen domein via Cloudflare Workers, Vercel rewrites of Caddy. De proxy-gids van Plausible behandelt alle drie. Sla deze stap over en het lijkt of je verkeer 30 procent kelderde op de dag dat je migreerde.

Goals zijn geen events

Plausible noemt formulierinzendingen "custom events" en doelen op basis van pageviews gewoon "goals". Een Mailchimp-aanmelding is een custom event, een /bedankt-pageview is een goal, en de conversie wordt voor elk anders berekend. Nieuwe gebruikers tuigen eerst een custom event op en vragen zich vervolgens af waarom de conversiekolom leeg is. Tuig de goal eerst op, het event daarna.

Outbound links hebben het extension-script nodig

Het basisscript trackt geen outbound links. Daarvoor heb je script.outbound-links.js nodig of expliciet het data-domain-attribuut met outbound-links aan. We hebben Plausible twee keer bij klanten uitgerold waar de affiliate-revenue-pagina drie weken stilletjes niets meer registreerde, omdat niemand het script-tag had omgezet.

Geen historische import vanuit UA

Plausible importeert geen GA4- of UA-data. Punt. Wil de klant "de cijfers van vorig jaar in het nieuwe dashboard", dan is het antwoord nee. Bouw een statische vergelijkingspagina uit de UA-export-CSV, zet 'm op een verborgen URL en link 'm vanuit het notitiepaneel in het dashboard.

Matomo: uitgebreid, betaald en makkelijk verkeerd ingesteld

De "cookieless" modus fingerprintet nog steeds standaard

De config_id in Matomo is een hash van IP plus user agent plus browser-plugins. Zelfs zonder cookies telt dat als een unieke identifier onder AVG artikel 4(1). De Autoriteit Persoonsgegevens heeft over Matomo zelf weinig gezegd, maar dezelfde redenering die GA4 in 2022 in de problemen bracht, gaat hier op. Zet [Tracker] config_id_cache_timeout = 0 en enable_fingerprinting_across_websites = 0 in config.ini.php, of regel het via de Privacy Manager.

Cloud en On-Premise zijn niet hetzelfde product

Matomo Cloud rekent per hit, draait op matomo.cloud en heeft heatmaps en session recordings als betaalde add-ons. On-Premise is gratis, draait op je eigen server, en dezelfde add-ons kosten tussen de €199 en €499 per jaar als losse plugins via de Matomo Marketplace. Offreer de juiste. We hebben ooit een klant een On-Premise-offerte gestuurd en moesten ze halverwege het project alsnog overzetten, omdat hun inkoopafdeling weigerde PII zelf te hosten.

Geo-IP vraagt om een betaalde database

De gratis GeoLite2-database van MaxMind vereist een signup en een cron job om 'm bij te werken. Zonder die cron valt Matomo terug op een grovere PHP-lookup die land-data verkeerd toewijst bij IPv6-bezoekers. De helft van het IPv6-bereik van een Nederlandse ISP wordt zo aan Duitsland toegeschreven. Zet die cron op dag één.

Rauwe logs groeien oneindig

Standaard houdt Matomo rauwe bezoekerslogs voor altijd vast. De opslag groeit lineair. Op een site met 200k pageviews per maand is dat ongeveer 4 tot 6 GB MySQL per jaar. Zet de logretentie op 90 dagen tenzij legal expliciet anders zegt, en segmenteer je dashboards op de geaggregeerde tabellen.

De beslisboom in drie vragen

Stel de klant vóór de kickoff drie vragen. De antwoorden kiezen de tool voor je.

  1. Draait er nog Google Ads of YouTube Ads? Zo ja, dan heb je GA4 nodig. De Ads-naar-Analytics-koppeling werkt alleen met GA4. Plausible en Matomo kunnen die rol niet invullen.
  2. Wil je session recordings, heatmaps of A/B-testen in dezelfde tool? Zo ja, dan Matomo. De plugins bestaan en integreren netjes. GA4 heeft hier niets natives voor, Plausible heeft helemaal niets.
  3. Is de enige afnemer een marketingmanager die één getal per week wil? Zo ja, dan Plausible. Setup is twintig minuten, het dashboard past op één pagina en er hoeft geen cookiebanner besproken te worden, want er zijn geen cookies.

Alles daarbuiten is een hybride. We draaien Plausible en GA4 op veel klantsites naast elkaar: Plausible voor de wekelijkse Slack-screenshot, GA4 voor ad-attributie. De gedupliceerde JS is zo'n 4KB. Het gedupliceerde mentale model is het deel dat je geld kost.

De audit van vijf minuten voor je begint

Open de huidige GTM-container van de klant en draai daarna deze vijf checks tegen de live site. Komt er ergens niets terug, dan klopt je migratie-inschatting met minstens een week niet.

# Run these against the live site before you quote
curl -s https://CLIENT.com | grep -Eo 'gtag\(.config.,.G-[A-Z0-9]+' | sort -u
curl -s https://CLIENT.com | grep -Eo 'plausible|matomo|piwik'
curl -s https://CLIENT.com/robots.txt | grep -i 'analytics\|matomo\|plausible'
curl -sI https://CLIENT.com | grep -i 'content-security-policy'
curl -s https://CLIENT.com | grep -Eo 'data-domain="[^"]+"'

De Content-Security-Policy-regel is degene die de meeste bureaus vergeten. Een strikte CSP zonder script-src-entry voor de nieuwe analytics-host betekent dat het nieuwe tag stilletjes faalt en de oude nog een week blijft rapporteren. De klant tekent het rapport af, de migratie heet afgerond, en drie weken later staan de cijfers van de ene op de andere dag op nul.

Wat we klanten op de call vertellen

De eerlijke versie: er bestaat geen analytics-tool die je dezelfde cijfers geeft als UA. Het datamodel veranderde, het consentregime veranderde en de browsers veranderden. Wie een 1:1-migratie belooft, liegt of heeft er nog geen gedaan. Kies de tool die past bij de beslissingen van de komende drie jaar, niet bij de rapporten van de afgelopen drie.

Toen we vorig kwartaal de analytics opnieuw opbouwden voor een Rotterdamse SaaS-klant, was het ding waar we tegenaan liepen een CSP-header die we niet zelf controleerden: Cloudflare Pages injecteerde er één op elke response. We hebben dat opgelost met een Worker die de headers herschreef, en daarna hun procesautomatisering zo ingericht dat elke analytics-deploy automatisch in een Notion-tabel wordt gelogd, zodat de volgende engineer niet hoeft te gokken. Saai, maar het heeft sindsdien twee regressies opgevangen.

Het kleinste wat je vandaag kunt doen: pak de vijf curl-commando's hierboven en draai ze tegen je drie grootste klantsites. Komt er voor één van die sites niets terug op de analytics-tag, dan was hun laatste maandrapport al verkeerd.

Kern

Er bestaat geen 1:1-migratie vanaf UA. Kies de tool die past bij de beslissingen van de komende drie jaar, niet bij de rapporten van de afgelopen drie.

FAQ

Kun je Plausible en GA4 op dezelfde site draaien?

Ja. Het gecombineerde scriptgewicht is rond de 4KB. We draaien beide op de meeste klantsites: Plausible voor de wekelijkse Slack-screenshot, GA4 voor ad-attributie en remarketing.

Mag GA4 in 2026 nog steeds in Nederland?

Ja, mits met Consent Mode v2, IP-anonimisering en een ondertekende DPA met Google. De Autoriteit Persoonsgegevens heeft het niet verboden. Een cookiebanner die standaard op geweigerd staat is verplicht.

Voldoet Matomo Cloud direct aan de AVG?

Dichter bij dan GA4, maar de standaard fingerprint-gebaseerde config_id kan nog steeds als unieke identifier tellen. Zet 'm uit in de Privacy Manager voordat je live gaat.

Kunnen we historische UA-data alsnog in GA4 importeren?

Nee. Google heeft historische UA-data op 1 juli 2024 verwijderd. Je enige baseline is wat vóór die datum naar BigQuery is geëxporteerd, of PDF-screenshots die klanten zelf hebben bewaard.

Waarom leek ons Plausible-verkeer op dag één 30 procent lager dan GA4?

Het standaardscript op plausible.io staat op de meeste adblock-lijsten. Proxy het script via je eigen domein met Cloudflare Workers of Vercel rewrites, en het gat sluit zich.

seomigrationstrategyoperationsintegrationstooling

Iets bouwen?

Start een project