DSGVO

Borlabs Cookie Banner richtig einrichten

· 4 Min. Lesezeit

Borlabs Cookie ist ein Consent-Management-Werkzeug für WordPress — also ein Plugin, das eine Einwilligung einholt, dokumentiert und die davon abhängigen Skripte steuert. Der letzte Teil ist der entscheidende: Ein Banner, das nur fragt, aber nichts blockiert, erzeugt eine Einwilligung, die zum Zeitpunkt der Verarbeitung längst überholt ist.

Die Anforderungen kommen nicht vom Plugin, sondern aus dem Recht. Sie sind der Maßstab, an dem sich jede Konfiguration messen lassen muss.

Was eine wirksame Einwilligung verlangt#

Für das Speichern von Informationen auf dem Endgerät und das Auslesen bereits gespeicherter Informationen gilt in Deutschland § 25 TDDDG (bis 2024 TTDSG), in Österreich § 165 TKG 2021. Diese Norm greift unabhängig davon, ob dabei personenbezogene Daten anfallen — sie erfasst Cookies ebenso wie Einträge im Local Storage oder das Auslesen von Geräteeigenschaften. Ausgenommen ist nur, was für die Übertragung einer Nachricht oder für einen ausdrücklich gewünschten Dienst unbedingt erforderlich ist. Für die anschließende Verarbeitung der so gewonnenen Daten braucht es zusätzlich eine Rechtsgrundlage, in aller Regel die Einwilligung nach Art. 6 Abs. 1 lit. a DSGVO.

Aus Art. 4 Nr. 11 und Art. 7 DSGVO ergeben sich vier Eigenschaften, die eine Einwilligung haben muss:

  • Vorher. Sie muss vor der Verarbeitung vorliegen, nicht währenddessen.
  • Aktiv. Ein vorausgewähltes Häkchen genügt nicht; das hat der EuGH in der Sache Planet49 entschieden und der BGH für Deutschland bestätigt.
  • Freiwillig. Ablehnen muss ebenso zugänglich sein wie Zustimmen, nicht erst hinter einer zweiten Ebene.
  • Widerruflich. Art. 7 Abs. 3 DSGVO verlangt ausdrücklich, dass der Widerruf so einfach ist wie die Erteilung.

Dazu kommt die Nachweispflicht aus Art. 7 Abs. 1: Wer sich auf eine Einwilligung beruft, muss sie belegen können — mit Zeitpunkt, Umfang und der Fassung des Banners, die damals angezeigt wurde.

Wie das Blockieren vor der Einwilligung funktioniert#

Technisch gibt es zwei Mechanismen, und beide muss man kennen, um Lücken zu finden.

Der erste ist die Skriptsteuerung. Der Code eines Dienstes wird nicht fest in die Seite geschrieben, sondern im Plugin hinterlegt und erst ausgeführt, wenn die zugehörige Einwilligung vorliegt. Vorher steht er entweder gar nicht im Dokument oder in einer Form, die der Browser nicht ausführt, etwa mit einem veränderten type-Attribut. Nach der Zustimmung wird er nachgeladen.

Der zweite ist der Content Blocker für eingebettete Inhalte. Videos, Karten und Social-Media-Einbettungen laden sonst beim Seitenaufbau, nicht beim Abspielen — und schon der Abruf teilt dem fremden Server die IP-Adresse und den Besuch mit. Der Blocker ersetzt das iframe durch eine Vorschau. Erst ein Klick lädt den Inhalt und setzt zugleich die Einwilligung für diesen Dienst.

Beide Mechanismen greifen nur bei dem, was durch das Plugin läuft. Alles, was ein Theme, ein anderes Plugin oder ein manuell eingefügtes Snippet direkt in den Quelltext schreibt, bleibt unberührt. Das ist keine Schwäche von Borlabs, sondern eine Eigenschaft jedes Consent-Werkzeugs in WordPress.

Die Fehlkonfigurationen, die immer wiederkehren#

Dienste laufen am Banner vorbei. Ein Tracking-Code steckt in den Theme-Einstellungen oder in einem Snippet-Plugin. Das Banner erscheint, der Code läuft trotzdem sofort. Die Prüfung dafür ist einfach: Cookies löschen, Entwicklerwerkzeuge öffnen, Seite laden und vor jeder Interaktion nachsehen, welche fremden Hosts angesprochen werden. Eine Anleitung dazu steht unter welche Cookies eine Website setzt.

„Notwendig" wird zu großzügig ausgelegt. Reichweitenmessung, Kartendienste, Schriftarten von einem fremden Server und Chat-Widgets sind nicht unbedingt erforderlich im Sinne von § 25 Abs. 2 TDDDG. Wer sie in die nicht abwählbare Gruppe einsortiert, entzieht sie genau der Entscheidung, die das Gesetz verlangt.

Der Widerruf ist unauffindbar. Ein Link im Footer oder ein Schalter in der Datenschutzerklärung reicht aus, muss aber existieren und funktionieren. Häufig wurde er beim Theme-Wechsel entfernt.

Der Seitencache liefert die falsche Zustandsanzeige. Wenn eine Cache-Schicht die Seite samt eingebautem Consent-Zustand ausliefert, sehen alle Besucher denselben — mit dem Ergebnis, dass Skripte ohne Einwilligung starten oder das Banner nie verschwindet. Die Prüfung des Einwilligungsstatus gehört daher hinter den Cache.

Reihenfolge. Wird das Consent-Skript nach den Diensten geladen, die es steuern soll, kommt es zu spät. Sichtbar wird das nur im Netzwerk-Reiter, nicht im Seitenbild.

Die Datenschutzerklärung passt nicht zur Konfiguration. Die Informationspflichten aus Art. 13 DSGVO bestehen unabhängig vom Banner. Stehen dort Dienste, die es nicht mehr gibt, oder fehlen die aktiven, widerspricht sich die Seite selbst.

Ein Banner ist ein Werkzeug, kein Ergebnis#

Der Satz, der die meiste Arbeit spart: Kein Plugin stellt Rechtskonformität her. Es setzt eine Entscheidung um, die vorher getroffen werden muss — welche Dienste es überhaupt geben soll, auf welcher Rechtsgrundlage sie laufen, wohin die Daten fließen und ob dafür ein Auftragsverarbeitungsvertrag vorliegt.

Der Weg dorthin ist unspektakulär: erst eine Bestandsaufnahme aller externen Aufrufe, dann Streichen, was nicht gebraucht wird, dann alles Verbleibende dem Consent-Werkzeug unterstellen, zuletzt die Datenschutzerklärung angleichen. Was das Banner an sich leisten muss und wo die Grenzen der einzelnen Lösungen liegen, ist im Beitrag zum Cookie-Banner in WordPress genauer beschrieben. Ob eine konkrete Einrichtung im Einzelfall trägt, ist eine juristische Bewertung und keine technische.