Skip to content

Alles für WordPress, Webentwicklung — und mehr

🚀 Cookie-freie domain in WordPress: vollständige einrichtungsanleitung

🚀 Cookie-freie domain in WordPress: vollständige einrichtungsanleitung

GTmetrix bewertet Ihre Seite mit 72/100, und die Empfehlungen zeigen „Serve static content from a cookieless domain". Sie klicken darauf und sehen eine Liste mit 40 CSS-Dateien, von denen jede einen Set-Cookie-Header mitschleppt. Bilder, Schriftarten, Skripte, Dutzende von Anfragen, und jede einzelne trägt einen HTTP-Header mit sich, den diese Dateien absolut nicht benötigen.

Das Problem liegt nicht an Ihrem Code. Es handelt sich um eine architektonische Eigenheit: Der Server setzt Cookies auf Domain-Ebene, und der Browser hängt sie pflichtgemäß an jede Anfrage an, selbst an solche, bei denen Authentifizierung und Sitzungen keinen Sinn ergeben. Das Ergebnis: zusätzliche Kilobytes in jeder Antwort, langsameres Laden statischer Inhalte und ein Warnsignal in den Berichten von GTmetrix und Pingdom.

Die gute Nachricht: Das lässt sich in 15 Minuten beheben, ohne das Hosting zu wechseln. Sie benötigen keinen zweiten Server und keinen teuren Enterprise-Tarif. Eine separate Subdomain oder ein CDN genügt, und die statischen Dateien werden ohne Cookies ausgeliefert, während Ihr GTmetrix-Score um 10 bis 15 Punkte steigt.

💡 Kurzüberblick:

  • Verstehen, warum Cookies auf statische Inhalte „durchsickern" und wann das tatsächlich ein Problem darstellt
  • Schrittweise Einrichtung einer separaten Subdomain für wp-content über cPanel, inklusive SQL-URL-Ersetzung
  • Anbindung von KeyCDN über das CDN-Enabler-Plugin als moderne Alternative (5 Minuten, ab 4 $/Monat)
  • Erfahren, warum Cloudflare die GTmetrix-Warnung nicht beseitigt und wann Sie diese ignorieren können

Warum Cookies auf statischen Inhalten landen

Cookies werden auf Domain-Ebene gesetzt. Dabei gibt es jedoch eine oft übersehene Nuance: Subdomains erben die Cookie-Einstellungen von der übergeordneten Domain. Wenn die Seite unter example.com läuft und Cookies für diese Domain setzt, gelangen diese automatisch auch an www.example.com und static.example.com.

Deshalb reicht es nicht, einfach eine Subdomain static.example.com anzulegen. Solange die Hauptseite auf der nackten Domain bleibt, sickern Cookies auf die Subdomain durch. Die Lösung ist einfach, aber nicht intuitiv: Verlagern Sie die Seite auf www.example.com und legen Sie die statischen Inhalte auf static.example.com. Dann gelten die Cookies für www, während static sauber bleibt.

Die zweite Option ist eine vollständig separate Domain. Das funktioniert technisch, ist aber fast nie gerechtfertigt: Eine korrekte Handhabung der Subdomain ist ausreichend.

Und noch etwas: Bei managed WordPress-Hosts wie Kinsta, WP Engine oder SiteGround ist das Problem oft bereits auf Server-Ebene gelöst. Wenn der Tarif „Edge-Caching" oder „CDN inklusive" beinhaltet, ist keine zusätzliche Einrichtung erforderlich.

Methode 1. Separate Subdomain für statische Inhalte über cPanel

Die grundlegende Methode, die auf jedem Hosting mit cPanel funktioniert. Keine Drittanbieter-Dienste, keine monatlichen Zahlungen. Die Idee: Eine Subdomain erstellen, diese mit /wp-content verknüpfen und WordPress anweisen, statische Inhalte darüber auszuliefern.

Subdomain erstellen

Gehen Sie zu cPanel → Bereich „Domains" → „Subdomains". Erstellen Sie die Subdomain static.yoursite.com. Geben Sie im Feld Document Root den Pfad zu wp-content an: In der Regel ist das public_html/wp-content.

Prüfen Sie: Die Hauptseite sollte unter www.yoursite.com laufen. Wenn Sie auf der nackten Domain ohne www sitzen, verschieben Sie die Seite zuerst auf www, andernfalls funktioniert die Methode nicht.

Konstanten in wp-config.php hinzufügen

