Die Konfiguration einer robusten Cloudflare-CDN-Caching-Richtlinie gehört zu den wirkungsvollsten Engineering-Aufgaben, um eine Enterprise-Website im Jahr 2026 auf Geschwindigkeit zu optimieren. Viele Web-Plattformen leiden unter hoher Latenz, weil jede Nutzeranfrage zum Origin-Datenbankserver reisen muss, um Seiten zu rendern. Diese Abhängigkeit vom Origin verzögert die Geschwindigkeitsmetriken First Contentful Paint (FCP) und Largest Contentful Paint (LCP), während das Speichern statischer Seitenlayouts und Asset-Komponenten an Edge-Standorten weltweit schnelle, latenzarme Antworten vom nächstgelegenen Edge-Standort liefert. Dieser Leitfaden schlüsselt die Caching-Mechanik, die Edge-Cache-TTL-Regeln und die dynamischen Cookie-Bypass-Konfigurationen auf.
[!TIP] Tipp zur Caching-Optimierung: Vermeiden Sie das Caching von HTML-Seiten, die Details eingeloggter Nutzer enthalten. Konfigurieren Sie Ihre Cache Rules stets so, dass das Edge-Caching umgangen wird, wenn bestimmte Session-Cookies (etwa WordPress-Cookies oder benutzerdefinierte Auth-Token) in den Request-Headern erkannt werden.
Wichtigste Erkenntnisse:
- Cloudflare CDN Caching reduziert Datenbankabfragen an den Backend-Server und senkt so die Hosting-Kosten.
- Cache Rules erlauben Entwicklern, benutzerdefinierte TTL-Werte je nach Inhaltstyp und Verzeichnis festzulegen.
- Der Einsatz von Cache-Everything-Regeln erfordert die Konfiguration von Session-Cookie-Bypässen, um das Auslaufen von Nutzerdaten zu verhindern.
- Statische Seiten direkt von Edge-Standorten auszuliefern hilft Websites, die Core Web Vitals auf Mobilgeräten zu bestehen.
Caching-Konfigurationen: Page Rules vs. Cache Rules
Um das Beste aus Ihren Delivery-Pipelines herauszuholen, müssen Sie das passende Steuerungsmodell im Dashboard wählen. Gemäß den Caching-Richtlinien aus den Cloudflare Developer Docs werden die veralteten Page Rules durch modulare Cache Rules ersetzt. Entwickler sollten daher diese Konfigurationen umsetzen:
Standardmäßig cachen CDN-Netzwerke nur Medienformate, Stylesheets und Skripte. Folglich müssen Sie drei zentrale Asset-Optionen konfigurieren:
- HTML-Caching: Für sofortige Seitenladezeiten müssen Sie das CDN anweisen, die HTML-Dokumentstruktur zu cachen. Dadurch werden Datenbankabfragen gestoppt.
- Cache-Control-Header: Konfigurieren Sie Ihren Symfony- oder PHP-Backend-Server so, dass er benutzerdefinierte
s-maxage-Direktiven sendet, die den Edge-Servern mitteilen, wie lange die Seiten gespeichert werden sollen. Zusätzlich ermöglicht dies benutzerdefinierte TTL-Regeln. - Browser-Cache-TTL: Legen Sie kürzere Browser-Cache-Lebensdauern fest (z. B. 4 Stunden), damit Nutzer Aktualisierungen erhalten, wenn Sie Site-Layouts ändern. Dies verhindert Layout-Unstimmigkeiten.
Bei interaktiven Web-Portalen können Sie nicht alle Seiten pauschal cachen. Daher müssen Sie zwei dynamische Bypass-Regeln einrichten:
- Session-Bypässe: Erstellen Sie Regeln, die das CDN anweisen, das Caching zu umgehen, wenn eine Anfrage Authentifizierungs- oder Session-Cookies mit sich führt, sodass eingeloggte Nutzer stets personalisierte Antworten erhalten, während anonyme Besucher weiterhin aus dem Edge-Cache bedient werden.
- Query-String-Sortierung: Konfigurieren Sie den Edge-Datenbank-Cache so, dass er geringfügige Analyse-Variablen (wie UTM-Tags) bei der Auswertung der Cache-Keys ignoriert. Dies verhindert eine Fragmentierung des Caches.
Um eine Enterprise-Edge-Caching-Strategie sicher auszurollen, arbeiten Sie diese technische Validierungssequenz durch. Setzen Sie diese vier Optimierungsschritte um:
- HTTP-Header prüfen: Stellen Sie sicher, dass Ihr Origin-Server saubere
Cache-Control- undVary-Header ohne Auth-Blöcke sendet. - Modulare Cache Rules entwerfen: Konfigurieren Sie gezielte Cache Rules, um statische Kategorieverzeichnisse bis zu 30 Tage zu speichern.
- Authentifizierungs-Ausnahmen erstellen: Erstellen Sie Regeln, die den Edge-Cache umgehen, wenn Login-Cookies erkannt werden.
- Purge-API-Webhooks bereitstellen: Konfigurieren Sie Datenbank-Speicheraktionen so, dass sie automatisierte Purge-API-Anfragen auslösen, wenn Sie Seiten aktualisieren.
Performance-Vergleich: Edge-Caching vs. Origin-Fetch
Um die Geschwindigkeitsvorteile zu veranschaulichen, führt die folgende Tabelle tatsächliche Ladezeitmetriken auf:
| Performance-Metrik | Origin-Server-Fetch (kein CDN-Cache) | Edge-Cache-Hit (CDN aktiv) | Erwartete Geschwindigkeitsverbesserung |
|---|---|---|---|
| Time to First Byte (TTFB) | 450 - 800 Millisekunden | 15 - 35 Millisekunden | Bis zu 95% schnellere erste Serverantwort |
| Mobiles LCP (größtes Bild) | 3.8 Sekunden (schlecht) | 1.4 Sekunden (gut) | Core Web Vitals sauber bestehen |
| Origin-CPU-Last | Hoch (jede Seite fragt die Datenbank ab) | Minimal (Edge bewältigt 90% der Hits) | Geringere Hosting-Kosten und höhere Stabilität |
Voraussetzungen
Bevor Sie das Dashboard anfassen, stellen Sie sicher, dass Sie Folgendes bereit haben:
- Eine Domain, die bereits über Cloudflare geproxyt wird (die Orange-Cloud-DNS-Einstellung, nicht grau/DNS-only).
- Zugriff auf Ihre Origin-Konfiguration – Nginx, Apache oder die Anwendungsschicht –, damit Sie Response-Header setzen können.
- Ein API-Token mit dem Geltungsbereich Zone → Cache Purge, falls Sie Purges automatisieren möchten. Erstellen Sie es unter My Profile → API Tokens.
- Eine Möglichkeit, rohe HTTP-Header zu inspizieren:
curlauf der Kommandozeile oder den Network-Tab in den Chrome DevTools. - Eine Staging-URL oder einen Pfad mit geringem Traffic, auf dem Sie experimentieren können, bevor Sie etwas site-weit ausrollen.
Ein Free- oder Pro-Tarif reicht aus, um jeden Schritt unten zu befolgen. Cache Rules sind in allen Tarifen verfügbar, auch wenn einige Cache-Key-Optionen und Tiered Cache höheren Stufen vorbehalten sind.
Schritt 1: Korrekte Cache-Control-Header vom Origin senden
Cloudflare behandelt eine Antwort nur dann als cachebar, wenn Ihr Origin dies nicht aktiv untersagt. Der mit Abstand häufigste Grund, warum HTML nie gecacht wird, ist ein Origin, der bei jeder Anfrage einen Set-Cookie-Header oder ein restriktives Cache-Control zurückgibt.
Setzen Sie explizite Direktiven am Origin. In Nginx:
1location ~* \.(css|js|woff2|jpg|png|webp|svg)$ {
2 add_header Cache-Control "public, max-age=31536000, immutable";
3}
4
5location / {
6 # HTML: short browser life, long shared (edge) life
7 add_header Cache-Control "public, max-age=0, s-maxage=86400";
8}
Die s-maxage-Direktive zielt auf Shared Caches wie die Cloudflare-Edge ab, während max-age=0 den Browser des Besuchers zur Revalidierung zwingt, sodass er nach einem Deploy niemals veraltetes HTML sieht. Das immutable-Token bei fingerprinted Assets weist Browser an, diese überhaupt nicht mehr zu revalidieren.
Für eine anwendungsgesteuerte Antwort (PHP oder Symfony) drücken Sie dieselbe Absicht im Code aus:
1$response->setPublic();
2$response->setMaxAge(0); // browser
3$response->setSharedMaxAge(86400); // edge / s-maxage
Authentifizierte oder personalisierte Antworten müssen sich explizit ausschließen, sonst könnte eine zu weit gefasste Regel die Seite eines Nutzers einem anderen ausliefern:
1Cache-Control: private, no-store
Schritt 2: HTML mit einer Cache Rule cachefähig machen
Standardmäßig markiert Cloudflare HTML als DYNAMIC und speichert es nie. Um das zu ändern, erstellen Sie eine Regel unter Caching → Cache Rules → Create rule.
Schreiben Sie einen Ausdruck, der die zu cachenden Seiten erfasst und dabei alles Dynamische ausschließt:
1(http.host eq "example.com"
2 and not starts_with(http.request.uri.path, "/wp-admin")
3 and not starts_with(http.request.uri.path, "/cart")
4 and not starts_with(http.request.uri.path, "/checkout")
5 and not starts_with(http.request.uri.path, "/my-account"))
Legen Sie anschließend die Regel-Aktionen fest:
- Cache eligibility: Eligible for cache – das moderne Äquivalent zum alten „Cache Everything“-Verhalten.
- Edge TTL: Use cache-control header if present, damit das in Schritt 1 gesetzte
s-maxagegewinnt; als Fallback ein fester Wert wie 1 Tag, falls der Header fehlt. - Browser TTL: Respect origin.
Schritt 3: Einen Cookie-Bypass hinzufügen, damit eingeloggte Nutzer nie gecacht werden
Dies ist der Schritt, den die meisten Anleitungen auslassen – und derjenige, der Daten preisgibt, wenn sie es tun. Fügen Sie eine zweite Regel hinzu, die oberhalb der Eligibility-Regel platziert wird und einen Bypass erzwingt, sobald ein echtes Session-Cookie vorhanden ist. Cloudflare wertet Cache Rules von oben nach unten aus, sodass eine frühere Bypass-Regel bei authentifizierten Besuchern stets gewinnt.
1http.cookie contains "wordpress_logged_in_"
2or http.cookie contains "wp-postpass_"
3or http.cookie contains "woocommerce_items_in_cart"
4or http.cookie contains "comment_author_"
Setzen Sie die Aktion auf Bypass cache. Bei Nicht-WordPress-Stacks ersetzen Sie die Cookie-Namen durch die Session-Kennung Ihres Frameworks – PHPSESSID, laravel_session, connect.sid und so weiter. Fassen Sie den Geltungsbereich eng: Würde hier ein breites Analyse-Cookie wie _ga matchen, würde der Cache versehentlich auch für jeden anonymen Besucher umgangen.
Schritt 4: Den Cache-Key normalisieren
Zwei URLs, die sich nur durch einen Tracking-Parameter unterscheiden, sollten sich ein gecachtes Objekt teilen. Öffnen Sie innerhalb der Eligibility-Regel Cache Key → Query String, wählen Sie Ignore specific query string parameters und listen Sie die Analyse-Keys auf:
1utm_source, utm_medium, utm_campaign, utm_term, utm_content, fbclid, gclid
Dadurch werden /pricing?utm_source=newsletter und /pricing?gclid=123 auf einen einzigen Cache-Eintrag zusammengeführt, was Ihre Hit-Ratio erhöht, statt sie über Tausende nahezu identischer Keys zu fragmentieren.
So überprüfen Sie einen Cache-HIT oder -MISS
Nehmen Sie nie an, dass eine Regel funktioniert – messen Sie es. Jede Antwort, die Cloudflare ausliefert, trägt einen cf-cache-status-Header. Fordern Sie dieselbe URL zweimal an und beobachten Sie, wie er sich ändert:
1curl -sI https://example.com/ | grep -i cf-cache-status
2# First request: cf-cache-status: MISS
3# Second request: cf-cache-status: HIT
Die Werte, denen Sie begegnen werden, und was jeder bedeutet:
cf-cache-status | Bedeutung | Was zu tun ist |
|---|---|---|
| HIT | Direkt von der Edge ausgeliefert | Funktioniert wie vorgesehen |
| MISS | Noch nicht gecacht; vom Origin geholt und nun gespeichert | Erneut anfordern, um zu bestätigen, dass es zu einem HIT wird |
| DYNAMIC | Cloudflare stufte es als nicht cachebar ein | Regel greift nicht oder Origin verbietet das Caching |
| BYPASS | Eine Regel oder ein Cookie-Bypass hat den Cache übersprungen | Bei eingeloggten Anfragen erwartet |
| EXPIRED | TTL abgelaufen, mit dem Origin revalidiert | Normal; Edge TTL erhöhen, wenn es zu oft passiert |
| REVALIDATED | Veraltet, per ETag als noch frisch bestätigt | Normal |
Wenn Sie nur immer DYNAMIC sehen, greift die Eligibility-Regel nicht. Prüfen Sie den Hostnamen im Ausdruck und stellen Sie dann sicher, dass der Origin kein Cache-Control: private oder Set-Cookie auf dem HTML-Dokument sendet.
Häufige Fallstricke und Fehlerbehebung
- Ein
Set-Cookiebei jeder Antwort. Cloudflare cacht keine Antwort, die ein Cookie setzt. Analytics-Plugins, CSRF-Token und A/B-Testing-Tools hängen häufig eines an das HTML-Dokument an. Verlagern Sie diese Logik in eine asynchrone Anfrage oder entfernen Sie den Header auf cachebaren Pfaden. BYPASSbei anonymen Besuchern. Fast immer eine zu breit gefasste Cookie-Bypass-Regel – ein generisches Cookie wie_ga, das Ihren Ausdruck matcht. Beschränken Sie den Bypass ausschließlich auf echte Session-Cookies.- Veraltete Seiten nach einem Deploy. Die Edge TTL macht ihren Job; Sie haben schlicht das Purgen vergessen. Lösen Sie beim Veröffentlichen einen gezielten Purge aus, statt die TTL auf wenige Sekunden zu verkürzen.
- Ignorierte Vary-Header. Cloudflare variiert seinen Cache nur nach
Accept-Encoding; es hält keine separaten Kopien für ein beliebigesVary: User-AgentoderVary: Cookievor. Liefern Sie gerätespezifisches Markup über responsives CSS oder einen Worker aus, statt sich auf Vary zu verlassen. - Eingeschalteter Development Mode. Er umgeht den Cache drei Stunden lang und lässt jede Antwort stillschweigend nicht cachebar erscheinen. Stellen Sie sicher, dass er aus ist, bevor Sie testen.
Produktionsüberlegungen und automatisiertes Purgen
Sobald sich ein einzelner Pfad korrekt verhält, weiten Sie die Regel während eines Zeitfensters mit geringem Traffic auf die gesamte Site aus und beobachten Sie unter Caching → Overview Ihre Hit-Ratio – eine gesunde statische Site liegt bequem über 90%.
Verdrahten Sie Ihr CMS so, dass es nur das Geänderte purged statt der gesamten Zone. Ein gezielter Purge per URL hält benachbarte Seiten im Cache warm:
1curl -X POST \
2 "https://api.cloudflare.com/client/v4/zones/${ZONE_ID}/purge_cache" \
3 -H "Authorization: Bearer ${CF_API_TOKEN}" \
4 -H "Content-Type: application/json" \
5 --data '{"files":["https://example.com/pricing"]}'
Rufen Sie dies aus Ihrem Publish-Hook auf, damit die Aktualisierung eines Redakteurs innerhalb von Sekunden live geht, während alles andere gecacht bleibt. Für große Kataloge gruppieren Sie zusammengehörige URLs hinter einem Cache Tag (Enterprise) oder purgen per Präfix, und aktivieren Sie Tiered Cache, um die globale Hit-Ratio zu steigern, indem Misses über ein regionales Parent geleitet werden, bevor sie überhaupt Ihren Origin erreichen.
Arbeiten Sie mit einer geprüften UK-Cloudflare-Beratung zusammen
Diese Caching-Entscheidungen richtig zu treffen, schützt Ihre Origin-Server und beschleunigt die Seitenauslieferung für jeden Besucher. Mecanik bietet professionelle Dienste für technische SEO-Audits und Infrastruktur-Skalierung über unsere Seite Website-Entwicklung . Wir sind auf Symfony-Edge-Integrationen, benutzerdefinierte Cloudflare Cache Rules und Edge-native Deployments spezialisiert. Kontaktieren Sie uns noch heute, um Ihren technischen Scoping-Workshop zu vereinbaren.
Häufig gestellte Fragen (FAQ)
Was ist Cloudflare CDN Caching? Cloudflare CDN Caching ist der Prozess, statische Kopien der Seiten, Bilder und Skriptdateien Ihrer Website auf Edge-Servern rund um die Welt zu speichern. Diese Konfiguration erlaubt es, Nutzeranfragen vom nächstgelegenen physischen Server auszuliefern, was die Ladezeiten der Website reduziert.
Wie cache ich HTML-Seiten, ohne Nutzerdaten preiszugeben? Um HTML sicher zu cachen, konfigurieren Sie eine Cache Rule mit einer „Bypass Cache“-Aktion, die auslöst, wenn Session- oder Admin-Cookies in den Request-Headern vorhanden sind. Dieses Setup stellt sicher, dass eingeloggte Portal-Nutzer dynamische Inhalte stets aus der Origin-Datenbank abrufen.
Was ist der Unterschied zwischen Edge TTL und Browser TTL? Edge TTL (Time-To-Live) bestimmt, wie lange die Cloudflare-CDN-Server Ihre Inhalte speichern, bevor sie eine frische Kopie von Ihrem Origin-Server anfordern. Browser TTL hingegen legt fest, wie lange der lokale Browser-Cache des Besuchers die Dateien behält.
Warum beeinflusst Query-String-Caching die Website-Performance? Wenn Query-Strings (wie UTM-Tracking-Tags) nicht normalisiert werden, behandelt das CDN jede Variante als eindeutige URL und erzeugt doppelte Anfragen an Ihren Origin-Server. Die Konfiguration einer Cache-Key-Normalisierung verhindert diese Crawl-Duplizierung.
Kann Edge-Caching meine Core-Web-Vitals-Werte verbessern? Ja, das Ausliefern Ihrer HTML- und Medien-Assets direkt von Edge-Servern minimiert die Time-to-First-Byte (TTFB) und die Largest-Contentful-Paint-Zeiten (LCP). Folglich verbessert diese Caching-Strategie direkt Ihr mobiles Page-Speed-Ranking.
Kommentare