Zum Inhalt springen
EUID Prüfservice & Prüfsiegel, Startseite
Website prüfen lassen

Prüfpunkt software.cache.html_langSitzung, Cookies und Zahlungsdaten

Wie lange darf der Browser eine Seite Ihrer Website speichern?

Damit eine Website schneller lädt, darf der Browser Dateien zwischenspeichern und beim nächsten Besuch aus seinem Speicher nehmen. Wie lange, bestimmt der Server mit der Kopfzeile Cache-Control. Für Bilder, Schriften und Skripte mit Versionsnummer im Dateinamen sind Wochen und Monate richtig. Für die Seite selbst gilt das nicht: solange die Frist läuft, fragt der Browser nicht nach und zeigt die gespeicherte Fassung. Die Prüfung meldet jede Seite, die der Browser länger als einen Tag ohne Rückfrage nehmen darf.

Ohne Frist schätzt der Browser selbst

Fehlt jede Angabe zur Frist, darf der Browser sie aus dem Datum der letzten Änderung schätzen. Die Norm RFC 9111 nennt als übliche Größe 10 Prozent der Zeit seit dieser Änderung. Eine Seite, die seit 30 Tagen unverändert ist, käme so rund 3 Tage ohne Rückfrage aus dem Speicher. MDN rät deshalb, Cache-Control bei jeder Antwort ausdrücklich zu setzen.

Eine lange Frist lässt sich im Browser kaum zurückholen

Laut MDN bleibt eine Antwort im Browser, bis die Frist abläuft oder der Besucher neu lädt oder seinen Verlauf löscht. Die Kopfzeile Clear-Site-Data kann den Browser-Speicher leeren, wirkt aber erst, wenn dieser Browser eine Antwort Ihres Servers bekommt, und auf gemeinsame Zwischenspeicher wirkt sie gar nicht. Steht heute eine Frist von 30 Tagen, erreicht die Änderung einen Besucher von gestern über die gespeicherte Seite im ungünstigen Fall erst in 29 Tagen.

Der alte Preis steht auf der Seite, der neue in der Kasse

Hat ein Besucher die Produktseite vor einer Preisänderung geöffnet, zeigt sein Browser innerhalb der Frist weiter den alten Preis. Die Kasse rechnet mit dem Preis aus Ihrer Datenbank. War der alte Preis niedriger, sieht der Kunde in der Kasse mehr als erwartet und bricht ab oder fragt nach; war er höher, kauft er womöglich anderswo. Ein gemeinsamer Zwischenspeicher wie ein Content Delivery Network nimmt max-age ebenfalls als Frist, wenn kein s-maxage gesetzt ist. Dann bekommt auch Googlebot die alte Seite. Weicht der Preis dort von Ihren Angaben im Merchant Center ab, kann Google das Produkt ablehnen und prüft erst in den folgenden Stunden oder Tagen erneut.

Alte Preise, Termine und Korrekturen bleiben sichtbar

Ändern Sie einen Preis, einen Termin oder einen Fehler im Text, sieht das jeder, der die Seite innerhalb der Frist schon geöffnet hat, erst nach deren Ablauf. Ein Klick auf einen Link holt die gespeicherte Fassung; nur wer die Seite bewusst neu lädt, bekommt die aktuelle. Der Server erreicht diese Besucher erst wieder, wenn die Frist abgelaufen ist. Das gilt auch für eine Korrektur aus Sicherheitsgründen, etwa ein ausgetauschtes Skript oder ein geändertes Formularziel.

Gemessen wird die Kopfzeile jeder Seite

