Zum Inhalt springen
Core Web Vitals Spezialisten

Caching-Strategien, die jede Anfrage beschleunigen

Ohne durchdachtes Caching berechnet Ihr Server jede Seite von Grund auf neu — egal ob dieselbe Anfrage zehn Sekunden zuvor schon gestellt wurde. Wir implementieren mehrstufige Caching-Architekturen, die Browser, Server und CDN intelligent zusammenspielen lassen und die Antwortzeit dauerhaft auf unter 100 Millisekunden senken.

Browser-Caching Server-Cache CDN-Caching Cache-Invalidierung

95%

Cache-Trefferquote in optimierten Projekten (Projekterfahrung)

3ms

Antwortzeit bei Cache-Treffern aus dem In-Memory-Cache (Projekterfahrung)

80%

weniger Serverlast nach vollständiger Caching-Implementierung (Projekterfahrung)

50+

optimierte Projekte mit Caching-Implementierung

Caching ist der wirksamste Einzelhebel zur Reduktion von Server-Antwortzeiten. Während Server-Optimierungen wie Datenbanktuning und PHP-FPM-Konfiguration die Verarbeitungszeit jedes Requests senken, reduziert Caching die Anzahl der Requests, die überhaupt verarbeitet werden müssen. Ein korrekt konfigurierter Browser-Cache verhindert, dass Assets erneut vom Server geladen werden. Ein Reverse-Proxy-Cache beantwortet identische Anfragen aus dem Speicher. Ein CDN-Edge-Cache liefert Inhalte vom nächstgelegenen Server. Das Zusammenspiel dieser Schichten entscheidet darüber, ob Ihre Website unter Last stabil bleibt oder in die Knie geht. Wir analysieren Ihre aktuelle Caching-Konfiguration im Rahmen unserer technischen Performance-Analyse und implementieren eine Strategie, die alle Ebenen berücksichtigt.

Die vier Ebenen moderner Caching-Architekturen

Effektives Caching findet nicht auf einer einzelnen Ebene statt, sondern als koordiniertes Zusammenspiel mehrerer Schichten. Jede Schicht hat ihre eigene Stärke: Der Browser-Cache eliminiert überflüssige Netzwerkanfragen. Der Applikations-Cache speichert das Ergebnis teurer Datenbankabfragen. Der Reverse-Proxy-Cache fängt vollständig gerenderte Seiten ab, bevor die Anwendung überhaupt kontaktiert wird. Das CDN schließlich reduziert die physische Distanz zwischen Server und Nutzer auf ein Minimum. Wir implementieren alle vier Schichten aufeinander abgestimmt, sodass jede Anfrage so früh wie möglich abgefangen wird.

Browser-Cache

Der Browser speichert statische Assets lokal auf dem Endgerät. Bei wiederholten Besuchen werden CSS, JavaScript, Bilder und Schriftarten direkt aus dem lokalen Cache geladen — ohne jede Netzwerkanfrage. Richtig konfiguriert eliminiert der Browser-Cache beim Folgebesuch bis zu 90 Prozent aller Requests (Projekterfahrung).

Applikations-Cache

Der Applikations-Cache speichert berechnete Werte, Datenbankabfrageergebnisse und Fragment-HTML im Arbeitsspeicher — typischerweise in Redis oder Memcached. Statt dieselbe SQL-Abfrage mehrfach auszuführen, liefert die Anwendung das gecachte Ergebnis in unter einer Millisekunde zurück.

Reverse-Proxy-Cache

Ein Reverse Proxy wie Varnish oder nginx-Cache speichert vollständig gerenderte HTML-Seiten. Anfragen von anonymen Besuchern werden direkt aus dem Proxy beantwortet, ohne dass PHP, die Datenbank oder die Anwendungslogik involviert sind. Das entlastet den Server bei Traffic-Spitzen dramatisch.

CDN-Edge-Cache

Ein Content Delivery Network verteilt gecachte Inhalte auf Edge-Server weltweit. Nutzer erhalten Ressourcen vom geografisch nächstgelegenen Knoten — bei deutschem Publikum in der Regel aus Frankfurt oder Amsterdam mit unter 20 Millisekunden Latenz, statt von einem einzelnen Ursprungsserver.