Öffnen Sie wp-config.php im Wurzelverzeichnis der Seite und fügen Sie zwei Zeilen VOR dem Kommentar /* That's all, stop editing! Happy publishing. */ ein:

1define('WP_CONTENT_URL', 'https://static.yoursite.com');
2define('COOKIE_DOMAIN', 'www.yoursite.com');
PHP-Konstanten WP_CONTENT_URL und COOKIE_DOMAIN in wp-config.php

WP_CONTENT_URL weist WordPress an, alle Inhalte aus /wp-content/ über die neue Subdomain auszuliefern. COOKIE_DOMAIN beschränkt den Geltungsbereich der Cookies auf die www-Subdomain und verhindert so deren Ausbreitung auf static.

URLs bestehender Dateien in der Datenbank ersetzen

Bereits veröffentlichte Beiträge speichern Links zu alten Bild-URLs. Diese müssen per Massenänderung über phpMyAdmin ersetzt werden.

Rufen Sie phpMyAdmin auf (cPanel → Datenbanken), wählen Sie die WordPress-Datenbank aus, Registerkarte SQL. Führen Sie aus:

1UPDATE wp_posts SET post_content = REPLACE(post_content, 'www.yoursite.com/wp-content/', 'static.yoursite.com/');
SQL-Abfrage zum Ersetzen statischer URLs in phpMyAdmin für WordPress

Erstellen Sie vor der Ausführung eine Sicherung der Datenbank. Die SQL-Ersetzung ist irreversibel. Ist die URL falsch, sind die Bilder auf der Seite defekt und Sie müssen aus einem Backup wiederherstellen.

Vor- und Nachteile

Die Methode funktioniert ohne Drittanbieter-Dienste und zusätzliche Kosten. Aber: Manuelle Bearbeitung von wp-config.php und der Datenbank, Risiko von SQL-Fehlern, Notwendigkeit, die Konfiguration zweier Subdomains zu pflegen. Auf einem VPS mit NGINX müssen Sie zudem die Serverkonfiguration bearbeiten, was zusätzliche Komplexität bedeutet.

Für die meisten Seiten gibt es heute eine einfachere Option: CDN.

Methode 2. CDN als moderne Lösung

Ein Content Delivery Network verlagert statische Inhalte auf seine Server und verwendet standardmäßig keine Cookies für Dateien. Sie erhalten zwei Dinge auf einmal: statische Inhalte ohne Cookies plus ein globales Auslieferungsnetzwerk, das die Ladezeit für Besucher von überall auf der Welt beschleunigt.

KeyCDN-Dienst, ein Pay-as-you-go-CDN mit Preisen ab 0,04 $/GB Traffic und einer Mindestzahlung von 4 $/Monat. Für eine durchschnittliche Seite liegen die Kosten bei 4 bis 10 $ pro Monat. Über 60 Points of Presence, integrierte Option „Strip Cookies", die Set-Cookie-Header zwangsweise aus den Antworten entfernt.

Anbindung über CDN Enabler

CDN Enabler, das offizielle KeyCDN-Plugin für WordPress. Version 2.0.8, über 10.000 aktive Installationen, getestet bis WordPress 6.9. Es fängt Seiten ab und schreibt URLs statischer Dateien auf die CDN-Domain um.

Einrichtungsschritte:

  • KeyCDN-Konto erstellen. Der Dienst bietet eine Testphase, Sie können ohne Zahlung testen.

  • CDN Enabler installieren aus dem WordPress-Repository: Plugins → Installieren → Suche nach „CDN Enabler" → Aktivieren.

  • Pull-Zone im KeyCDN-Dashboard anlegen. Die Zone definiert, welche Inhalte das CDN von Ihrer Seite abrufen soll. Geben Sie die Quell-URL an, also die Adresse Ihrer Seite.

Pull-Zone im KeyCDN-Dashboard mit Origin-URL-Feldern anlegen
  • Kopieren Sie die Zone-URL, sie hat das Format https://yourzone.kxcdn.com, und fügen Sie sie in den CDN-Enabler-Einstellungen ein: Einstellungen → CDN Enabler → CDN Hostname.
CDN-Hostname-Feld in den CDN Enabler Plugin-Einstellungen für WordPress
  • Aktivieren Sie Strip Cookies in KeyCDN: Zone Settings → Strip Cookies = Enabled. Diese Option stellt sicher, dass statische Dateien ohne Set-Cookie-Header ausgeliefert werden.

  • Leeren Sie den Website-Cache und überprüfen Sie das Ergebnis in GTmetrix.

