Hoe ComplyNL meet, en wat een uitkomst wél en niet zegt
Deze pagina is voor wie het serieus wil weten: brancheverenigingen, AVG-adviseurs, journalisten en toezichthouders. We leggen open uit hoe de scan werkt, waar de grenzen liggen, en waarop we toetsen.
Normenkader-peildatum: 17 juli 2026 · een maandelijkse actualiteitscheck signaleert wijzigingen in wetgeving, AP-handhaving en rechtspraak.
1. Testomgeving
We laden je site in een echte browser (Chromium, server-side aangestuurd), niet alleen de ruwe HTML. Dat is nodig omdat bij veel sites de halve pagina (en het cookiegedrag) pas in de browser ontstaat. We kijken mee met het netwerkverkeer om te zien welke externe partijen worden aangeroepen en wanneer.
We omzeilen geen blokkades: een site die geautomatiseerde toegang weigert (HTTP 403/429) melden we als "niet eerlijk te scannen"; dan geven we géén score.
2. Welke toestemmingssituaties we testen
Bezoek zonder keuze (T1) actief
We meten wat er gebeurt vóórdat de bezoeker íets kiest: welke trackers/pixels/embeds vuren, en of Google een toestemmingssignaal krijgt. Dit legt "de cookiebanner is theater" bloot: trackers die al vertrekken vóór je toestemming.
Alles weigeren (T2) actief
We klikken zelf de "alles weigeren"-knop en meten of er dáárna tóch nog trackers laden. Dat is het punt waarop de Autoriteit Persoonsgegevens actief handhaaft: een weigering die geen effect heeft.
Accepteren, één categorie, intrekken, herbezoek, mobiel vs. desktop (T3–T7) diepe check
Deze diepere toestanden testen we in de losse cookiebanner-check; elke toestand is een extra browserpass, te traag voor de snelle scan. Ook hier melden we alleen een waargenomen lek, nooit dat iets ‘in orde’ is.
3. Hoe we pagina's vinden
We doorzoeken automatisch tot 80 openbaar bereikbare pagina's binnen hetzelfde domein. Vindmethode: interne links volgen vanaf de homepage, aangevuld met de sitemap.xml (onmisbaar bij JavaScript-sites waar de links pas in de browser ontstaan).
Eerlijk over de grens: pagina's die nergens gelinkt zijn én niet in de sitemap staan, vinden we niet. Subdomeinen nemen we niet automatisch mee. Staat er een "+" achter het paginatal, dan waren er méér dan we in deze scan meenemen.
4. Externe verbinding ≠ tracker ≠ overtreding
We onderscheiden bewust drie niveaus, zodat een uitkomst niet strenger klinkt dan hij is:
- Externe verbinding: je site laadt iets van een ander domein (bv. een font of CDN). Op zichzelf geen overtreding.
- Tracker: een externe partij die gedrag kan volgen (analytics, advertentiepixels). Relevant zodra die vóór toestemming vuurt of ná een weigering blijft laden.
- Overtreding: dat is een juridisch oordeel. Wij leveren het meetbare signaal en het wetsartikel; of iets in jouw situatie daadwerkelijk in strijd is met de wet, is aan een jurist.
5. Classificatie van bevindingen
6. Uitzonderingen & false positives
We zijn conservatief: we melden liever een positieve vondst die klopt dan een afwezigheid die we niet kunnen bewijzen.
- JavaScript-sites (SPA's): laadt een pagina grotendeels via JavaScript, dan ziet een snelle meting maar een fractie; we melden dat expliciet in plaats van "groen".
- Geblokkeerde sites: HTTP 403/429 → geen score (we beoordelen geen blokkadepagina).
- Browseropslag: localStorage kan functioneel zijn; daarom "aandachtspunt", geen "kritiek".
- Bannerdetectie: banners in een cross-origin iframe (sommige CMP's) worden nog niet altijd herkend; dan draait de weiger-test daar niet.
7. Het normenkader en de bronnen
Ons kader is samengesteld uit primaire bronnen en wordt per bevinding gekoppeld aan het wetsartikel:
- De AVG (Verordening 2016/679), o.a. art. 5, 6, 7, 25, 32, 44 e.v.
- De Autoriteit Persoonsgegevens: richtsnoeren en handhaving (o.a. cookies).
- EDPB-richtsnoeren, waaronder die over trackingtechnieken (verder dan cookies: pixels, fingerprinting, identifiers).
- Telecommunicatiewet art. 11.7a (cookies/opslag op randapparatuur).
- AI-verordening art. 50 (transparantie bij chatbots/AI-uitvoer).
- Relevante rechtspraak.
"Geverifieerd en getoetst": door wie?
Het kader is samengesteld uit de bovenstaande primaire bronnen en intern adversarieel kruisgecheckt (elke norm is tegen de bron getoetst). Het is niet extern gecertificeerd door een met naam genoemde jurist, en we presenteren het niet als zodanig. De juridische eindbeoordeling blijft mensenwerk: wij signaleren, een jurist oordeelt.
8. De grenzen van een externe scan
Een scan van buitenaf ziet de technisch en publiek waarneembare kant van je website. Hij ziet niet:
- wat er ná verzending met formuliergegevens gebeurt;
- hoe lang gegevens intern worden bewaard;
- of er verwerkersovereenkomsten zijn en wie toegang heeft;
- of internationale doorgiften goed geregeld zijn;
- of een verwerkingsregister of DPIA nodig is.
Daarom claimen we nooit dat een website "AVG‑proof" is. Voor de niet-waarneembare onderdelen stellen we aanvullende vragen en geven we aan welke menselijke beoordeling of documentatie nog nodig is.
9. Handmatige validatie en herstel
Bij "Wij doen het" voert een mens de technische correcties uit en hertesten we gericht of het punt daadwerkelijk weg is; dat resultaat leggen we vast. Na herstel geven we een gedateerde controleverklaring op de gecontroleerde punten: expliciet géén keurmerk of AVG-certificaat, wél een controleerbaar moment-in-de-tijd.