Ich mag Webseiten, die möglichst wenig im Browser ihrer Besucher hinterlassen. Keine unnötigen Cookies, kein Tracking nur deshalb, weil man es technisch irgendwie einbauen kann, und möglichst wenig zusätzliche Technik, die anschließend wieder verwaltet werden muss.
Das bedeutet nicht, dass jeder Cookie grundsätzlich problematisch ist. Manche Funktionen benötigen Cookies oder ähnliche Speichertechniken. Mein Ansatz ist eher pragmatisch: Was ich für den normalen Besucher nicht brauche, muss ich auch nicht unbedingt einsetzen.
Genau bei diesem Gedanken bin ich irgendwann bei den Kommentar-Cookies von WordPress hängen geblieben.
Wofür WordPress Kommentar-Cookies verwendet
Wer als nicht angemeldeter Besucher einen Kommentar schreibt, kann WordPress erlauben, Angaben wie Name, E-Mail-Adresse und Website im Browser zu speichern. Beim nächsten Kommentar müssen diese Angaben dann nicht erneut eingetragen werden.
Das ist bequem. Für die eigentliche Möglichkeit, einen Kommentar zu schreiben, benötige ich diese Komfortfunktion auf meinen Seiten aber nicht unbedingt.
Also stellte sich für mich die ziemlich einfache Frage: Wenn ich diese Speicherung nicht brauche, warum sollte ich sie dann überhaupt anbieten?
Meine Lösung: Kommentar-Cookies deaktivieren
Daraus entstand ein kleines Plugin, dem ich den wenig spektakulären Namen „Kommentar-Cookies deaktivieren“ gegeben habe.
Der Name beschreibt ziemlich genau, was ich damit erreichen wollte. Wenn ich die Kommentarfunktion auf einer WordPress-Seite verwende, sollen die WordPress-eigenen Komfort-Cookies für nicht angemeldete Kommentierende nicht gespeichert werden.
Das hätte ich grundsätzlich auch über Anpassungen am verwendeten Theme lösen können. Genau das wollte ich allerdings vermeiden.
Eine solche Funktion hat für mich eigentlich nichts mit dem Aussehen einer Website zu tun. Außerdem möchte ich nicht bei jedem Theme-Wechsel daran denken müssen, dieselbe Anpassung wieder einzubauen oder dafür eigens ein Child-Theme anzulegen.
Ein kleines separates Plugin erschien mir deshalb als die sauberere Lösung: Die Funktion bleibt unabhängig vom gerade verwendeten Theme an einer Stelle gebündelt.
Was das Plugin technisch macht
WordPress besitzt eine eigene Funktion zum Setzen der Kommentar-Cookies. Mein Plugin entfernt zunächst diese standardmäßig eingebundene WordPress-Funktion aus dem entsprechenden Hook.
Anschließend wird eine eigene kleine Funktion an derselben Stelle eingebunden. Diese übergibt an die WordPress-eigene Cookie-Funktion grundsätzlich, dass keine Zustimmung zur Speicherung vorliegt.
Das hat zwei Auswirkungen: Neue WordPress-Kommentar-Cookies werden für nicht angemeldete Kommentierende nicht gesetzt. Sind bereits entsprechende Kommentar-Cookies vorhanden, weist WordPress den Browser beim nächsten Kommentarversand außerdem an, diese zu entfernen.
Ich greife dabei also nicht selbst mit einer komplett eigenen Cookie-Logik ein, sondern nutze weiterhin die dafür vorgesehene WordPress-Funktion – nur eben konsequent mit deaktivierter Cookie-Zustimmung.
Ein weiterer Nebeneffekt ist praktisch: Da die normale WordPress-Funktion zum Setzen der Kommentar-Cookies nicht mehr am Kommentar-Hook hängt, wird in einer normalen WordPress-Konfiguration auch die dazugehörige Checkbox zum Speichern von Name, E-Mail-Adresse und Website nicht mehr eingeblendet.
Heute kann WordPress einen Teil davon selbst
Zu einer ehrlichen Beschreibung gehört allerdings auch: WordPress hat sich weiterentwickelt.
Aktuelle WordPress-Versionen bringen für Kommentar-Cookies bereits eine eigene Einwilligungslösung mit. Besucher können ausdrücklich zustimmen, dass ihre Angaben für spätere Kommentare im Browser gespeichert werden. Ohne diese Zustimmung werden die entsprechenden Kommentar-Cookies nicht gesetzt.
Wer lediglich verhindern möchte, dass WordPress ungefragt Kommentar-Cookies speichert, benötigt deshalb heute nicht zwingend ein eigenes Plugin.
Mein Plugin geht für meine Installation einen Schritt weiter: Ich möchte diese Komfortfunktion gar nicht erst anbieten. Die Kommentar-Cookies werden grundsätzlich deaktiviert, und die entsprechende Auswahl erscheint im normalen Kommentarformular nicht mehr.
Weniger Cookies statt mehr Cookie-Verwaltung
Grundsätzlich versuche ich lieber, eine technisch nicht benötigte Speicherung zu vermeiden, als sie zuerst einzubauen und anschließend mit einer weiteren Lösung verwalten zu müssen.
Das gilt für mich nicht nur für Kommentar-Cookies. Auch Tracking, eingebundene Dienste und zusätzliche Skripte schaue ich mir lieber einmal mehr an: Brauche ich das wirklich?
Je weniger unnötige Komponenten eine Website verwendet, desto weniger muss später konfiguriert, aktualisiert, erklärt und bei Änderungen erneut überprüft werden.
Eine Website wird durch dieses Plugin allerdings nicht automatisch „cookie-frei“. WordPress verwendet beispielsweise für angemeldete Benutzer und den Administrationsbereich weiterhin Cookies. Auch andere Plugins, eingebettete Inhalte oder externe Dienste können Cookies oder andere Speichermechanismen verwenden.
Mein Plugin kümmert sich ausschließlich um die WordPress-Core-Kommentar-Cookies.
Kein Plugin ersetzt die eigene Prüfung
Ich habe die Lösung selbst unter verschiedenen WordPress-Themes ausprobiert und war mit der Funktionsweise zufrieden.
Daraus folgt trotzdem keine Garantie.
WordPress entwickelt sich weiter, Themes ändern sich und andere Plugins können ebenfalls Einfluss auf Kommentarformulare oder die Verarbeitung von Kommentaren haben. Ein anderes Plugin könnte beispielsweise ebenfalls in denselben WordPress-Hook eingreifen.
Bevor man so einen Code übernimmt, sollte man deshalb prüfen, ob er mit der aktuell verwendeten WordPress-Version noch sinnvoll und technisch korrekt funktioniert.
Das gilt genauso für den Datenschutz. Ein Plugin, das bestimmte Kommentar-Cookies verhindert, macht eine Website nicht automatisch datenschutzkonform. Welche Daten tatsächlich verarbeitet werden und welche Informationen oder Einwilligungen notwendig sind, hängt von der gesamten Website ab.
Vorher Backup, danach testen
Auch bei so einer kleinen Änderung würde ich deshalb ein paar einfache Regeln beachten:
- vorher ein funktionierendes Backup erstellen,
- den Code verstehen oder zumindest fachlich prüfen lassen,
- die Funktion zunächst kontrolliert testen,
- das Kommentarformular als ausgeloggter Besucher ausprobieren,
- im Browser kontrollieren, ob die betreffenden Kommentar-Cookies tatsächlich nicht mehr gesetzt werden,
- gegebenenfalls vorher vorhandene Kommentar-Cookies testen,
- und nach größeren WordPress-Updates noch einmal kontrollieren, ob alles weiterhin wie vorgesehen funktioniert.
Das klingt für ein paar Zeilen Code vielleicht etwas übervorsichtig. Meistens klingt ein Backup allerdings nur so lange übervorsichtig, bis man eines braucht.
Der Code für mein Plugin
Das ist der Code, den ich derzeit für mein Plugin verwende:
<?php
/**
* Plugin Name: WordPress-Kommentar-Cookies deaktivieren
* Description: Verhindert das Setzen der WordPress-Core-Kommentar-Cookies und entfernt bei nicht angemeldeten Kommentierenden vorhandene Kommentar-Cookies beim nächsten Kommentarversand.
* Version: 1.0.0
*/
defined( 'ABSPATH' ) || exit;
remove_action( 'set_comment_cookies', 'wp_set_comment_cookies', 10 );
function sw_disable_comment_cookies( $comment, $user, $cookies_consent ) {
wp_set_comment_cookies( $comment, $user, false );
}
add_action( 'set_comment_cookies', 'sw_disable_comment_cookies', 10, 3 );
Der entscheidende Teil ist recht überschaubar. Zuerst wird die WordPress-eigene Aktion zum normalen Setzen der Kommentar-Cookies entfernt. Danach übernimmt meine Funktion denselben Hook und ruft die WordPress-Funktion mit deaktivierter Cookie-Zustimmung auf.
Der Parameter $cookies_consent wird in meiner Funktion zwar weiterhin entgegengenommen, aber bewusst nicht ausgewertet. Unabhängig davon, welcher Wert ursprünglich übergeben wird, erhält wp_set_comment_cookies() immer false.
Genau das ist beabsichtigt: Auf einer Website, auf der ich diese Komfort-Cookies grundsätzlich nicht verwenden möchte, soll es keine unterschiedliche Behandlung je nach vorheriger Auswahl geben.
Der Code ist als kleine technische Lösung und Ausgangspunkt für die eigene Installation gedacht. Vor der Verwendung sollte er mit der aktuell eingesetzten WordPress-Version geprüft und auf der eigenen Website getestet werden.
Mehr soll das Plugin auch gar nicht sein: eine kleine Funktion für ein kleines Problem – unabhängig vom Theme und ohne daraus gleich das nächste große WordPress-Projekt zu machen.