CDN Enabler funktioniert mit jedem CDN. Wenn Sie bereits Cloudflare, BunnyCDN oder StackPath nutzen, geben Sie einfach den CDN-Hostnamen Ihres Anbieters an.

Wichtiger Hinweis: Nach dem Deaktivieren des CDN und dem Entfernen des Plugins können Bild-URLs weiterhin auf die CDN-Domain umgeschrieben bleiben. Leeren Sie vor der Deaktivierung den Plugin-Cache und stellen Sie sicher, dass die URLs wieder auf die ursprüngliche Domain verweisen.

Methode 3. Cloudflare, kostenlos, aber mit einem Haken

Cloudflare, das größte CDN mit einem vollständig kostenlosen Tarif. Arbeitet auf DNS-Ebene: Sie leiten die Domain auf die Cloudflare-Nameserver um, und der gesamte Traffic läuft über dessen Netzwerk.

Allerdings gibt es eine Nuance. Cloudflare setzt aus Sicherheitsgründen bei jeder Anfrage einen Service-Cookie _cfduid. Dieser ist entscheidend für den DDoS-Schutz und die Bot-Erkennung und wird selbst dann nicht entfernt, wenn Sie im Pro-Tarif „Strip Cookies" aktivieren.

Wegen _cfduid zeigt GTmetrix weiterhin die Warnung „Serve static content from a cookieless domain" an. Eine 100/100-Bewertung in der YSlow-Metrik ist mit dem kostenlosen Cloudflare technisch nicht möglich. Dabei handelt es sich jedoch um einen Fehlalarm: Statische Inhalte laden über Cloudflare dennoch schnell, und ein einzelner Service-Cookie beeinträchtigt die tatsächliche Performance nicht.

Wenn Ihnen ein maximaler GTmetrix-Score wichtig ist, wählen Sie KeyCDN mit Strip Cookies. Hat die kostenlose Nutzung und der DDoS-Schutz Priorität, erledigt Cloudflare das vollumfänglich.

Wann Sie die GTmetrix-Warnung ignorieren können

Häufige Situation: CDN ist konfiguriert, Strip Cookies ist aktiviert, aber GTmetrix zeigt weiterhin einen Cookieless-Domain-Fehler an. Der Grund: YSlow, die Engine von GTmetrix, prüft nicht, ob Strip Cookies auf CDN-Seite aktiviert ist. Es erkennt eine URL, die der Hauptdomain ähnelt, und setzt mechanisch eine Warnung.

30-Sekunden-Check: Öffnen Sie Chrome DevTools (F12) → Network → wählen Sie eine beliebige statische Datei, CSS, JS oder PNG → Tab Headers → Request Headers. Wenn dort keine Cookie:-Zeile steht, gehen die statischen Inhalte ohne Cookies raus, Sie können die GTmetrix-Warnung ignorieren.

Eine weitere Quelle für Fehlalarme sind Server-Cookies von Analyse- und A/B-Testing-Tools (Google Analytics, Hotjar, VWO). Auch sie erscheinen im Bericht als „überflüssig", obwohl sie die Seitenladezeit nur minimal beeinflussen.

Die tatsächliche Traffic-Reduzierung durch das Entfernen von Cookies von statischen Inhalten liegt bei etwa 5-15% des gesamten Request-Volumens. Keine Revolution, aber jede Millisekunde zählt: Eine Google-Studie zeigte, dass eine Verzögerung von 1 Sekunde die Conversion mobiler Besucher um 20% senkt.

⁉️🤔 Häufig gestellte Fragen

Ist die Einrichtung einer cookielosen Domain zwingend erforderlich?

Nein, das ist keine harte Anforderung. Wenn Sie aber um Geschwindigkeit kämpfen, bringt die Eliminierung unnötiger Cookies von statischen Inhalten messbare Gewinne, besonders auf Seiten mit vielen Medien: Onlineshops, Fotoblogs und Nachrichtenportale. Bei einer Drei-Block-Landingpage ist der Effekt vernachlässigbar.

Was tun, wenn die Seite nach der Bearbeitung der wp-config.php nicht mehr öffnet?

