Cookies zijn kleine tekstbestanden die websites opslaan in de browser van de bezoeker. Technisch gezien is elke cookie een sleutel-waardepaar met aanvullende metadata (vervaldatum, domein, pad, beveiligingsvlaggen). De browser stuurt alle overeenkomende cookies bij elk HTTP-verzoek terug naar de server, en zo "onthouden" websites dingen tussen pagina-aanroepen. WordPress gebruikt cookies voor inlogsessies, beheerdersvoorkeuren, reactieformulieren en diverse trackingdoeleinden.
Hoe cookies werken op technisch niveau
Wanneer uw WordPress-site een respons naar een browser stuurt, kan deze een of meer Set-Cookie-koppen bevatten. Elke kop definieert een cookie met een naam, een waarde en optionele attributen zoals vervaltijd en bereik. Bij elk volgend verzoek aan hetzelfde domein (en overeenkomend pad) neemt de browser deze cookies automatisch op in de Cookie-verzoekkop. De server leest ze en gebruikt de opgeslagen gegevens om de gebruiker te identificeren, sessietoestand te herstellen of gedrag te volgen.
Dit mechanisme is wat inlogsessies mogelijk maakt. Zonder cookies zou de server geen manier hebben om te weten dat de persoon die het dashboard opvraagt dezelfde persoon is die zojuist een wachtwoord heeft ingevoerd op de inlogpagina.
First-party-cookies vs. third-party-cookies
Het onderscheid tussen first-party- en third-party-cookies staat centraal in privacyregelgeving en is belangrijk voor elke WordPress-site-eigenaar:
- First-party-cookies: Geplaatst door uw eigen domein. Deze omvatten WordPress inlogsessie-cookies, GDPR-toestemmingsvoorkeuren opgeslagen door uw cookiebanner-plugin, WooCommerce winkelwageninhoud en alle cookies die uw thema of aangepaste code aanmaakt. First-party-cookies worden over het algemeen als minder privacyinvasief beschouwd omdat ze alleen binnen uw eigen site werken.
- Third-party-cookies: Geplaatst door externe domeinen via bronnen die op uw pagina worden geladen. Wanneer uw WordPress-site Google Analytics, de Facebook Pixel, een YouTube-embed of een advertentiescript laadt, plaatsen deze diensten hun eigen cookies op verschillende domeinen. Third-party-cookies kunnen bezoekers volgen over meerdere websites, en daarom zijn ze het primaire doelwit van privacyregelgeving. Belangrijke browsers zoals Safari en Firefox blokkeren third-party-cookies al standaard, en Chrome bouwt ze ook af.
Sessiecookies vs. persistente cookies
Cookies verschillen ook in hoe lang ze duren:
- Sessiecookies: Deze cookies hebben geen expliciete vervaldatum. Ze bestaan alleen in het geheugen van de browser en worden verwijderd wanneer de browser wordt gesloten. WordPress gebruikt sessiecookies voor tijdelijke toestanden die niet hoeven te blijven bestaan.
- Persistente cookies: Deze cookies hebben een gedefinieerde vervaldatum en blijven opgeslagen op het apparaat van de bezoeker totdat die datum komt (of de gebruiker ze handmatig wist). De WordPress-inlogcookie
wordpress_logged_in_*is een persistente cookie die doorgaans 48 uur duurt, of 14 dagen als de gebruiker "Onthoud mij" aanvinkt. Google Analytics-cookies zoals_gablijven standaard 2 jaar bestaan.
Standaard WordPress-cookies uitgelegd
Een standaard WordPress-installatie plaatst verschillende cookies, die elk een specifiek doel dienen:
wordpress_test_cookie: Geplaatst op de inlogpagina om te controleren of de browser überhaupt cookies accepteert. Als deze cookie wordt geblokkeerd, toont WordPress een fout dat cookies moeten zijn ingeschakeld om in te loggen.wordpress_logged_in_[hash]: De belangrijkste authenticatiecookie voor ingelogde gebruikers. Het bevat de gebruikersnaam, een vervalstempel en een hash die verifieert dat de cookie niet is gemanipuleerd. Deze cookie wordt gebruikt om de gebruiker op de frontend te identificeren.wordpress_[hash]: Een aparte authenticatiecookie die alleen wordt gebruikt in het beheergedeelte (/wp-admin/). Het biedt een extra beveiligingslaag door toegang tot beheerfuncties te beperken.wp-settings-[uid]: Slaat gebruikersspecifieke beheerinterfacevoorkeuren op zoals de editormodus (visueel vs. code), het aantal items per pagina in beheerlijsten en paneeltoestanden.wp-settings-time-[uid]: Registreert wanneer de cookiewp-settingsvoor het laatst is bijgewerkt.comment_author_[hash]: Onthoudt de naam, het e-mailadres en de URL die een bezoeker in een reactieformulier heeft ingevoerd, zodat hij ze niet opnieuw hoeft in te typen bij zijn volgende bezoek. Alleen geplaatst wanneer een bezoeker een reactie indient.
Deze standaard WordPress-cookies zijn allemaal first-party-cookies en worden over het algemeen als essentieel beschouwd (noodzakelijk voor het functioneren van de site). De reactiecookies worden echter soms geclassificeerd als niet-essentieel omdat reageren optioneel is.
GDPR-, ePrivacy- en cookietoestemmingsvereisten
De Europese GDPR en de ePrivacy-richtlijn stellen strikte regels over cookies. Voor WordPress-site-eigenaren die zich richten op Europese bezoekers, gelden deze regels ongeacht waar uw server zich bevindt:
- Essentiële cookies: Cookies die strikt noodzakelijk zijn voor het functioneren van de site (inlogsessies, beveiligingstokens, winkelwagentoestand) vereisen geen toestemming. U moet ze nog steeds bekendmaken in uw privacybeleid.
- Niet-essentiële cookies: Analyse-cookies, marketing-cookies, personalisatie-cookies en third-party trackingcookies vereisen geïnformeerde, expliciete toestemming voordat ze worden geplaatst. De bezoeker moet actief opt-in geven; voorgevinkte vakjes of "door verder te bladeren"-banners zijn geen geldige toestemming.
- Recht om in te trekken: Bezoekers moeten hun toestemming net zo gemakkelijk kunnen intrekken als zij deze hebben gegeven. Uw cookiebanner moet een manier bevatten om voorkeuren op elk moment te wijzigen.
- Informatievereisten: U moet duidelijk uitleggen wat elke cookie doet, wie deze plaatst en hoe lang deze duurt. Deze informatie wordt doorgaans verstrekt op een cookiebeleid- of privacybeleidpagina.
Cookietoestemmingsbeheer voor WordPress
WordPress bevat standaard geen cookietoestemmingsmechanisme. U heeft een toestemmingsbeheerplugin nodig. Populaire opties zijn:
- Complianz: Een uitgebreide GDPR/CCPA cookietoestemmingsplugin die automatisch cookies op uw site detecteert en cookiebeleidpagina's genereert.
- CookieYes: Een veelgebruikt toestemmingsbeheerplatform met een WordPress-plugin en cloud-gebaseerde cookiescanning.
- Real Cookie Banner: Een WordPress-specifieke toestemmingsplugin met een sterke focus op Duitse/Europese privacywetgeving.
- Borlabs Cookie: Een premium plugin van Duitse makelij die populair is in de DACH-regio. Het ondersteunt granulaire cookiecategorieën en integreert met veel third-party-diensten.
Een goede toestemmingsbeheer-opzet blokkeert niet-essentiële cookies en scripts totdat de bezoeker toestemming geeft. Dit betekent dat Google Analytics, Facebook Pixel en vergelijkbare diensten niet mogen laden of cookies plaatsen totdat de bezoeker op "Accepteren" klikt in de toestemmingsbanner.
Cookiebeveiligingsvlaggen: SameSite, Secure en HttpOnly
Moderne cookies kunnen beveiligingsvlaggen bevatten die bepalen hoe ze worden verzonden en geopend:
- Secure: De cookie wordt alleen verzonden via HTTPS-verbindingen. Zonder deze vlag kunnen cookies worden onderschept op niet-versleutelde HTTP-verbindingen.
- HttpOnly: De cookie kan niet worden benaderd door JavaScript via
document.cookie. Dit voorkomt dat cross-site scripting (XSS)-aanvallen sessiecookies stelen. - SameSite: Bepaalt of de cookie wordt verzonden bij cross-site-verzoeken. De waarde
Strictbetekent dat de cookie nooit cross-site wordt verzonden.Laxstaat de cookie toe bij top-level-navigaties (zoals het klikken op een link), maar blokkeert deze bij cross-site POST-verzoeken en iframes.None(gecombineerd metSecure) staat toe dat de cookie in alle contexten wordt verzonden, wat noodzakelijk is voor third-party-cookies die over domeinen heen moeten werken.
WordPress stelt standaard de HttpOnly-vlag in op authenticatiecookies. U kunt meer leren over deze vlaggen in ons artikel over HTTP-beveiligingskoptekst.
Hoeveel cookies zijn er te veel
Elke cookie wordt verzonden met elk HTTP-verzoek aan het overeenkomende domein. Dit betekent dat als uw WordPress-site 20 cookies plaatst van in totaal 4KB, die 4KB cookiegegevens wordt opgenomen in elk afzonderlijk verzoek voor pagina's, afbeeldingen, stylesheets, scripts en AJAX-aanroepen. Op een pagina met 80 verzoeken is dat 320KB extra gegevens die heen en weer reizen.
Browsers handhaven limieten op cookies:
- Per domein: De meeste browsers staan ongeveer 50 cookies per domein toe, met een totale groottelimiet van ongeveer 4KB per cookie.
- Totaal per cookie: De gecombineerde naam en waarde van een enkele cookie mag niet groter zijn dan 4.096 bytes.
Als uw WordPress-site veel cookies plaatst (vooral grote van analyse- en advertentiescripts), kan dit pagina-aanroepen merkbaar vertragen. Om dit te voorkomen, overweeg om statische assets te serveren vanaf een cookievrij domein of subdomein, en minimaliseer het aantal third-party-scripts dat u laadt.
Wat InspectWP controleert
InspectWP somt alle cookies op die door uw WordPress-site tijdens de scan worden geplaatst, inclusief hun namen, waarden, domeinen, paden en beveiligingsattributen (Secure, HttpOnly, SameSite). Dit helpt u third-party-cookies te identificeren die mogelijk GDPR-toestemming vereisen, cookies op te sporen van diensten die u niet bewust heeft toegevoegd, en te verifiëren dat uw authenticatiecookies de juiste beveiligingsvlaggen ingesteld hebben. De cookielijst in uw InspectWP-rapport is een nuttig startpunt voor het opbouwen of bijwerken van uw cookiebeleid.