Browser-Caching: Netzwerkanfragen eliminieren

Browser-Caching wird über HTTP-Response-Header gesteuert, die der Server bei jeder Antwort mitsendet. Diese Header teilen dem Browser mit, wie lange eine Ressource zwischengespeichert werden darf und unter welchen Bedingungen sie erneut validiert werden muss. Die wichtigsten Header sind Cache-Control, ETag und Last-Modified. Eine häufige Fehlerquelle ist das Fehlen dieser Header bei statischen Assets: Ohne Caching-Direktiven speichert der Browser Assets entweder gar nicht oder für sehr kurze Zeit, was zu unnötigen Netzwerkanfragen bei jedem Folgebesuch führt.

Für statische Assets — CSS, JavaScript, Bilder, Schriftarten — setzen wir Cache-Control: public, max-age=31536000, immutable. Das entspricht einem Jahr Cachezeit, die das immutable-Direktiv als unveränderlich markiert. Browser müssen die Ressource bei Seiten-Refreshes nicht erneut validieren, was die Ladezeit für Folgebesuche weiter verkürzt. Damit diese langen Cache-Laufzeiten keine Deployment-Probleme verursachen, implementieren wir Content-Hashing: Jede geänderte Datei erhält einen neuen Fingerprint im Dateinamen (z. B. app.a3f9c2.js). Damit wird der Browser-Cache automatisch invalidiert, ohne dass wir ihn manuell leeren müssen — eine Technik, die als Cache-Busting bekannt ist.

Cache-Control-Header

Wir konfigurieren differenzierte Cache-Control-Direktiven: max-age für die maximale Cachezeit, stale-while-revalidate für nahtlose Aktualisierungen im Hintergrund und no-store für sensible, nutzerspezifische Inhalte wie Warenkörbe oder Kontoansichten.

Content-Hashing

Build-Tools erzeugen für jede Datei einen Hash basierend auf dem Dateiinhalt. Ändert sich die Datei, ändert sich der Hash — und der Browser lädt die neue Version. Unveränderte Dateien werden aus dem Cache bedient, was Deployment-Zyklen beschleunigt und den Datenverbrauch der Nutzer reduziert.

Conditional Requests

ETag- und Last-Modified-Header ermöglichen bedingte Anfragen. Der Browser fragt den Server, ob sich eine Ressource seit dem letzten Abruf geändert hat. Hat sie sich nicht geändert, antwortet der Server mit HTTP 304 (Not Modified) ohne Dateitransfer — spart Bandbreite und reduziert die wahrgenommene Ladezeit.

Server-seitiges Caching: Redis, Memcached und OPcache

Auf Server-Ebene unterscheiden wir zwischen drei Arten von Caches: dem PHP-OPcache, der kompilierten PHP-Bytecode im Shared Memory hält, dem Applikations-Cache für Datenbankabfrageergebnisse und berechnete Werte, sowie dem Fragment-Cache für einzelne HTML-Blöcke. Alle drei arbeiten komplementär und adressieren unterschiedliche Engpässe in der Anfrageverarbeitung. In der Praxis reduziert die Kombination dieser Schichten die PHP-Ausführungszeit pro Request um 50 bis 80 Prozent (Projekterfahrung).

Caching und TTFB: zwei Seiten derselben Medaille

Gut konfiguriertes Caching senkt die TTFB auf Werte, die ohne Cache schlicht unerreichbar wären. Für eine vollständige Analyse beider Aspekte empfehlen wir unsere kombinierte TTFB-Optimierung, die Server-Konfiguration und Caching gemeinsam betrachtet.

Reverse-Proxy-Caching mit Varnish und nginx

Ein Reverse Proxy ist die wirksamste Maßnahme gegen hohe Server-Last. Varnish und nginx speichern vollständig gerenderte HTTP-Antworten im Arbeitsspeicher und liefern sie bei identischen Folge-Anfragen in unter 5 Millisekunden aus — ohne dass PHP, die Datenbank oder die Anwendungslogik überhaupt kontaktiert werden. In Projekten mit gut konfiguriertem Reverse-Proxy-Cache beantwortet der Proxy über 90 Prozent aller Anfragen direkt aus dem Cache (Projekterfahrung). Das bedeutet konkret: Neun von zehn Seitenaufrufen kosten den Anwendungsserver keinen einzigen CPU-Zyklus.

