CDN und Cache: Setup für schnelle Shops
Seiten-Cache ist nicht dasselbe wie ein CDN. Ich zeige, wie du LiteSpeed Cache, Redis und Cloudflare im Shop einrichtest, was du cachst und was nie, und wie du bei Preis- und Bestandsaenderungen sauber purgst.
Seiten-Cache baut fertiges HTML auf dem Server, das CDN verteilt Dateien naeher zum Nutzer
Seiten cachst du für nicht eingeloggte Besucher, Warenkorb und Kasse bleiben frisch
ESI cacht den statischen Teil der Seite, der Mini-Warenkorb bleibt live
Object Cache mit Redis entlastet die Datenbank bei schweren WooCommerce-Abfragen
Der Purge muss Preis- und Bestandsaenderungen erfassen, sonst sieht der Kunde Altes
[/dwb_keytakeaways]
Seiten-Cache und CDN sind zwei verschiedene Dinge
Die meisten werfen Cache und CDN in einen Topf, dabei sind es zwei getrennte Schichten mit unterschiedlichen Aufgaben. Bevor du im Shop irgendetwas einstellst, lohnt es sich, diesen Unterschied zu verstehen, denn davon hängt die gesamte weitere Konfiguration ab.
- Seiten-Cache: Der Server speichert fertiges HTML einer Seite, damit es nicht bei jedem Aufruf neu gebaut wird. Ohne Cache startet WordPress bei jedem Besuch PHP, fragt die Datenbank und setzt die Seite zusammen. Mit Cache liefert er die fertige Datei in Sekundenbruchteilen.
- CDN (Content Delivery Network): Ein Netz aus Servern weltweit, das Kopien deiner statischen Dateien (Bilder, CSS, JavaScript) nahe beim Nutzer hält. Ein Kunde aus München lädt das Bild von einem Server in der Nähe und nicht vom anderen Ende Europas.
- Object Cache: Eine dritte Schicht, die Ergebnisse von Datenbankabfragen im Speicher hält. Dazu gleich mehr, denn im Shop spielt sie eine große Rolle.
In einem schnellen Shop arbeiten diese Schichten zusammen. Der Seiten-Cache verkürzt die Antwortzeit des Servers, das CDN verkürzt den Datenweg zum Nutzer, und der Object Cache entlastet die Datenbank. Werden sie verwechselt, aktiviert jemand meist zwei Dinge gleichzeitig, die sich gegenseitig stören.
| Schicht | Aufgabe | Wo aktiv | Beispiel-Tool |
|---|---|---|---|
| Seiten-Cache | fertiges HTML statt Neuaufbau | dein Server | LiteSpeed Cache |
| Object Cache | Abfrage-Ergebnisse im Speicher | dein Server (RAM) | Redis |
| CDN | statische Dateien naeher zum Nutzer | Server weltweit | Cloudflare |
Was du im Shop cachst und was nie
Das ist die wichtigste Entscheidung der gesamten Konfiguration und die Stelle, an der Fehler am leichtesten passieren. Ein Shop hat öffentliche Seiten, die für alle gleich aussehen, und private Seiten, die die Daten einer konkreten Person zeigen.
Öffentliche Seiten cachst du bedenkenlos für nicht eingeloggte Besucher: Startseite, Kategorien, Produktseiten, Blogbeiträge, Kontaktseite. Sie bringen den meisten Traffic und profitieren am stärksten vom Cache.
Private Seiten müssen immer frisch sein und landen nie im normalen Seiten-Cache: Warenkorb, Mein Konto, Kasse, Zahlungsseite. Sie zeigen die Daten einer eingeloggten Person, Preise nach Rabatt, den Inhalt des Warenkorbs. Landeten sie im Cache, sähe der Kunde fremde Daten, und das wäre ein Desaster.
Der gefährlichste Cache-Fehler im Shop ist ein versehentlich gecachter Warenkorb oder eine Kontoseite. Der Kunde sieht dann den Warenkorb oder die Daten eines anderen. Gute Plugins schliessen diese Seiten automatisch aus, aber prüfe nach jedem Theme- oder Plugin-Wechsel, ob die Ausschlüsse noch greifen.
ESI: eine Seite mit dynamischem Warenkorb cachen
Hier entsteht ein natürliches Problem. Eine Produktseite ist größtenteils statisch, aber im Header steckt ein Mini-Warenkorb, der die Anzahl der Produkte und den Betrag für eine konkrete Person zeigt. Wie cachst du die Seite, wenn ein Teil davon immer anders ist?
Die Lösung heißt ESI (Edge Side Includes). Dabei cachst du den statischen Teil der Seite, während kleine dynamische Fragmente (Mini-Warenkorb, Begrüßung des eingeloggten Kunden) live ausgeliefert werden. LiteSpeed Cache hat dafür einen eigenen WooCommerce-Bereich. So lädt die Produktseite blitzschnell aus dem Cache, und der Mini-Warenkorb im Header zeigt immer den aktuellen Stand.
Das ist ein wichtiger Unterschied zu einfachen Cache-Plugins, die Seiten mit veränderlichem Fragment entweder gar nicht cachen oder komplett cachen und dann den falschen Warenkorb-Stand zeigen. ESI liefert beides: die Geschwindigkeit des Caches und korrekte Daten.
Object Cache mit Redis: die Datenbank entlasten
WooCommerce fragt beim Aufbau einer einzigen Seite die Datenbank gern dutzende Male ab: Preise, Bestände, Attribute, Varianten, Optionen. Bei wenig Traffic schafft die Datenbank das problemlos. Bei großem Katalog und Traffic aus Werbung wird sie zum Engpass.
Object Cache speichert die Ergebnisse dieser Abfragen über Redis im RAM. Statt die Datenbank immer wieder nach denselben Daten zu fragen, holt der Shop sie in Mikrosekunden aus dem Speicher. Das Ergebnis: weniger Last auf der Datenbank, stabilere Antwortzeiten und weniger Einbrüche bei Lastspitzen.
- Kleiner Shop mit gutem Seiten-Cache: Redis ist nicht zwingend, der Seiten-Cache deckt den Grossteil des Traffics von nicht eingeloggten Besuchern ab.
- Großer Katalog, viele eingeloggte Kunden, Traffic aus Werbung: Hier hilft Object Cache spürbar, denn eingeloggte Nutzer umgehen den Seiten-Cache und jede ihrer Aufrufe belastet die Datenbank.
- B2B-Shop mit Preisen nach Login: Object Cache oft wichtiger als der Seiten-Cache, weil fast jeder Nutzer eingeloggt ist.
Prüfe zuerst, ob dein Hosting überhaupt Redis anbietet. Viele günstige Pakete haben es nicht, und ein Object-Cache-Plugin ohne laufendes Redis bringt nichts. Gutes Shop-Hosting in Deutschland hat Redis mit einem Klick im Panel verfügbar.
Cloudflare als CDN: Bilder und statische Dateien naeher zum Kunden
Cloudflare ist das beliebteste CDN und im Shop ideal, um statische Dateien zu verteilen: Produktbilder, CSS, JavaScript und Schriften. Der Kunde lädt sie von einem Server in seiner Nähe statt von deinem Hosting, was die Ladezeit verkürzt, besonders bei vielen Produktfotos.
Cloudflare verbindest du mit LiteSpeed Cache über einen API-Token mit der Berechtigung zum Leeren des Zonen-Caches. So leert Cloudflare seine Kopie mit, wenn LiteSpeed nach einer Inhaltsaenderung den Cache leert, und es bleibt keine alte Version stehen. Das ist entscheidend, denn ein CDN ohne synchronisierten Purge liefert eine veraltete Datei sonst monatelang aus.
Eine Bedingung wird leicht übersehen: Aktiviere den Seiten-Cache nicht gleichzeitig in Cloudflare und LiteSpeed. Diese beiden Seiten-Cache-Schichten kommen sich in die Quere, und das Ergebnis sind veraltete Seiten und schwer zu findende Fehler. Den Seiten-Cache überlässt du LiteSpeed, Cloudflare übernimmt statische Dateien und das Netzwerk. Bilder kannst du zusätzlich über ein Bild-CDN mit WebP-Konvertierung ausliefern, was ihre Größe weiter senkt.
Für einen deutschen Shop gehören Kundendaten und Bestellungen auf einen Server in Deutschland oder der EU. Beim CDN schließt du einen Auftragsverarbeitungsvertrag mit Cloudflare ab, nutzt EU-Regionen und dokumentierst beides in Datenschutzerklaerung und Cookie-Banner. Das CDN beschleunigt dann nur die statischen Dateien, die DSGVO-relevanten Daten bleiben in der EU.
Purge: wann und was leeren
Ein Cache ist nur so gut wie sein Auffrischen. Leert er sich nach einer Inhaltsaenderung nicht, sieht der Kunde ein altes Angebot. Leert er sich zu oft, verlierst du den Nutzen des Caches. Die Kunst ist, genau das zu leeren, was sich geändert hat.
- Preisaenderung eines Produkts: Leere den Cache dieser Produktseite. Den Preis selbst holst du auf der Seite am besten frisch per AJAX, um nicht die ganze Seite zu leeren.
- Bestandsaenderung: Leere die Produktseite und frische Kategorien nur auf, wenn sich der Lagerstatus ändert (von verfügbar auf nicht verfügbar und umgekehrt).
- Neuer Beitrag oder Inhaltsbearbeitung: Leere die Seite selbst plus verbundene Seiten (Startseite, Beitragsliste).
- Globale Änderung (Theme, Menü): Leere den gesamten Cache, denn die Änderung betrifft alle Seiten.
LiteSpeed Cache hat dafür fertige Regeln im WooCommerce-Bereich. Du kannst einstellen, dass es das Produkt bei einer Bestands- oder Mengenaenderung leert und Kategorien nur bei einer Änderung des Lagerstatus auffrischt. Genau diese Präzision unterscheidet einen gut eingestellten Shop von einem, in dem der Cache entweder alte Preise zeigt oder sich so oft leert, dass er nichts bringt.
Wirkung auf die Core Web Vitals
Cache und CDN verbessern vor allem das LCP, also die Zeit, bis der Hauptinhalt der Seite erscheint. Denn sie packen die zwei größten Ursachen für ein langsames LCP an: die langsame Serverantwort und weit entfernte Dateien.
- LCP: Der Seiten-Cache verkürzt die Serverantwort, das CDN beschleunigt das Laden des Hauptbilds. Das ist meist der größte Gewinn.
- CLS: Indirekt, denn schneller geladene Bilder mit festen Groessenangaben verursachen seltener Layout-Spruenge.
- INP: Cache behebt kein schweres JavaScript, aber ein entlasteter Server verarbeitet Aufgaben schneller, die Reaktion auf einen Klick wird also flüssiger.
In der Praxis schafft ein Shop, der ohne Cache eine Seite in zwei oder drei Sekunden aufbaut, mit Seiten-Cache und CDN oft deutlich unter einer Sekunde bis zum ersten Inhalt. Den größten Sprung sieht man auf Handys bei schwachem Empfang, also genau dort, wo Google die Felddaten misst.
Konfiguration Schritt für Schritt und häufige Fehler
Die Reihenfolge, die am meisten bringt und die wenigsten Probleme macht, sieht so aus:
Cache und CDN im Shop einrichten
- Aktiviere LiteSpeed Cache und setze den Seiten-Cache nur für nicht eingeloggte Besucher
- Prüfe, ob Warenkorb, Konto, Kasse und Zahlung vom Cache ausgeschlossen sind
- Aktiviere ESI im WooCommerce-Bereich, damit der Mini-Warenkorb live bleibt
- Aktiviere Object Cache mit Redis, wenn das Hosting es bietet und du viel Traffic hast
- Verbinde Cloudflare über den API-Token und richte die Purge-Synchronisation ein
- Stelle sicher, dass der Seiten-Cache nur in LiteSpeed läuft, nicht in Cloudflare
- Setze Purge-Regeln: Produkt bei Preis- und Bestandsaenderung, Kategorie bei Verfügbarkeit
- Miss das LCP vor und nach dem Setup, am besten am Handy, und vergleiche die Werte
Die häufigsten Fehler, die ich bei Shop-Audits sehe, sind immer dieselben. Erstens ein gecachter Warenkorb oder Konto, weil jemand aggressiven Cache ohne Ausschlüsse aktiviert hat. Zweitens der Seiten-Cache gleichzeitig in Cloudflare und LiteSpeed, was veraltete Seiten erzeugt. Drittens ein fehlender Purge-Sync mit dem CDN, sodass der Kunde einen alten Preis sieht, obwohl im Shop längst ein neuer steht. Viertens ein aktivierter Object Cache ohne laufendes Redis auf dem Hosting, also eine Einstellung, die nichts bewirkt.
Wenn du einen Shop neu aufsetzt oder einen bestehenden beschleunigen willst, mache ich das bei DawidWeb regelmäßig: Konfiguration von LiteSpeed Cache für WooCommerce, Object Cache mit Redis, Anbindung von Cloudflare mit korrektem Purge und Messung der Core Web Vitals vor und nach dem Setup. Webseiten und Shops baue ich ab 600 Euro, mit über 120 umgesetzten Projekten, und ein Angebot für dein konkretes Vorhaben bekommst du innerhalb von 24 Stunden.
Häufige Fragen
Was ist der Unterschied zwischen Seiten-Cache und CDN?
Der Seiten-Cache speichert fertiges HTML auf deinem Server, damit es nicht bei jedem Aufruf neu erzeugt wird, der Server antwortet also schneller. Ein CDN ist ein Netz aus Servern weltweit, das Kopien deiner Dateien (Bilder, CSS, JavaScript) naeher beim Nutzer haelt und so den Datenweg verkuerzt. Das sind zwei verschiedene Schichten, die in einem schnellen Shop zusammenarbeiten, nicht sich ersetzen.
Kann ich den ganzen WooCommerce-Shop cachen?
Nein. Startseite, Kategorien, Produktseiten und Blogbeitraege sind perfekte Kandidaten fuer den Cache fuer nicht eingeloggte Besucher. Warenkorb, Mein Konto, Kasse und Zahlungsseite muessen aber immer frisch sein, weil sie die Daten einer konkreten Person zeigen. Plugins wie LiteSpeed Cache schliessen diese Seiten automatisch aus, aber pruefe es immer, denn ein Fehler hier bedeutet, dass ein Kunde den Warenkorb eines anderen sieht.
Was ist Object Cache mit Redis und brauche ich das?
Object Cache speichert im Arbeitsspeicher die Ergebnisse von Datenbankabfragen, die WooCommerce dutzende Male pro Seite wiederholt. Redis haelt diese Daten im RAM, der Shop quaelt die Datenbank also nicht staendig. Bei einem kleinen Shop mit gutem Seiten-Cache ist es nicht zwingend, aber bei grossem Katalog, vielen eingeloggten Kunden und Traffic aus Werbung entlastet Redis den Server spuerbar und glaettet Lastspitzen.
Wie richte ich den Cache-Purge bei Preis- oder Bestandsaenderungen ein?
In LiteSpeed Cache gibt es Regeln, die den Cache der Produktseite nach einer Preis- oder Bestandsaenderung leeren und Kategorien nur dann auffrischen, wenn sich der Lagerstatus aendert. Preis und Bestand auf der Seite holst du am besten frisch per AJAX, damit nicht bei jeder kleinen Aenderung die ganze Seite geleert wird. So sieht der Kunde nie einen veralteten Preis oder ein als verfuegbar markiertes Produkt, das es nicht mehr gibt.
Reicht Cloudflare statt eines Cache-Plugins?
Nicht ganz. Cloudflare verteilt statische Dateien und Bilder hervorragend und bietet schnelle Verbindungen weltweit, ist aber kein vollwertiger Ersatz fuer den Seiten-Cache auf WordPress-Ebene. Am besten arbeitet ein Schichtmodell: LiteSpeed Cache baut den Seiten-Cache und steuert den Purge, Redis macht Object Cache, und Cloudflare beschleunigt statische Dateien und Bilder. Wichtig: Aktiviere den Seiten-Cache nicht gleichzeitig in Cloudflare und LiteSpeed, das fuehrt zu Konflikten und veralteten Seiten.
Ist Cloudflare DSGVO-konform fuer einen deutschen Shop?
Cloudflare bietet einen Auftragsverarbeitungsvertrag und laesst sich so konfigurieren, dass der Traffic ueber Rechenzentren in der EU laeuft. Fuer einen Shop in Deutschland gilt: AVV abschliessen, EU-Regionen nutzen und das in der Datenschutzerklaerung sowie im Cookie-Banner sauber dokumentieren. Den eigentlichen Shop solltest du ohnehin auf einem Server in Deutschland oder der EU hosten, damit Bestellungen und Kundendaten DSGVO-konform liegen. Das CDN beschleunigt dann nur die statischen Dateien davor.
Brauchst du Hilfe bei deinem Projekt?
Ich baue WordPress-Webseiten und Shoper-Shops ab 600 €. Shoper Partner, 120+ Projekte.
- Antwort innerhalb von 24h
- Zertifizierter Shoper Partner
- 120+ abgeschlossene Projekte
- DSGVO-konform, volle Datensicherheit