Wenn du auf deiner Website über das Cookie Banner deine Einwilligung gibst und beim nächsten Besuch oder Navigieren auf deiner Website das Cookie Banner wieder angezeigt wird, ist deine WordPress REST API höchstwahrscheinlich nicht erreichbar oder Webserverkonfiguration falsch konfiguriert. Wir zeigen dir, wie du das Problem lösen kannst!
Vorbereitung zur Ursachenfindung
Bevor wir uns auf die Suche nach der Ursache machen, müssen wir uns erst einmal ein Bild davon machen, was überhaupt schief läuft.
Als Erstes leere bitte den Cache deiner Website. Das bedeutet Seiten-Caches wie WP Rocket, WP Super Cache, W3 Total Cache, Litespeed Cache oder WP Optimize sowie Objekt-Caches wie Redis. Wenn du auch einen CDN-Cache wie Cloudflare oder Bunny.net verwendest, leere ihn bitte ebenfalls.
Danach gehen wir zur Vorbereitung wie folgt vor (das folgende Verfahren funktioniert für den Google Chrome Browser und in anderen Chromium Browsern):
- Öffne deine Website als ausgeloggter Benutzer
- Öffne die Entwicklertools, indem du mit der rechten Maustaste irgendwo auf deine Website klickst und im Kontextmenü Untersuchen wählst (oder direkt über die
F12
-Taste) - Öffne den Reiter "Network"
- Gib im Eingabefeld für "Filter" (oben links)
consent
ein - Klicke auf "Alle akzeptieren" im Cookie Banner
- Im Netzwerkverkehr sollte eine Zeile mit
content
zu sehen sein. Klicke darauf, um weitere Details zu sehen. - Dort siehst du weitere, verschiedene Registerkarten, die in diesem Artikel für jeden möglichen Fall weiter erläutert werden.
Ursache 1: REST API nicht erreichbar oder falsch konfiguriert
Die häufigste Ursache für ein Cookie Banner, das auf jeder Unterseite auftaucht, ist, dass deine WordPress REST API nicht zugänglich oder falsch konfiguriert ist. Das kann verschiedene Ursachen haben, zum Beispiel wenn du ein (Sicherheits-)Plugin verwendest, dass die REST-API für (ausgeloggte) Nutzer versteckt oder sogar ganz deaktiviert. Für dieses Problem haben wir einen extra Artikel für dich bereitgestellt, den du dir unbedingt ansehen solltest: WordPress REST API antwortet nicht: Wo liegt das Problem?
Real Cookie Banner speichert die im Cookie Banner getroffene Entscheidung in einem Cookie. Wir prüfen, ob der Cookie-Pfad des Cookies für die verwendete Domain gültig ist. Dazu öffnen wir jetzt den Reiter "Cookies" unseres Netzwerkverkehrs und prüfen, ob dort ein gültiger Pfad gespeichert ist.
Wir erwarten, dass hier ein Pfad wie /
steht. Aber wie du im Beispiel oben sehen kannst, enthält der Cookie-Pfad stattdessen eine vollständige URL. Der Grund dafür ist, dass in deinem WordPress-Backend unter Einstellungen > Allgemein in den Feldern "WordPress-Adresse (URL)" und "Website-Adresse (URL)" eine falsche URL gespeichert ist (im Beispiel ein doppeltes s
für https
). Bitte überprüfe, ob die angegebenen URLs die URLs deiner Website sind!
Du hast dort keine URL, sondern einen anderen Pfad als /
? Das ist typisch dafür, dass du die Konstante COOKIEPATH
in deiner wp-config.php
-Datei manuell gesetzt hast. Bitte überprüfe, ob diese Einstellung wirklich zum Pfad der aufgerufenen Website passt! Wenn das nicht der Fall ist, kannst du dies als Ursache des Problems ausschließen, denn der Cookie-Pfad kann z.B. bei einer Multisite auch anders konfiguriert sein.
Für jedes Cookie kannst du festlegen, wie darauf zugegriffen werden kann. Dies wird über die sogenannte HttpOnly
-Flag gesteuert. Real Cookie Banner selbst erwartet kein HttpOnly
-Cookie (da das Cookie clientseitig über JavaScript gelesen wird), was bedeutet, dass in der Spalte HttpOnly
kein Häkchen gesetzt werden muss. Wenn du, wie der Screenshot oben zeigt, auch ein Häkchen gesetzt hast, hast du das wahrscheinlich manuell für deinen Server konfiguriert (vielleicht hast du ein Tutorial, wie du deine Cookies absichern kannst, gelesen). Um das Problem zu lösen, solltest du deine .htaccess
-Datei für Apchache2-Webserver oder die NGINX-Konfiguration für NGINX-Webserver überprüfen und deinen Hosting-Anbieter kontaktieren!
Beispiel für eine solche Serverkonfiguration in einer .htaccess
Datei:
Header always edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure
Du siehst keine “Response Cookies", sondern nur “Request Cookies" an der im Screenshot gezeigten Stelle? Das liegt daran, dass du eine Serverkonfiguration verwendest, die alle Cookies verwirft. Du solltest dich auf jeden Fall an deinen Hosting-Anbieter wenden und gemeinsam prüfen, warum dies so konfiguriert wurde. Wenn es sich um ein Sicherheitsaspekt handelt, solltest du auf jeden Fall die Real Cookie Banner Cookies (beginnend mit real_cookie_banner
) ausschließen, damit sie immer zurückgegeben werden.
Wenn du nichts explizit umkonfiguriert hast, sodass alle Cookies verworfen werden, kann auch ein CDN dafür verantwortlich sein, dass alle Cookies gelöscht werden. Bitte überprüfe, ob die Deaktivierung des CDN das Problem löst, und wenn ja, wende dich bitte an deinen CDN-Anbieter!
Ursache 5: Langsame Antwortzeit deiner WordPress Instanz
Auch ein häufiger Grund für einen immer aufpoppenden Cookie Banner ist schlicht und einfach die Antwortzeit deiner WordPress Installation. Wie oben im Screenshot zu sehen, kann es bei langsam-optimierten WordPress Installation vorkommen, dass das Speichern einer Einwilligung mehrere Sekunden dauert.
Am besten wartest du mal 15 Sekunden nach der Einwilligung bevor du zur nächsten Seite navigierst und prüfst, ob der Cookie Banner anschließend nicht erneut auftaucht. Ist dies der Fall, musst du hier entsprechend deine WordPress Installation optimieren.
Um zu prüfen, ob Real Cookie Banner an der langen Antwortzeit verantwortlich ist, gehe bitte wie folgt vor:
- Deaktiviere Real Cookie Banner Plugin (deine Daten bleiben erhalten!)
- Rufe folgende URL deiner Website auf:
deine-domain.de/wp-json
- Wenn der Aufruf auch entsprechend lange dauert, solltest du dringend deine WordPress Installation optimieren bzw. prüfen, welches Plugin für diese hohe Antwortzeit verantwortlich ist - wende dich hier am besten an deinen technischen Ansprechpartner.