Wie ein Reverse-Proxy-Cache Anfragen verteilt

Cache-Treffer vs. Cache-Fehltreffer

Bei einem Cache-Treffer liefert der Proxy die gespeicherte Antwort in 2 bis 5 Millisekunden direkt aus dem Speicher. Bei einem Cache-Fehltreffer — etwa beim ersten Aufruf einer Seite oder nach einer Invalidierung — leitet der Proxy die Anfrage an die Anwendung weiter, speichert die Antwort und liefert sie gleichzeitig an den Nutzer. Alle nachfolgenden Anfragen für dieselbe URL werden wieder aus dem Cache bedient. Die Cache-Trefferquote entscheidet darüber, wie viel Last der Anwendungsserver tatsächlich tragen muss.

  • Cache-Treffer: 2-5 ms Antwortzeit aus dem In-Memory-Speicher
  • Cache-Fehltreffer: Anfrage wird einmalig von der Anwendung berechnet und dann gecacht
  • Grace-Modus: Auslieferung abgelaufener Inhalte während der Hintergrund-Revalidierung
  • Health Check: automatisches Failover bei Backend-Problemen

Die größte Herausforderung beim Reverse-Proxy-Caching ist die korrekte Behandlung von Cookies und personalisierten Inhalten. Standardmäßig cachen Varnish und nginx keine Anfragen, die Cookies enthalten — weil Cookies auf personalisierte Inhalte hindeuten. Das ist korrekt für eingeloggte Nutzer, aber falsch für anonyme Besucher mit Cookie-Banner- oder Analytics-Cookies. Wir konfigurieren die Cache-Bypass-Logik so, dass echte Personalisierungs-Cookies (Session-ID, Warenkorb) den Cache überspringen, während harmlose Tracking-Cookies ignoriert werden und der Cache aktiv bleibt. Damit erreichen wir hohe Cache-Trefferquoten auch bei Websites mit Cookie-Consent-Bannern.

CDN-Caching: Globale Auslieferung mit lokaler Geschwindigkeit

Ein Content Delivery Network ergänzt das Server-seitige Caching um eine geografisch verteilte Auslieferungsschicht. Statt alle Anfragen an einen einzelnen Ursprungsserver zu schicken, werden gecachte Inhalte von Edge-Servern in der Nähe der Nutzer ausgeliefert. Für Websites mit primär deutschem Publikum sind das Edge-Knoten in Frankfurt, Amsterdam und Paris mit Antwortzeiten unter 20 Millisekunden. Für internationale Projekte reduziert ein CDN die Ladezeiten für Besucher aus Amerika oder Asien um 200 bis 400 Millisekunden (Projekterfahrung).

Statisches Asset-Caching

CSS, JavaScript, Bilder und Schriftarten werden am Edge gecacht und direkt an Nutzer in der Nähe ausgeliefert. Content-Hash-basiertes Cache-Busting ermöglicht Cache-Laufzeiten von einem Jahr ohne Deployment-Probleme. Der Ursprungsserver wird von Asset-Anfragen vollständig entlastet.

Dynamisches Edge-Caching

Auch HTML-Seiten lassen sich am Edge cachen, wenn die Invalidierungsstrategie stimmt. Cache-Tags und Surrogate Keys ermöglichen gezielte Invalidierung einzelner Seiten bei Content-Änderungen, ohne den gesamten Edge-Cache zu leeren. So kombinieren wir Caching-Effizienz mit aktuellen Inhalten.

DDoS-Schutz und Lastverteilung

Ein CDN absorbiert Traffic-Spitzen und DDoS-Angriffe am Edge, bevor sie den Ursprungsserver erreichen. Volumetrische Angriffe werden durch die verteilte Infrastruktur abgepuffert. Gleichzeitig verhindert Rate-Limiting am Edge, dass Bot-Traffic den Cache vergiftet.

