Caching bedeutet, ein Ergebnis zu speichern, statt es erneut zu berechnen. Bei einem CMS ist es die wirksamste einzelne Maßnahme für die Ladezeit. Bei einer statischen Seite ist es überflüssig, weil das Ergebnis schon vorliegt.
Die Ebenen
Seiten-Cache
Speichert die fertige HTML-Seite, sodass bei einem Aufruf kein Code ausgeführt und keine Datenbank befragt wird. Bei einem CMS macht das den größten Unterschied: aus einer Serverantwortzeit von mehreren hundert Millisekunden werden wenige Dutzend.
Zwei Umsetzungen: als Plugin im CMS oder serverseitig beim Hoster. Bei Managed WordPress ist Letzteres üblich, und dann ist ein Plugin überflüssig oder sogar schädlich, weil zwei Ebenen sich widersprechen können.
Was nicht zwischengespeichert werden darf: Warenkorb, Kasse, Anmeldebereich, Formularseiten mit Zwischenzustand, personalisierte Inhalte. Nach der Aktivierung müssen diese Bereiche getestet werden.
Objekt-Cache
Speichert Ergebnisse einzelner Datenbankabfragen. Relevant bei Seiten mit dynamischen Bereichen, die nicht vollständig zwischengespeichert werden können, etwa Shops. Für eine Inhaltsseite mit aktivem Seiten-Cache ist der Zusatznutzen gering.
Browser-Cache
Der Browser des Besuchers speichert Dateien lokal, sodass sie beim nächsten Aufruf nicht erneut geladen werden. Gesteuert über Gültigkeitsangaben in den Serverantworten.
Sinnvolle Werte: sehr lang für Dateien mit Versionskennung im Namen, also Stilangaben, Skripte, Schriften und Bilder. Kurz oder ohne Speicherung für HTML-Dokumente, damit Änderungen sichtbar werden.
Der Trick liegt in der Versionskennung: Ändert sich eine Datei, ändert sich ihr Name, und der Browser lädt sie neu. Damit sind sehr lange Gültigkeitszeiten unproblematisch. Moderne Build-Werkzeuge machen das automatisch.
CDN
Ein Verteilernetzwerk liefert Dateien von einem Standort in der Nähe des Besuchers aus. Zwei Nutzen, die zu trennen sind:
Wegverkürzung. Nur relevant bei geografisch verteiltem Publikum. Für eine lokale Zielgruppe praktisch bedeutungslos.
Entlastung und Auslieferungsqualität. Statische Dateien werden vom Netzwerk ausgeliefert statt vom eigenen Server, oft mit automatischer Bildumwandlung und Kompression. Das nützt auch bei lokalem Publikum.
Zu beachten: Ein CDN verarbeitet die IP-Adressen der Besucher und ist damit Auftragsverarbeiter. Es gehört in die Datenschutzerklärung, mit Vertrag. Siehe AV-Vertrag.
Was bei welchem Projekt wirkt
| Projekt | Seiten-Cache | Browser-Cache | CDN |
|---|---|---|---|
| Statischer Build | unnötig | wichtig | nützlich, oft inklusive |
| CMS, lokale Zielgruppe | sehr wichtig | wichtig | optional |
| CMS, überregional | sehr wichtig | wichtig | nützlich |
| Shop | teilweise | wichtig | nützlich |
| Seite mit Echtzeitinhalten | eingeschränkt | wichtig | nützlich |
Die erste Spalte ist die, die den Unterschied macht. Die dritte ist die, über die am meisten geredet wird.
Die typischen Fallen
Zwei Seiten-Caches parallel. Ein Plugin plus serverseitiges Caching. Erzeugt widersprüchliche Zustände und Fehler, die schwer zu finden sind.
Formulare im Cache. Ein zwischengespeicherter Sicherheitstoken führt dazu, dass Absendungen abgewiesen werden. Häufig bei Kommentar- und Kontaktformularen.
Anmeldebereich im Cache. Im schlimmsten Fall sieht ein Besucher eine zwischengespeicherte Seite eines angemeldeten Nutzers.
Cache nach Änderungen nicht geleert. Die eigene Änderung ist nicht sichtbar, und man sucht an der falschen Stelle. Reihenfolge der Prüfung: Browser, CMS, Hoster, CDN.
HTML mit langer Gültigkeit im Browser-Cache. Änderungen erreichen wiederkehrende Besucher tagelang nicht.
CDN als Ersatz für Bildoptimierung. Ein Netzwerk liefert ein zu großes Bild schneller aus, aber es bleibt zu groß. Siehe Bilder optimieren.
Reihenfolge der Einrichtung
- Prüfen, ob der Hoster serverseitig zwischenspeichert. Wenn ja, kein Plugin.
- Wenn nicht: ein Caching-Plugin, eines, und mit Standardeinstellungen beginnen.
- Ausnahmen definieren für Warenkorb, Kasse, Anmeldebereich und Formularseiten.
- Browser-Cache-Zeiten prüfen: lang für Dateien mit Versionskennung, kurz für HTML.
- Kompression aktivieren, üblicherweise Brotli oder gzip.
- Testen: Formulare, Anmeldung, gegebenenfalls Warenkorb.
- Messen, vorher und nachher, mit derselben Methode. Siehe Ladezeit messen.
- CDN erst danach erwägen, wenn die Zielgruppe verteilt ist oder die Auslieferung entlastet werden soll.
Schritt 6 ist der, an dem Caching-Einrichtungen scheitern, und der Fehler ist besonders unangenehm, weil er stumm auftritt: Es kommen einfach keine Formularnachrichten mehr.