Mit ziemlicher Sicherheit haben Sie sich bei den Konstanten-URLs vertan oder sie NACH der Zeile /* That's all, stop editing! */ platziert. Verbinden Sie sich per FTP mit der Seite, öffnen Sie wp-config.php und prüfen Sie: Die Konstanten müssen VOR diesem Kommentar stehen. Lädt die Seite weiterhin nicht, kommentieren Sie die hinzugefügten Zeilen aus (// am Zeilenanfang), die Seite kehrt in den Ursprungszustand zurück, danach versuchen Sie es erneut mit korrekten URLs.

Kann CDN Enabler mit anderen Caching-Plugins genutzt werden?

Ja, problemlos. CDN Enabler ist kompatibel mit Cache Enabler, WP Rocket, W3 Total Cache und LiteSpeed Cache. Eine Nuance: Wenn Sie WP Rocket einsetzen, wird das CDN in WP Rocket selbst konfiguriert, ein separates CDN-Enabler-Plugin ist dann nicht nötig. Mit anderen Caching-Plugins arbeitet es parallel, Konflikte sind nicht bekannt.

Welches CDN für eine kleine Seite wählen?

Hängt vom Budget und den Prioritäten ab. KeyCDN-Preise (ab 0,04 $/GB, mindestens 4 $/Monat), ein guter Einstieg: Pay-as-you-go, Sie zahlen nur für Traffic. Cloudflare, kostenlos, aber mit einem Service-Cookie und falscher GTmetrix-Warnung. BunnyCDN (ab 0,01 $/GB in Volumentarifen, ab 1 $/Monat Mindestumsatz), günstiger, aber mit weniger Points of Presence. Für eine Seite mit bis zu 10.000 Besuchern pro Monat liegen die CDN-Kosten bei 2-7 $.

Braucht man eine cookielose Domain, wenn das Hosting modern ist?

Managed-WordPress-Hoster, Kinsta, WP Engine, SiteGround, enthalten oft ein integriertes CDN oder Server-Caching, das das Cookie-Problem bereits löst. Prüfen Sie Ihren Tarif: Wenn in der Beschreibung „Edge-Caching" oder „CDN inklusive" steht, ist keine zusätzliche Einrichtung nötig. Auf günstigem Shared Hosting ohne CDN bringt die Einrichtung einer cookielosen Domain einen spürbaren Schub.

Was tun, wenn nach der SQL-Abfrage die Bilder verschwunden sind?

Entweder haben Sie sich in der URL vertan (prüfen Sie die Domain-Übereinstimmung in der Abfrage und den Subdomain-Einstellungen), oder die Subdomain static.yoursite.com zeigt auf das falsche Verzeichnis. Stellen Sie die Datenbank aus dem Backup wieder her und prüfen Sie: Das Document Root der Subdomain sollte public_html/wp-content sein, und die Domain in der SQL-Abfrage muss mit dem übereinstimmen, was in cPanel angelegt wurde (mit www. oder ohne, abhängig von der Einrichtung der Hauptseite).

Welche Methode für Ihre Aufgabe wählen

Wenn die Seite auf günstigem Hosting ohne CDN und ohne Budget für kostenpflichtige Dienste liegt, richten Sie eine separate Subdomain über cPanel ein. Das sind 15 Minuten Arbeit: Subdomain, zwei Zeilen in wp-config.php und eine SQL-Abfrage. Statische Inhalte gehen ohne Cookies raus, GTmetrix steigt. Nachteil: manuelle Wartung und keine globale Beschleunigung.

Wenn Sie bereit sind, 4-10 $ pro Monat zu zahlen, nutzen Sie die KeyCDN + CDN Enabler-Kombination. Dieselbe Aufgabe wird automatisch gelöst, zusätzlich erhalten Sie ein Auslieferungsnetzwerk mit über 60 Points of Presence, Komprimierung und Beschleunigung für Besucher von überall auf der Welt. Für ein Projekt, das Geld verdient oder verdienen soll, rechnet sich CDN sofort.

Und vor allem: Verbeißen Sie sich nicht in GTmetrix-Scores. Echte Geschwindigkeit für Nutzer zählt mehr als Zahlen in einem Bericht. Wenn statische Inhalte ohne Cookies ausgeliefert werden (geprüft via DevTools) und die Seite schneller als 2 Sekunden lädt, ist die Aufgabe gelöst.

Zur Auffrischung des Gesamtbilds zum Thema WordPress beschleunigen hilft der offizielle Leitfaden des WordPress.com-Teams, von Caching bis CDN, mit Live-Messungen und Einrichtung: