Cookie-Consent ohne Nervfaktor
Cookie-Consent-Banner sind meistens schlecht umgesetzt. Entweder technisch falsch oder so gestaltet dass sie Benutzer zermürben bis sie alles akzeptieren. Beides ist keine gute Lösung.
Was tatsächlich Consent braucht
Nicht alle Cookies brauchen Zustimmung.
Technisch notwendige Cookies — Session-ID, CSRF-Token, Login-Status — sind ohne Consent erlaubt.
Alles was Tracking, Analytics oder Marketing betrifft braucht explizite Zustimmung.
Wenn das Projekt kein Google Analytics und keine Werbenetzwerke einbindet ist die Consent-Pflicht überschaubar.
Einfache Umsetzung in PHP
function hasConsent(string $category): bool
{
if (!isset($_COOKIE['consent'])) return false;
$consent = json_decode($_COOKIE['consent'], true);
return !empty($consent[$category]);
}
function setConsent(categories) {
document.cookie = 'consent=' + JSON.stringify(categories)
+ '; max-age=' + (365 * 86400)
+ '; path=/; SameSite=Lax; Secure';
location.reload();
}
Das Banner
<div id="consent-banner" style="display:none">
<p>Diese Seite verwendet Cookies für Analyse und Komfort.</p>
<button onclick="setConsent({analytics:true})">Alle akzeptieren</button>
<button onclick="setConsent({analytics:false})">Nur notwendige</button>
</div>
<script>
if (!document.cookie.includes('consent=')) {
document.getElementById('consent-banner').style.display = 'block';
}
</script>
Dark Patterns vermeiden
- "Alle akzeptieren" und "Ablehnen" gleich groß und gleich auffällig
- Kein Pre-Ticking von optionalen Kategorien
- Ablehnen darf nicht mehr Klicks kosten als Akzeptieren
Aufsichtsbehörden schauen genau auf diese Dinge. Der Aufwand für ein sauberes Banner ist überschaubar.
Analytics ohne Consent
Wer trotzdem Nutzungsstatistiken will ohne Consent zu brauchen: serverseitiges Logging der Seitenaufrufe (nur anonymisierte IP, kein Fingerprinting, kein Cross-Site-Tracking).
Das fällt unter berechtigtes Interesse und braucht keinen Consent-Banner.