Best practices voor cookietoestemming
De wet kennen is noodzakelijk. Maar de echte uitdaging ligt in een goede uitvoering. In dit gedeelte behandelen we de praktische best practices voor cookietoestemming — hoe u een toestemmingservaring bouwt die juridisch conform, technisch solide en respectvol tegenover uw gebruikers is.
1. Maak toestemming werkelijk vrijwillig
Artikel 7(4) van de AVG stelt dat bij de beoordeling of toestemming vrijelijk is gegeven "onder meer ten zeerste rekening wordt gehouden met de vraag of de uitvoering van een overeenkomst, met inbegrip van een dienstverlening, afhankelijk is gesteld van de toestemming voor een verwerking van persoonsgegevens die niet noodzakelijk is voor de uitvoering van die overeenkomst."
In de praktijk betekent dit:
- Gebruik geen cookiewalls die content blokkeren tenzij de gebruiker alle cookies accepteert. De EDPB heeft verklaard dat cookiewalls doorgaans verhinderen dat toestemming vrijelijk wordt gegeven. Als een gebruiker geen toegang tot uw website krijgt zonder tracking te accepteren, is hun "toestemming" afgedwongen en niet vrijwillig.
- Verslechter de ervaring niet voor gebruikers die weigeren. Het tonen van een blijvende overlay, het beperken van paginafunctionaliteit of het weergeven van passief-agressieve boodschappen ("We merken dat u geen cookies heeft geaccepteerd — uw ervaring kan hieronder lijden") ondermijnt het vrijwillige karakter van toestemming.
- Bied echte alternatieven. Als u een "toestemming of betalen"-model gebruikt, moet het betaalde alternatief werkelijk redelijk zijn — niet zo geprijsd dat weigering wordt bestraft.
2. Schaf dark patterns af
Dark patterns bij cookietoestemming worden specifiek door toezichthouders aangepakt. De EDPB heeft richtlijnen uitgegeven over misleidende ontwerppatronen, en de CNIL, Garante en andere toezichthouders hebben organisaties specifiek beboet voor manipulatieve toestemmingsinterfaces.
Vermijd deze patronen:
- Asymmetrische knoppen. "Alles accepteren" als grote, kleurrijke knop en "Instellingen beheren" als kleine tekstlink. Beide opties moeten even prominent zijn. Meerdere toezichthouders hebben specifiek geëist dat "Alles weigeren" beschikbaar is op de eerste laag met hetzelfde visuele gewicht als "Alles accepteren".
- Verwarrende taal. "Doorgaan zonder te accepteren" versus "Accepteren en doorgaan" — als beide knoppen op elkaar lijken, kunnen gebruikers ze niet snel onderscheiden. Gebruik duidelijke, ondubbelzinnige labels: "Alles accepteren", "Alles weigeren", "Aanpassen".
- Verborgen weigeropties. Gebruikers verplichten om door te klikken naar een tweede of derde laag om cookies te weigeren, terwijl "Alles accepteren" met één klik bereikbaar is. De CNIL beboette Google met 150 miljoen euro deels vanwege deze praktijk.
- Vooraf aangevinkte schakelaars. Categorieschakelaars die standaard op "aan" staan voor analytics en marketing. De uitspraak van het HvJ-EU in de zaak Planet49 verbiedt dit uitdrukkelijk.
- Misleidende kleuren. Groen voor "Accepteren" en rood of grijs voor "Weigeren" suggereert dat accepteren de juiste keuze is en weigeren een fout. Gebruik neutrale, consistente vormgeving.
- Confirm-shaming. Formuleringen als "Nee bedankt, mijn ervaring maakt me niet uit" voor de weigeroptie zijn manipulatief en ondermijnen het vrijwillige karakter van toestemming.
- Herhaald vragen. De toestemmingsbanner bij elk paginabezoek opnieuw tonen nadat de gebruiker heeft geweigerd, in de hoop hen te vermoeien. Zodra een gebruiker een keuze heeft gemaakt, respecteer die dan.
3. Wees transparant
Geïnformeerde toestemming vereist dat gebruikers begrijpen waarmee ze instemmen. Transparantie gaat niet om de hoeveelheid informatie — het gaat om duidelijkheid.
- Gebruik begrijpelijke taal. "We gebruiken cookies om uw surfgedrag op het web te volgen voor advertentiedoeleinden" is duidelijk. "We benutten geavanceerde data-analysetechnologieën om uw gepersonaliseerde digitale ervaring te verbeteren" is dat niet.
- Vermeld alle cookies. Uw cookiebeleid moet een volledig overzicht bevatten: cookienaam, aanbieder, doel, type (sessie/permanent, first-/third-party) en vervaltermijn. Dit overzicht moet actueel worden gehouden.
- Benoem derde partijen. Als u gegevens deelt met advertentienetwerken, benoem ze dan. "We delen gegevens met onze advertentiepartners" is onvoldoende. "We delen gegevens met Google Ads, Meta (Facebook) en LinkedIn" is transparant.
- Leg de gevolgen uit. Wat gebeurt er als de gebruiker analytics-cookies accepteert? Wat gebeurt er als ze weigeren? Gebruikers moeten de praktische impact van hun keuze begrijpen.
4. Bied gedetailleerde controle
De AVG vereist dat toestemming "specifiek" is — apart gegeven voor elk doel. Uw toestemmingsmechanisme moet het volgende bieden:
- Schakelaars per categorie. Gebruikers moeten analytics-cookies kunnen accepteren en tegelijk marketingcookies kunnen weigeren. De vier standaardcategorieën (noodzakelijk, analytics, marketing, voorkeuren) vormen het minimum.
- Snelkoppelingen "Alles accepteren" en "Alles weigeren". Hoewel gedetailleerde controle vereist is, is het aanbieden van bulkopties als snelkoppelingen zowel legaal als gebruiksvriendelijk — zolang de gedetailleerde optie even toegankelijk is.
- Controle per leverancier (aanbevolen maar niet altijd vereist). Voor maximale transparantie kunt u overwegen gebruikers cookies per leverancier te laten inzien en beheren — bijvoorbeeld Google Analytics accepteren maar Hotjar weigeren, of LinkedIn-tracking accepteren maar Facebook weigeren. Sommige consent management platforms noemen dit "IAB TCF Level 2"-granulariteit.
5. Maak intrekken net zo makkelijk als toestemming geven
Artikel 7(3) van de AVG is expliciet: "De betrokkene heeft het recht zijn toestemming te allen tijde in te trekken. [...] Het intrekken van de toestemming is even eenvoudig als het geven ervan."
Deze vereiste wordt vaak geschonden. Veelvoorkomende tekortkomingen zijn:
- Geen zichtbare manier om cookievoorkeuren te wijzigen nadat de banner is weggeklikt.
- Een link "Cookie-instellingen" verstopt in de privacyverklaring, die zelf verstopt is in de footer.
- De gebruiker verplichten hun browsercookies te wissen om voorkeuren te resetten (dit is geen intrekkingsmechanisme — het is een noodoplossing).
Best practice-implementaties omvatten:
- Een blijvende link "Cookie-instellingen" in de footer van de website.
- Een klein zwevend pictogram (vaak een cookie- of schildpictogram) dat de consent manager opnieuw opent.
- Een sectie in de accountinstellingen van de gebruiker (voor ingelogde gebruikers) waar cookievoorkeuren kunnen worden beheerd.
Wanneer een gebruiker toestemming intrekt, moet u de betreffende cookies onmiddellijk stoppen met gebruiken. Verwijder de cookies uit de browser en stop de bijbehorende scripts. Intrekking moet effectief zijn, niet alleen geregistreerd.
6. Bewaar toestemmingsregistraties
Artikel 7(1) van de AVG: "Wanneer de verwerking berust op toestemming, moet de verwerkingsverantwoordelijke kunnen aantonen dat de betrokkene toestemming heeft gegeven voor de verwerking van zijn persoonsgegevens."
Uw toestemmingsregistraties moeten het volgende bevatten:
- Tijdstip waarop toestemming werd gegeven of geweigerd.
- Categorieën die zijn geaccepteerd en geweigerd.
- Versie van het getoonde toestemmingsmechanisme (hoe de banner eruitzag, welke tekst werd weergegeven). Als u uw toestemmingsbanner wijzigt, moet u weten met welke versie elke gebruiker interactie heeft gehad.
- Methode van toestemming (welke knop werd aangeklikt, welke opties werden geselecteerd).
- Geanonimiseerde identificator die de registratie aan het apparaat of de sessie koppelt (niet de naam of het e-mailadres van de gebruiker — de toestemmingsregistratie zelf mag geen privacyprobleem worden).
Bewaar deze registraties aan de serverzijde. Een cookie aan de clientzijde alleen is geen voldoende bewijs — de gebruiker kan die verwijderen en u heeft dan geen onafhankelijke registratie. Het is best practice om toestemmingsgebeurtenissen op uw server te loggen en ze te bewaren gedurende de periode die uw gegevensbeschermingsautoriteit aanbeveelt (doorgaans dezelfde periode als de vervaltermijn van uw cookies, plus een redelijke marge).
7. Vraag opnieuw na wijzigingen
Toestemming is specifiek voor de doelen en cookies waarvoor die is gegeven. Als u nieuwe cookies, nieuwe categorieën, nieuwe externe leveranciers toevoegt of ingrijpend wijzigt hoe u bestaande cookies gebruikt, kan eerder verzamelde toestemming de nieuwe verwerking mogelijk niet langer dekken.
Vraag gebruikers opnieuw om toestemming wanneer:
- U een nieuwe categorie cookies toevoegt die voorheen niet werd gedekt.
- U een nieuwe externe trackingdienst introduceert.
- U het doel van bestaande cookies wijzigt (bijv. analytics-gegevens gebruiken voor advertentiedoeleinden).
- Er veel tijd is verstreken sinds de laatste toestemming (de CNIL beveelt maximaal 13 maanden aan).
- Regelgevende vereisten veranderen op een manier die de geldigheid van bestaande toestemming beïnvloedt.
Implementeer een versiesysteem voor toestemming. Ken een versienummer toe aan uw toestemmingsconfiguratie. Wanneer de versie wijzigt (omdat u cookies heeft toegevoegd of gewijzigd), vraag dan opnieuw om toestemming aan gebruikers die onder een eerdere versie hebben toegestemd.
8. Test toestemmingspercentages ethisch met A/B-tests
Het is legitiem om uw toestemmingservaring te optimaliseren — verschillende lay-outs, formuleringen en ontwerpen testen om te ontdekken wat het beste werkt. Maar "het beste werkt" moet betekenen "leidt tot werkelijk geïnformeerde toestemming tegen een redelijk percentage", niet "maximaliseert kliks op alles accepteren door manipulatie".
Richtlijnen voor ethisch A/B-testen:
- Alle varianten moeten conform zijn. Elke versie die u test moet voldoen aan de wettelijke vereisten voor geldige toestemming. U mag geen conforme versie testen tegen een niet-conforme versie om te zien welke meer acceptaties krijgt.
- Test duidelijkheid, geen manipulatie. Verhoogt het herformuleren van de uitleg het begrip en daarmee de toestemming? Verbetert het herpositioneren van de banner de betrokkenheid? Dit zijn legitieme tests.
- Optimaliseer niet voor het percentage "Alles accepteren". Een hoog accepteerpercentage dat is behaald door verwarrend ontwerp is geen succes — het is een nalevingsrisico. Optimaliseer voor het percentage gebruikers dat een actieve, geïnformeerde keuze van welke aard dan ook maakt.
- Monitor weigeringspercentages. Als een ontwerpwijziging de weigeringen drastisch vermindert, vraag u dan af of dit door duidelijkheid of door obstructie kwam.
9. Best practices voor technische implementatie
Het toestemmingsmechanisme is niet slechts een UI-component — het vereist een goede technische implementatie om daadwerkelijk te werken.
Blokkeer scripts tot er toestemming is
De meest cruciale technische vereiste: niet-essentiële scripts mogen pas worden uitgevoerd nadat de gebruiker heeft toegestemd voor de betreffende categorie. Er zijn verschillende benaderingen:
- Manipulatie van het scripttype. Wijzig
type="text/javascript"intype="text/plain"en voeg een data-attribuut toe dat de categorie aangeeft. Wanneer toestemming wordt gegeven, verandert een script van de consent manager het type terug en activeert de uitvoering. - Integratie met tagmanager. Gebruik een tagmanager (Google Tag Manager, Tealium enz.) die toestemmingsmodi ondersteunt. Tags worden geconfigureerd om alleen te vuren wanneer er toestemming voor hun categorie aanwezig is.
- Server-side rendering. Neem scripttags alleen op in de pagina-HTML als er al toestemming is geregistreerd (via een serverzijdige controle van de toestemmingscookie). Dit is de meest betrouwbare aanpak, maar vereist serverzijdige logica.
Behandel de toestemmingsstatus correct
- Eerste bezoek (geen toestemming geregistreerd): Laad alleen strikt noodzakelijke scripts. Toon het toestemmingsmechanisme.
- Terugkerend bezoek (toestemming geregistreerd): Lees de toestemmingscookie. Laad scripts die overeenkomen met de geaccepteerde categorieën. Toon het toestemmingsmechanisme niet opnieuw tenzij vernieuwing nodig is.
- Toestemming ingetrokken: Stop alle scripts in de ingetrokken categorie. Verwijder relevante cookies. Werk de toestemmingsregistratie bij.
- Toestemming vernieuwd: Behandel dit als een eerste bezoek voor nieuwe categorieën. Laad eerder geaccepteerde categorieën onmiddellijk.
Test grondig
- Controleer dat er geen niet-essentiële cookies worden geplaatst voordat toestemming is gegeven. Gebruik de ontwikkelaarstools van de browser (tabblad Application > Cookies) om dit te controleren.
- Controleer dat scripts daadwerkelijk stoppen wanneer toestemming wordt ingetrokken — niet alleen dat de cookie is verwijderd, maar dat de scripts niet langer draaien.
- Test met JavaScript uitgeschakeld. Het toestemmingsmechanisme moet netjes degraderen en er mogen geen trackingscripts laden.
- Test op mobiele apparaten. Het toestemmingsmechanisme moet volledig functioneel en bruikbaar zijn op kleine schermen.
10. Gebruik een consent management platform (CMP)
Een volledig conform toestemmingsmechanisme vanaf nul opbouwen is mogelijk, maar brengt aanzienlijk doorlopend onderhoud met zich mee. Een consent management platform neemt de complexiteit voor u uit handen: het verzamelen van toestemming, registratie, het blokkeren van scripts, geo-targeting en regelgevingsupdates.
Houd bij het beoordelen van een CMP rekening met:
- Automatische cookiescan. Detecteert de CMP alle cookies op uw site, of moet u ze handmatig invoeren?
- Scriptblokkering. Blokkeert de CMP daadwerkelijk scripts vóór toestemming, of toont die alleen een banner?
- Toestemmingsregistraties. Bewaart de CMP toestemmingsbewijs aan de serverzijde?
- IAB TCF-ondersteuning. Als u programmatic advertising gebruikt, kan ondersteuning voor TCF 2.2 vereist zijn.
- Impact op prestaties. Het CMP-script laadt op elke pagina. Hoe groot is het? Blokkeert het de rendering?
- Aanpasbaarheid. Kunt u de toestemmingsbanner afstemmen op de vormgeving van uw merk?
- Toegankelijkheid. Is het toestemmingsmechanisme zelf toegankelijk? Kan het met het toetsenbord worden bediend? Werkt het met schermlezers? Een ontoegankelijke toestemmingsbanner op een website die beweert om toegankelijkheid te geven, staat slecht.
Passiro scant uw website om alle cookies en trackingtechnologieën te identificeren, categoriseert ze automatisch en biedt bruikbare aanbevelingen voor uw toestemmingsimplementatie — of u die nu zelf bouwt of een CMP gebruikt.
Samenvatting: de toestemmingschecklist
Een snelle referentie om uw huidige toestemmingsimplementatie te beoordelen:
- Er worden geen niet-essentiële cookies geplaatst voordat toestemming is gegeven.
- Het toestemmingsmechanisme biedt "Alles accepteren" en "Alles weigeren" met gelijke prominentie.
- Gebruikers kunnen keuzes per categorie maken (minimaal: noodzakelijk, analytics, marketing, voorkeuren).
- De gepresenteerde informatie is duidelijk, specifiek en in begrijpelijke taal.
- Vooraf aangevinkte vakjes en schakelaars worden niet gebruikt voor niet-essentiële categorieën.
- Er bestaat een blijvende, eenvoudig toegankelijke methode om toestemming in te trekken of te wijzigen.
- Toestemmingsregistraties worden aan de serverzijde bewaard met tijdstippen en categoriedetails.
- Toestemming wordt minstens elke 13 maanden vernieuwd (of eerder als het cookiegebruik wijzigt).
- Het toestemmingsmechanisme is toegankelijk (met het toetsenbord te bedienen, compatibel met schermlezers).
- De implementatie wordt regelmatig getest op naleving (nieuwe cookies, gewijzigde scripts).
Goed uitgevoerde cookietoestemming is geen obstakel voor uw bedrijf. Het is een fundament van vertrouwen tussen u en uw gebruikers — en steeds vaker is het wat conforme bedrijven onderscheidt van bedrijven die met handhaving door toezichthouders te maken krijgen.
Voldoet uw website aan de cookieregels?
Scan uw website gratis en vind alle cookies binnen enkele minuten.
Scan uw cookies gratis