Die WordPress-Einwilligung,
die vor dem Klick blockiert.
OW Consent entschärft Tracker im HTML, bevor der Besucher gewählt hat, wendet den Rechtsrahmen seiner Jurisdiktion an und schreibt jede Entscheidung in ein verkettetes Protokoll, das du überprüfen kannst. Elf Compliance-Profile, neun benannte Rechtsrahmen – von der DSGVO bis zum CCPA. Kostenlos, GPL, ohne Pro-Version.
Warum noch ein Consent-Plugin?
Das Banner war nie das Problem. Fast jede Website hat eines, und die Tracker starten trotzdem beim ersten Byte: Das Analytics-Skript steht fest im Theme, das Werbepixel läuft aus dem Footer, das YouTube-iframe setzt seine Cookies, während sich das Banner darüber schiebt. Der Klick auf „Alle akzeptieren“ erlaubt dann nichts mehr, er bestätigt nur, was längst passiert ist.
Die zweite Falle ist der Cache. Sobald ein Plugin das HTML anhand des Besucher-Cookies entscheidet, verträgt es sich nicht mehr mit einem Page-Cache – oder schlimmer: Es liefert die Wahl des einen Besuchers an den nächsten aus. Die dritte ist der Nachweis: Artikel 7 Abs. 1 verlangt, die Einwilligung nachweisen zu können, und ein irgendwo in der Datenbank gesetztes Häkchen weist gar nichts nach.
OW Consent setzt an diesen drei Zwängen an. Das ausgelieferte Markup ist für alle identisch, entschärfte Tracker eingeschlossen, und erst der Browser gibt frei, was der Besucher erlaubt hat. Jede Entscheidung wird an eine signierte Hash-Kette angehängt. Und welcher Rechtsrahmen greift – Opt-in oder Opt-out, „Do Not Sell“-Link, GPC-Signal bindend oder nicht –, richtet sich nach der Jurisdiktion, nicht nach einer Voreinstellung.
Im Strict-Modus, standardmäßig aktiv, wird das Dokument beim Ausliefern umgeschrieben: Skripte werden auf text/plain entschärft, iframes hinter einer anklickbaren Platzhalterfläche auf about:blank gesetzt, Pixel durch ein transparentes GIF ersetzt, Verbindungs-Hints entfernt. Wer nie klickt, lädt diese Ressourcen nie.
Nichts im Rendering-Pfad liest das Cookie. Der Zustand des Besuchers wird im Browser rekonstruiert und noch vor dem ersten Bildaufbau auf das html-Element geschrieben. LiteSpeed, WP Rocket, Varnish oder ein CDN dürfen die Seite cachen, ohne je zwei Besucher zu vermischen.
Jedes Ereignis landet in einer verketteten Tabelle, jede Zeile per HMAC mit dem Hash der vorherigen signiert, der Kopf-Anker außerhalb der Tabelle abgelegt. Und wenn das Protokoll den Schreibvorgang verweigert, antwortet die API mit 503, verwirft das Cookie und gibt keinen einzigen Tracker frei: Eine Einwilligung, die die Website nicht nachweisen kann, beansprucht sie auch nicht.
Was sich konkret ändert
Keine Slogans. Hier sind die technischen Entscheidungen, die dieses Produkt auszeichnen.
Im Strict-Modus – standardmäßig aktiv – wird das gesamte Dokument beim Ausliefern abgefangen und in fünf Durchläufen umgeschrieben: Skripte bekommen den Typ text/plain, ihre URL wandert nach data-owc-src; iframes gehen auf about:blank und stehen hinter einer Platzhalterfläche mit namentlichem „Akzeptieren“-Button; Mess-Pixel werden durch ein transparentes 1×1-GIF ersetzt; preconnect und dns-prefetch werden entfernt (schon ein bloßer Hint öffnet eine TLS-Verbindung und gibt die IP preis); und bereits katalogisierte Drittanbieter-Medien verlieren ihr autoplay. Der mitgelieferte Katalog umfasst 175 Signaturen für 71 Anbieter, und du kannst im Admin welche ergänzen, korrigieren oder löschen. Standardmäßig kommt ein unbekanntes Drittanbieter-Skript durch, ein unbekanntes iframe wird blockiert.
Nichts von dem, was der Server rendert, hängt vom Cookie des Besuchers ab: Alle bekommen dieselben entschärften Tags, und das Runtime stellt sie im Browser wieder her, in Dokumentreihenfolge, nur für die freigegebenen Kategorien. Der Zustand wird vor dem ersten Bildaufbau auf das html-Element gestempelt – kein Banner, das kurz aufblitzt. Das Schreib-Token wird vor jedem Versand frisch geholt und steckt nie in gecachtem HTML: Sein Abruf ist auf 4 Sekunden gedeckelt, und sein Fehlen blockiert nie eine Entscheidung.
DSGVO, UK PECR, Schweizer revDSG, Loi 25 aus Québec, LGPD, CCPA, POPIA, PIPL, indisches DPDP, dazu ein australisches und ein allgemeines US-Profil. Das Profil ist keine Dekoration: Es entscheidet über das Rechtsmodell (Opt-in, oder erteilt bis zum Widerspruch bei CCPA, US-Allgemein und Australien), über die Anwesenheit des „Do Not Sell or Share“-Links – ein Klick führt das Opt-out wirklich aus, er öffnet kein Panel –, über die Bindungswirkung des Global-Privacy-Control-Signals sowie über Sprache und Aufsichtsbehörde in den erzeugten Dokumenten. Eine Länder-Erkennung gibt es, standardmäßig deaktiviert.
Jede Annahme, Ablehnung, Änderung oder jeder Widerruf landet in einer eigenen Tabelle: Zeile per HMAC-SHA-256 (oder SHA3-256) mit dem Hash der vorherigen signiert, Kopf-Anker außerhalb der Tabelle abgelegt, damit eine Kürzung auffällt. Erfasst werden ein pseudonymes Browser-Token, die gekürzte IP, ein Fingerabdruck des User-Agents, die Seite, das geltende Profil, die exakte Revision des angezeigten Banners und der Fingerabdruck der verlinkten Rechtstexte – nie ein Name, nie eine Anschrift. Ein Button prüft die gesamte Kette und benennt den Bruch; der CSV- oder JSON-Export trägt einen Umschlag, mit dem ein Dritter einen Auszug nachprüfen kann. Aufbewahrung standardmäßig: 5 Jahre.
Wird deaktiviert ausgeliefert, du schaltest ihn ein, wann du willst: Der Scanner läuft über WP-Cron durch deine eigenen Seiten (25 URLs standardmäßig, einstellbar bis 500) und verschränkt dabei Startseite, Seiten, Beiträge, Inhaltstypen und Taxonomien. Drei getrennte, nachvollziehbare Quellen: das ausgelieferte HTML, die Set-Cookie-Header – die einzigen Cookies, die ein Server-Scan beweisen kann, und die einzigen, die nichts blockieren kann – und eine Sonde in der Seite, die angemeldeten Administratoren vorbehalten ist und einfängt, was ein Tag-Manager zur Laufzeit einschleust. Ein Fund wird per Klick zur Katalogregel. Und der Bericht sagt, was er nicht gelesen hat, statt einen unvollständigen Durchlauf als fertiges Inventar auszugeben.
Vier Dokumente entstehen als versionierte WordPress-Seiten – Cookie-Richtlinie, Datenschutzerklärung, Impressum, AGB – in der Sprache der Jurisdiktion (Französisch, Englisch, Portugiesisch), mit der Aufsichtsbehörde und der Tracker-Tabelle aus dem Scan. Die Veröffentlichung wird verweigert, solange ein rechtlich vorgeschriebenes Feld leer ist, und jedes Dokument trägt einen Hinweis, es prüfen zu lassen. Für die Betroffenenrechte öffnet der Shortcode owc_dsar_form sieben Anfragetypen, verifiziert über eine E-Mail-Bestätigung; die Frist nach Artikel 12 Abs. 3 beginnt mit der Identitätsbestätigung, und die Anfrage öffnet parallel eine native WordPress-Anfrage, damit Export oder Löschung alle Plugins der Website erfassen.
Gegenüber Alternativen
Überprüfbare Daten. Nur abhaken, was bei der Konkurrenz tatsächlich existiert.
| Kriterium | OW Consent | Complianz | CookieYes | Borlabs Cookie |
|---|---|---|---|---|
| Geschäftsmodell | Kostenlos, GPL-2.0-or-later | Freemium (Pro kostenpflichtig) | Freemium (Pro kostenpflichtig) | Nicht angegeben |
| Zu aktivierender Lizenzschlüssel | Keiner | Für die Pro-Version | Für die Pro-Version | Nicht angegeben |
| Methode der Tracker-Blockade | Serverseitiges Umschreiben des HTML, 175 mitgelieferte und editierbare Signaturen | Nicht angegeben | Nicht angegeben | Nicht angegeben |
| Verkettetes, überprüfbares Nachweisprotokoll | HMAC-SHA-256-Kette, Anker außerhalb der Tabelle, Prüfung per Klick | Nicht angegeben | Nicht angegeben | Nicht angegeben |
| Mitgelieferte Compliance-Profile | 11 Profile, 9 benannte Rechtsrahmen | Nicht angegeben | Nicht angegeben | Nicht angegeben |
| Konfigurierbares Consent-Banner | 4 Positionen, Theme hell / dunkel / automatisch | |||
| Portal für Betroffenenanfragen | Enthalten: Formular, E-Mail-Verifizierung, Frist nach Art. 12 Abs. 3 | Nicht angegeben | Nicht angegeben | Nicht angegeben |
| Wo die erfassten Einwilligungen liegen | In der Datenbank deines Hostings, kein Drittanbieter-Dienst | Nicht angegeben | Nicht angegeben | Nicht angegeben |
Drei Wege, ein Formular einzubinden
Kein aufgezwungener proprietärer Page Builder. Wähle den Ansatz, der zu deinem Stack passt.
<!-- Was dein Theme ausgibt -->
<script src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
<iframe src="https://www.youtube.com/embed/VIDEO_ID"></iframe>
<!-- Was der Besucher vor jeder Einwilligung bekommt (Strict-Modus, Standard) -->
<script type="text/plain"
data-owc-cat="analytics"
data-owc-vendor="Google"
data-owc-src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
<span class="owc-embed-placeholder" data-owc-cat="social" data-owc-vendor="Google">
<span class="owc-embed-text">Google content blocked: this content uses cookies…</span>
<button type="button" class="owc-embed-accept" data-owc-cat="social">Accept Google</button>
<iframe data-owc-cat="social"
data-owc-src="https://www.youtube.com/embed/VIDEO_ID"
src="about:blank"></iframe>
</span>
<!-- Dieses Markup ist für alle identisch, Page-Cache eingeschlossen.
Erst das Runtime im Browser stellt die Tags der freigegebenen
Kategorien wieder her, in Dokumentreihenfolge. Ein Widerruf der
Einwilligung lädt die Seite neu: Ein bereits ausgeführtes Skript
lässt sich nicht mehr entladen. -->Berechtigte Zweifel, direkte Antworten
Ja, und die Blockade steckt im Markup, nicht in einem Versprechen. Im Strict-Modus, standardmäßig aktiv, wird das Dokument beim Ausliefern abgefangen, und fünf Durchläufe schreiben Skripte, iframes, Pixel, Verbindungs-Hints und Drittanbieter-Medien um. Zwei Grenzen solltest du kennen: Die tatsächliche Blockade stützt sich auf den Katalog mit 175 Signaturen und auf die Signaturen für Inline-Code – ein unbekanntes Drittanbieter-Skript ist standardmäßig erlaubt, ein unbekanntes iframe wird blockiert –, und wenn du den Strict-Modus abschaltest, werden nur die von WordPress registrierten Skripte behandelt, nicht die fest im Theme stehenden. Und schließlich: Ein Dokument über 8 MB oder ein Fehler der Regex-Engine wird unverändert ausgeliefert, statt kaputtzugehen.
Ja, das ist die Vorgabe, aus der alles andere folgt. Das ausgelieferte HTML ist für alle Besucher identisch, entschärfte Tracker eingeschlossen, und der Einwilligungszustand wird im Browser aus dem Cookie rekonstruiert und vor dem ersten Bildaufbau angewendet. Kein Cache kann also die Wahl des einen Besuchers an einen anderen ausliefern. Der Preis dafür wird offen benannt: Der Rechtsrahmen des Besuchers wird clientseitig entschieden, ohne JavaScript wird also nichts erfasst. Ein Besucher ohne JavaScript sieht einen noscript-Block, lädt nichts Nicht-Notwendiges und sitzt nie hinter einem Fenster fest, das er nicht schließen kann.
Es entscheidet über das Rechtsmodell: Opt-in für DSGVO, UK PECR, Schweizer revDSG, Loi 25, LGPD, POPIA, PIPL und DPDP; erteilt bis zum Widerspruch für CCPA, das allgemeine US-Profil und Australien. Es entscheidet auch über die Anzeige des „Do Not Sell or Share“-Links (nur CCPA und US-Allgemein), über die Bindungswirkung des GPC-Signals (dieselben zwei Profile – sonst wird das Signal auf dem Bildschirm gespiegelt, aber nichts erfasst) sowie über Sprache und Aufsichtsbehörde der erzeugten Dokumente. Die Länder-Erkennung ist optional und standardmäßig deaktiviert; sie schlägt geschlossen fehl, also hin zum strengsten Rahmen. Zwei bewusst hingenommene Grenzen: keine Granularität nach US-Bundesstaat oder kanadischer Provinz, und die MaxMind-Datei wird vom Plugin weder heruntergeladen noch lässt sie sich hochladen – du legst sie selbst in uploads/ow-geoip/ ab.
Es beweist so viel, wie der Schlüssel taugt, der es signiert – und das Plugin sagt dir das offen. Jede Zeile wird per HMAC mit dem Hash der vorherigen signiert, und der Kopf-Anker liegt außerhalb der Tabelle, sodass eine Änderung, eine Kürzung oder ein Leeren bei der Prüfung sichtbar wird. Stehen AUTH_KEY und AUTH_SALT aber nicht in deiner wp-config.php und hast du OWC_LEDGER_KEY nicht gesetzt, stammt der Schlüssel aus der Datenbank: Wer Zugriff auf die Datenbank hat, kann die Kette neu signieren. In diesem Fall zeigt das Plugin einen Admin-Hinweis und meldet selbst, dass die Kette nicht mehr fälschungssicher ist, statt es weiterhin zu behaupten.
Nein, und das gehört vor dem Einsatz gesagt statt danach. Das Modul implementiert TCF v2.2 im Browser – die __tcfapi-API, den kodierten TC-String, das Cookie euconsent-v2 –, aber es liefert keine CMP-ID: Die vergibt IAB Europe nach einer Registrierung, und ohne sie gibt das Modul schlicht gar nichts aus. Auch der Umfang ist begrenzt: nur das Core-Segment, keine Publisher Restrictions, zwei unterstützte Special Features, keine globale Geltung. Im Klartext: Es arbeitet als inoffiziell kompatible CMP, was für viele Integrationen reicht, eine offizielle Registrierung aber nicht ersetzt – Google AdSense insbesondere lehnt es im EWR im Produktivbetrieb ab. Das Modul ist standardmäßig deaktiviert.
Eine Deaktivierung rührt keine Daten an: Sie entfernt nur die geplanten Aufgaben. Beim Löschen verschwinden zwei Dinge immer, egal wie du es eingestellt hast: die geplanten Aufgaben und die Tabelle der Betroffenenanfragen – die einzige Tabelle mit direkt identifizierenden Daten Dritter, deren Aufbewahrung nichts mehr begrenzt, sobald das Plugin weg ist. Der Rest – Einwilligungsprotokoll, Scanner-Funde, Tracker-Katalog – bleibt erhalten, es sei denn, du hast die vollständige Löschung ausdrücklich angehakt, die standardmäßig aus ist: Dein Einwilligungsnachweis nach Artikel 7 Abs. 1 soll nicht mit einer Deinstallation verschwinden.
Keine Pro-Version, kein Lizenzschlüssel.
OW Consent erscheint unter der Lizenz GPL-2.0-or-later. Alles, was diese Seite beschreibt, steckt in der ZIP-Datei, die du herunterlädst: kein zurückgehaltenes Modul, kein Abo, keine Obergrenze für Seiten, Einwilligungen oder Anfragen.
- Alles ist dabei: Banner, Tracker-Blockade, Scanner, editierbarer Katalog, verkettetes Protokoll, Dokumentengenerator, Anfragen-Portal, Consent Mode v2, TCF v2.2 und Global Privacy Control.
- Die ZIP-Datei lädst du auf optionweb.dev herunter: Installiere sie über Plugins → Installieren → Plugin hochladen. Mindestens WordPress 6.2 – darunter verweigert das Plugin den Start und sagt es auch, statt ein Banner zu zeigen, das nichts blockiert.
- Kein Drittanbieter-Dienst, keine Lizenzprüfung, kein zusätzlicher Tracker: Einwilligungen, Anfragen und Dokumente bleiben in der Datenbank deines Hostings.
- Der Code steht unter GPL-2.0-or-later, lesbar und änderbar, mit dokumentierten Erweiterungspunkten: die Filter owc_settings, owc_scripts_catalog, owc_blocker_allowlist, owc_policy_template und die Aktionen des Protokolls.