WordPress Cookie-audit: hoe thema’s en plugins je site vullen met trackers
Het verborgen cookieprobleem in WordPress
De meeste WordPress-site-eigenaren beseffen niet hoeveel cookies hun site plaatst. Een nieuwe WordPress-installatie met een populair thema en een handvol veelgebruikte plugins kan gemakkelijk 15 tot 30 cookies plaatsen op verschillende domeinen, waarvan veel al worden gezet voordat de bezoeker ook maar enige mogelijkheid heeft om toestemming te geven. Dit is niet het gevolg van bewuste tracking — het is het cumulatieve effect van thema’s en plugins die externe bronnen laden die hun eigen cookies meebrengen.
Begrijpen waar deze cookies vandaan komen, wat ze doen en hoe je ze kunt beheersen, is essentieel voor elke WordPress-site die moet voldoen aan GDPR, ePrivacy of vergelijkbare regelgeving. Deze gids loopt stap voor stap door het auditproces.
Waarom WordPress-sites zoveel cookies verzamelen
De pluginarchitectuur van WordPress is zowel zijn grootste kracht als zijn grootste privacyrisico. Elke plugin werkt semi-onafhankelijk en de meeste plugindevelopers richten zich op functionaliteit in plaats van op cookienaleving. Dit zijn de belangrijkste bronnen van cookies op een typische WordPress-site:
Thema’s en Google Fonts
Veel WordPress-thema’s laden Google Fonts rechtstreeks vanaf fonts.googleapis.com. Wanneer de browser van een bezoeker deze fonts opvraagt, kan Google cookies plaatsen en het IP-adres van de bezoeker, browserinformatie en de verwijzende pagina verzamelen. In 2022 oordeelde een Duitse rechtbank dat het laden van Google Fonts vanaf de servers van Google zonder toestemming in strijd is met GDPR, wat resulteerde in een boete van 100 EUR voor elke getroffen bezoeker. De oplossing is om fonts lokaal te hosten, maar de meeste themastandaarden verwijzen nog steeds naar de servers van Google.
Page builders en analytics
Elementor, de populairste WordPress-pagebuilder, laadt externe bronnen, waaronder fonts, en kan gebruikstrackingcookies plaatsen. Sommige Elementor-widgets embedden content van derden (YouTube-video’s, Google Maps) die hun eigen cookies plaatsen. Zelfs de gratis versie van Elementor kan geanonimiseerde gebruiksgegevens verzenden, tenzij dit expliciet wordt uitgeschakeld in de instellingen.
SEO-plugins
Yoast SEO en Rank Math plaatsen zelf weinig cookies, maar ze integreren vaak met Google Search Console en moedigen aan om Google Analytics-trackingcodes toe te voegen. De analyticsscripts die ze je helpen implementeren, zijn een belangrijke bron van cookies. De premiumversie van Yoast communiceert ook met de servers van Yoast voor SEO-analyse, wat cookies kan omvatten.
Jetpack en WordPress.com-diensten
Jetpack is een van de meest productieve cookiezetters in het WordPress-ecosysteem. Afhankelijk van welke modules actief zijn, kan Jetpack cookies plaatsen voor:
- Sitestatistieken (WordPress.com stats)
- Sociale deelknoppen (laden van scripts van Facebook, Twitter, LinkedIn)
- Reactiesysteem (Gravatar-cookies)
- Beveiligingsfuncties (Protect-modulecookies)
- CDN-gebruik (WordPress.com CDN-cookies)
Een enkele Jetpack-installatie met standaardinstellingen kan verantwoordelijk zijn voor 8 tot 12 cookies van verschillende domeinen.
WooCommerce en e-commerce
WooCommerce plaatst verschillende cookies die worden beschouwd als strikt noodzakelijk voor e-commercefunctionaliteit:
- woocommerce_cart_hash: Helpt WooCommerce te weten wanneer de inhoud van de winkelwagen verandert.
- woocommerce_items_in_cart: Houdt bij of er items in de winkelwagen zitten.
- wp_woocommerce_session_*: Bevat een unieke code voor de sessie van elke klant.
Hoewel deze over het algemeen zijn vrijgesteld van toestemmingsvereisten als strikt noodzakelijke cookies, voegen WooCommerce-extensies voor betalingsverwerking, herstel van verlaten winkelwagens en marketingautomatisering veel meer cookies toe die wél toestemming vereisen.
Contactformulieren en reCAPTCHA
Contactformulier-plugins zoals Contact Form 7, WPForms en Gravity Forms gebruiken vaak Google reCAPTCHA voor spambeveiliging. reCAPTCHA v2 en v3 plaatsen meerdere cookies, waaronder _GRECAPTCHA, en laden scripts van google.com die extra trackingcookies kunnen plaatsen. Dit betekent dat zelfs een eenvoudige contactpagina advertentiegerelateerde cookies kan activeren.
Caching-plugins
Caching-plugins zoals WP Super Cache, W3 Total Cache en WP Rocket plaatsen hun eigen cookies om het cachegedrag te beheren. Dit zijn doorgaans functionele cookies (bijvoorbeeld om de cache te omzeilen voor ingelogde gebruikers), maar ze moeten nog steeds in je cookiebeleid worden gedocumenteerd.
Hoe je cookies op je WordPress-site auditeert
Een grondige cookie-audit houdt in dat je je site scant vanuit het perspectief van de bezoeker. Dit is het proces:
Stap 1: Gebruik de ontwikkelaarstools van je browser
Open je site in Chrome, ga naar DevTools > Application > Cookies en bekijk alle cookies die zijn geplaatst voor jouw domein en domeinen van derden. Doe dit in een incognitovenster om een eerste bezoeker te simuleren. Noteer van elke cookie de naam, het domein, de vervaldatum en of het een first-party- of third-party-cookie is.
Stap 2: Gebruik een speciale cookiescanner
Handmatige inspectie vangt cookies die bij het laden van de pagina worden geplaatst, maar mist cookies die worden gezet door interacties (knoppen aanklikken, formulieren verzenden, scrollen). Speciale scanners zoals de gratis scanner van Cookiebot, de CookieYes-scanner of browserextensies zoals EditThisCookie leveren meer uitgebreide resultaten. Voer scans uit op meerdere pagina’s, niet alleen op de homepage.
Stap 3: Categoriseer elke cookie
Groepeer gevonden cookies in standaardcategorieën:
- Strikt noodzakelijk: Sessiecookies, authenticatie, beveiliging, winkelwagenfunctionaliteit. Deze vereisen geen toestemming.
- Functioneel: Taalvoorkeuren, aanpassing van de gebruikersinterface. Toestemming is technisch vereist, maar deze zijn laag risico.
- Analytics: Google Analytics, WordPress.com stats, heatmaptools. Toestemming is vereist.
- Marketing/advertenties: Google Ads, Facebook Pixel, remarketingcookies. Toestemming is vereist en dit zijn de hoogste prioriteit om te blokkeren.
Stap 4: Koppel cookies aan hun bronnen
Identificeer voor elke cookie welk thema of welke plugin verantwoordelijk is. Hier wordt WordPress ingewikkeld — een enkele pagina kan scripts laden van 5 verschillende plugins, die elk hun eigen cookies plaatsen. Deactiveer tijdelijk plugins één voor één om te achterhalen welke plugin welke cookies plaatst.
Veelvoorkomende cookiebronnen en hun oplossingen
Hier is een snel overzicht van de meest voorkomende WordPress-cookiebronnen en hoe je ermee omgaat:
- Google Fonts: Schakel over op lokaal gehoste fonts. Plugins zoals OMGF of de instellingen van je thema kunnen dit automatiseren.
- Google Analytics: Moet worden geblokkeerd totdat toestemming is gegeven. Dit wordt afgehandeld door je CMP.
- YouTube-embeds: Gebruik het domein youtube-nocookie.com in plaats van youtube.com. Dit voorkomt de meeste trackingcookies.
- Google Maps: Laad pas na toestemming, of gebruik een statische kaartafbeelding als placeholder.
- Facebook Pixel: Moet worden geblokkeerd totdat marketingtoestemming is gegeven.
- reCAPTCHA: Overweeg alternatieven zoals hCaptcha (privacyvriendelijker) of honeypottechnieken die geen externe scripts vereisen.
FlexyConsent WordPress-plugin instellen voor volledige naleving
Als je eenmaal je cookies hebt geaudit en begrijpt wat moet worden beheerst, is het implementeren van FlexyConsent op WordPress eenvoudig.
De WordPress-plugin van FlexyConsent integreert rechtstreeks in je WordPress-beheerdashboard en biedt een native configuratie-ervaring:
- Installeer vanuit de Plugin Directory: Zoek naar "FlexyConsent" in Plugins > Nieuwe plugin, installeer en activeer. Geen handmatige bestandsuploads nodig.
- Verbind je site: Voer je FlexyConsent-site-ID in in de plugininstellingen. De plugin injecteert automatisch het toestemmingsscript op de juiste plek — vóór alle andere scripts van derden.
- Configureer cookiecategorieën: Koppel je geaudite cookies aan de toestemmingscategorieën van FlexyConsent. De plugin biedt hiervoor een visuele interface direct in je WordPress-beheeromgeving.
- Stel scriptblokkering in: FlexyConsent beheert Google-tags automatisch via Consent Mode V2. Voor andere scripts (Facebook Pixel, aangepaste tracking) biedt de plugin scriptblokkeringsregels die uitvoering voorkomen totdat de juiste toestemmingscategorie is gegeven.
- Test grondig: Gebruik een incognitovenster om te controleren dat niet-essentiële cookies worden geblokkeerd totdat toestemming is gegeven, en dat alle functionaliteit correct werkt na toestemming.
Als een door Google gecertificeerde CMP met ondersteuning voor IAB TCF 2.3 automatiseert FlexyConsent de meest complexe aspecten van WordPress-cookienaleving. Consent Mode V2-signalen worden naar Google-diensten gestuurd zonder extra tagconfiguratie, en geotargeting zorgt ervoor dat bezoekers uit verschillende regio’s de juiste toestemmingservaring zien.
Belangrijkste inzicht: De flexibiliteit van WordPress heeft een privacyprijs — elk thema en elke plugin kan cookies introduceren die toestemming vereisen. Een systematische audit gevolgd door een correcte CMP-implementatie is de enige betrouwbare weg naar naleving. Ga er niet van uit dat je site alleen de cookies plaatst waarvan je weet; de realiteit is bijna altijd complexer dan verwacht.