Het debat over "server-side vs client-side" is al jaren zo'n onderwerp waar het antwoord oprecht "het hangt ervan af" is, en iedereen heeft daar een hekel aan. Hier is de begrijpelijke versie, zonder verkooppraatjes, inclusief een eerlijke tabel die je naar je CTO kunt sturen.
Wat het eigenlijk echt is
Client-side tracking draait in de browser van de bezoeker. Een klein script wordt uitgevoerd, leest wat er gebeurt (paginaweergave, klik, scroll-diepte) en stuurt die informatie rechtstreeks naar een verzamelpunt. Server-side tracking draait op jouw infrastructuur. De browser stuurt minimale data naar jouw server (of een lichte edge worker), die vervolgens beslist wat er waarnaartoe wordt doorgestuurd.
Geen van beide is van nature meer "privacyvriendelijk" of "nauwkeuriger" dan de andere. Beide kunnen dat zijn, afhankelijk van de configuratie. Wat verschilt is waar het controlepunt ligt — en hoeveel van de waarheid jou bereikt.
De eerlijke afwegingstabel
| Dimensie | Client-side | Server-side |
|---|---|---|
| Installatie-inspanning | Laag — snippet plakken | Hoger — een service en een kleine routing-laag |
| Bestand tegen ad-blockers | Zwak — script wordt bij de bron geblokkeerd | Sterk — first-party endpoint op je eigen domein |
| Dataverlies in moderne browsers | Aanzienlijk (Safari ITP, blockers, tracking-preventie) | Klein — jij bent eigenaar van het oppervlak |
| Snelheid (latency) bij laden | Voegt één third-party verzoek toe | Voegt niets toe als de collector edge-cached is |
| Controle over wat je infra verlaat | Wat het script van de vendor beslist | Wat jij beslist |
| Gemak van debuggen | DevTools netwerk-tab | Server logs — andere vaardigheid, maar completer |
| Kosten bij schaling | Laag, totdat de vendor-tiers oplopen | Kleine edge / function rekening die je echt ziet |
| B2B bedrijfsidentificatie | Werkt, maar is kwetsbaar | Ideale match — server kan IP → bedrijf privé herleiden |
Die laatste rij is degene waar B2B-teams het langst naar zouden moeten kijken. Client-side identificatie is afhankelijk van een script dat een groeiend deel van de bezoekers blokkeert of onschadelijk maakt. Server-side plaatst de identificatie-logica op je eigen infrastructuur, waar het niet stilletjes kan worden uitgeschakeld door een browser-update.
Waar bedrijfsidentificatie in het plaatje past
Bedrijfsidentificatie is een natuurlijke taak voor server-side. De browser hoeft alleen een heel klein verzoek te doen naar een first-party endpoint op je eigen domein. Dat endpoint draait op de edge (meestal <20 ms in Europa), voert de IP-naar-bedrijf herleiding privé uit en stuurt niets terug wat onthult wat er aan de client-kant gebeurde. De gebruikerservaring verandert niet. Het landschap van blockers wordt omzeild. Het dataportaal blijft binnen de grenzen die jij beheert.
Dit is geen trucje. Het is een logisch gevolg van het verplaatsen van de vraag "wie is deze bezoeker" van de client naar een service die jij beheert. Er verandert niets aan het surfgedrag van de bezoeker; er verandert wel iets aan jouw vermogen om het antwoord te zien.
Wat server-side niet is
Server-side tracking is geen manier om toestemming (consent) te omzeilen. Als een verwerkingsactiviteit toestemming vereist, dan blijft dat zo, ongeacht waar de code draait. Wat server-side wel verandert is de hoeveelheid dataverlies en de controle — niet de juridische basis.
Een opmerking over prestaties
Mensen zijn vaak bang dat "tracking" de pagina traag maakt. In moderne opstellingen is dat een angst uit het verleden. Een goed gebouwde loader is slechts een paar kilobytes, wordt uitgesteld geladen en pas geactiveerd nadat de pagina interactief is; een goed gebouwd server-endpoint reageert in enkele milliseconden vanaf de dichtstbijzijnde edge. Geen van beide zal je Core Web Vitals verslechteren. Wat ze wél verslechtert, is de tag manager met veertien third-party scripts die niemand in drie jaar heeft gecontroleerd. Minder, beter gecontroleerde datapaden zijn bijna altijd sneller.
Wanneer client-side nog steeds wint
Client-side is niet verkeerd. Voor minder kritische analytics waarbij je dataverlies door blockers accepteert (steekproeven van productgebruik, in-app UX-events, simpele landingpage-tests), is client-side sneller te implementeren en goedkoper in gebruik. Het punt is niet dat de ene aanpak universeel beter is; het punt is dat als je werk afhankelijk is van de data — de B2B pipeline is daar een goed voorbeeld van — het server-side pad veerkrachtiger en eerlijker is over wat het doet.
De juiste vraag is niet "welke is de beste?" Het is "voor welke beslissing dient deze data, en hoeveel dataverlies kan die beslissing verdragen?" Voor de vraag "wie heeft ons deze week bezocht" — idealiter geen verlies. Het antwoord op de architectuur volgt daaruit.
Gepubliceerd door
lead.box Team
Meer artikelen
Zie lead.box in actie op je eigen verkeer
Start gratis — geen kaart, geen salesgesprek nodig. Of boek een rondleiding van 20 minuten als je liever hulp krijgt.