Cache-Invalidierung: Aktualität trotz langer Cache-Zeiten

Cache-Invalidierung — das rechtzeitige Verwerfen veralteter Einträge — ist die technisch anspruchsvollste Komponente jeder Caching-Strategie. Zu kurze Cache-Zeiten verschenken den Performance-Gewinn, zu lange Cache-Zeiten führen dazu, dass Nutzer veraltete Inhalte sehen. Wir implementieren Invalidierungsstrategien, die eine hohe Cache-Trefferquote mit aktuellen Inhalten verbinden, und unterscheiden dabei zwischen drei grundlegenden Ansätzen.

Caching für CMS und Shop-Systeme

Jedes System bringt eigene Caching-Ebenen, Konfigurationsparameter und Invalidierungsbesonderheiten mit. Generische Caching-Konfigurationen passen nicht auf alle Systeme. Wir kennen die systemspezifischen Besonderheiten für alle gängigen Plattformen und implementieren maßgeschneiderte Caching-Strategien, die das volle Potenzial der jeweiligen Plattform ausschöpfen.

WordPress

Redis-Object-Cache für Datenbankabfragen, Full-Page-Cache für anonyme Besucher, Fragment-Cache für Widgets und Sidebar-Elemente. Korrekte Invalidierung bei Post-Aktualisierungen und Plugin-Aktionen. Wir beschreiben die Details auf der WordPress-Performance-Seite.

Shopware CE

HTTP-Cache für alle Product-Listing-Seiten, Produkt-Detailseiten und CMS-Seiten. Redis als Session-Store und Applikations-Cache. Korrekte Invalidierung über den Shopware-Event-Bus bei Produkt-, Preis- und Lageränderungen für optimale Shop-Performance.

TYPO3, Drupal, Contao

TYPO3-Caching-Framework mit Redis-Backend, Tag-basierte Invalidierung über Cache-Tags des Page-Tree. Drupal-Dynamic-Page-Cache und Cache-API. Contao-Page-Cache mit konfigurierbaren Ausnahmen für interaktive Elemente. Systemspezifische Konfiguration für maximale Cache-Trefferquote.

Caching allein reicht nicht

Caching löst das Problem der wiederholten Verarbeitung identischer Anfragen. Für erstmalige Anfragen (Cache-Fehltreffer) ist die rohe Server-Performance entscheidend. Eine vollständige Server-Optimierung stellt sicher, dass auch Cache-Fehltreffer schnell beantwortet werden.

Caching messen und überwachen

Caching ist kein reines Einrichtungsprojekt. Neue Features, Content-Strukturänderungen und Traffic-Muster können die Cache-Effizienz über Zeit degradieren. Wir richten Monitoring ein, das die Cache-Trefferquote, die TTFB bei Cache-Treffern und Cache-Fehltreffern sowie die Invalidierungshäufigkeit dauerhaft überwacht. Kritische Abweichungen lösen automatische Alerts aus. Alle Metriken werden im Rahmen eines regelmäßigen Performance-Audits auf Basis der aktuellen Nutzungsmuster optimiert.

  • Cache-Hit-Rate: Anteil der Anfragen, die aus dem Cache beantwortet werden — Zielwert über 85 Prozent beim Reverse-Proxy-Cache
  • TTFB-Differenzierung: Separate Messung der TTFB für Cache-Treffer (sollte unter 20 ms liegen) und Cache-Fehltreffer (Maßstab für die rohe Server-Performance)
  • Cache-Größe und Eviction-Rate: Überwachung des genutzten Cache-Speichers; hohe Eviction-Raten zeigen an, dass der Cache zu klein für den Arbeits-Datensatz ist
  • Invalidierungsfrequenz: Zu häufige Invalidierungen können die Cache-Trefferquote senken — ein Hinweis auf suboptimale TTL-Werte oder zu aggressive Invalidierungslogik
  • Cache-Vergiftung erkennen: Anomalien in den gecachten Inhalten, die durch falsche Vary-Header oder fehlerhafte Cache-Key-Konfigurationen entstehen

Typische Caching-Konfiguration: Schritt für Schritt

Häufig gestellte Fragen zu Caching-Strategien