Die Prüfung liest bei jeder gemessenen Seite, die als text/html kommt, die Kopfzeile Cache-Control. Steht dort max-age mit mehr als 86400 Sekunden, also einem Tag, und weder no-cache noch no-store, nennt der Bericht die Seite mit der Frist in Tagen und der Kopfzeile als Beleg. Das gilt für public und private gleich: private schließt nur gemeinsame Zwischenspeicher aus, im Browser läuft die Frist trotzdem. s-maxage zählt nicht, es gilt nur für Zwischenspeicher wie ein CDN, die der Betreiber selbst leeren kann. Bilder, Schriften und Skripte prüft dieser Prüfpunkt nicht; für sie ist eine lange Frist richtig.

Seiten mit Rückfrage, Dateien mit langer Frist

Ihre Agentur oder Ihr Hoster setzt für Seiten Cache-Control: no-cache und dazu ETag oder Last-Modified. Der Browser darf die Seite dann speichern, fragt aber bei jedem neuen Aufruf kurz beim Server nach, ob sie noch gilt. Ist sie unverändert, antwortet der Server mit 304 ohne Inhalt, und die Seite erscheint fast so schnell wie aus dem Speicher. Wer ohne Rückfrage speichern will, bleibt bei höchstens einem Tag (max-age=86400). Lange Fristen bekommen Bilder, Schriften, Stylesheets und Skripte, deren Dateiname sich bei jeder Änderung ändert, etwa app.3f9c2.js.

Beispiele

Kopfzeilen einer Seite

Nicht erfüllt
Cache-Control: public, max-age=2592000
Erfüllt
Cache-Control: no-cache
ETag: "a1b2c3"

Mit no-cache fragt der Browser bei jedem neuen Aufruf nach. Ist die Seite unverändert, antwortet der Server mit 304 und schickt sie nicht noch einmal.

nginx: Seiten und versionierte Dateien getrennt

Nicht erfüllt
location / {
  expires 30d;
}
Erfüllt
location / {
  add_header Cache-Control "no-cache";
}
location ~* \.(css|js|woff2|webp|png|jpg|svg)$ {
  expires 1y;
}

Ein Jahr passt nur für Dateien, deren Name sich mit jeder Änderung ändert. Behält eine Datei ihren Namen, reicht eine kürzere Frist.

So gehen Sie es an

  1. Lassen Sie Ihre Agentur oder Ihren Hoster die Kopfzeile Cache-Control der Seiten aus dem Bericht ansehen.
  2. Für Seiten stellt sie no-cache mit ETag ein oder eine Frist von höchstens einem Tag.
  3. Bilder, Schriften und Skripte mit Versionsnummer im Namen behalten ihre lange Frist.
  4. Nutzt Ihre Website ein CDN, legt sie dessen Frist mit s-maxage fest und leert es nach jeder Änderung.
  5. Lassen Sie die Website neu messen. Der Bericht zeigt, ob eine Seite noch länger als einen Tag ohne Rückfrage gespeichert wird.

Tipps aus der Praxis

  • Wollen Sie eine lange Frist abbauen, ändern Sie die Kopfzeile so weit vor einer Preisänderung, wie die alte Frist dauert. Erst dann erreicht die neue Angabe alle Besucher.
  • Prüfen Sie eine Korrektur über einen frischen Link. Beim Zurück-Knopf kann der Browser laut MDN eine Momentaufnahme der Seite wiederherstellen, auch mit no-cache.
  • Für Dateien mit Versionsnamen spart immutable weitere Rückfragen: Der Browser fragt dann auch beim Neuladen nicht nach.

Mehr zu diesem Thema

Weiter in der Cybersicherheit

Dieser Prüfpunkt gehört zur Cybersicherheit, Unterthema Sitzung, Cookies und Zahlungsdaten. Gemessen wird er im Prüfbereich Aktualität. Was die Prüfung insgesamt leistet, zeigt die Leistungsseite; wie ein Ergebnis zustande kommt, erklärt das Prüfverfahren.

  • Siegel Digitale Barrierefreiheit
  • Siegel Daten & Recht
  • Siegel Technische Qualität
  • Siegel Digital Excellence
  • Siegel Cyberversicherung

Geprüft. Für eine bessere digitale Zukunft.euid.com