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

Prüfpunkt co2.cache_schwachDatenmenge je Aufruf

Warum sollen Bilder, Skripte und Stylesheets zwischengespeichert werden?

Öffnet ein Besucher eine Website ein zweites Mal oder wechselt er auf eine Unterseite, bekommt er Logo, Schriften, Stylesheets und Skripte aus dem Zwischenspeicher des Browsers, wenn der Server das erlaubt. Die Prüfung sieht nach, welcher Anteil der statischen Dateien das erlaubt. Liegt er unter 50 %, entsteht der Befund.

Ohne Angabe schätzt der Browser, wie lange eine Datei gilt

Wie Zwischenspeicher arbeiten, regelt der Internetstandard RFC 9111 vom Juni 2022, Nachfolger von RFC 7234. Fehlt eine Angabe zur Gültigkeit und schickt der Server das Datum der letzten Änderung mit, dürfen Browser selbst schätzen: höchstens einen Bruchteil der Zeit seit dieser Änderung, als üblichen Wert nennt der Standard 10 %. Ein Logo, das vor einem Jahr geändert wurde, gilt dann rund fünf Wochen, ein Stylesheet von gestern gut zwei Stunden. Die Angabe immutable kam 2017 mit RFC 8246 dazu: Sie sagt dem Browser, dass sich eine Datei mit Versionskennung im Namen nicht mehr ändert, und erspart ihm auch beim Neuladen die Nachfrage beim Server.

Ein Viertel der Websites gibt keine Speicherdauer an

Der Web Almanac 2024 zählt die Websites, die weder Cache-Control noch die ältere Angabe Expires senden: 24,9 % am Desktop und 25,1 % am Telefon, kaum weniger als 2022. Die Autoren sehen darin eine große Gelegenheit, unnötige Übertragungen zu sparen. Logo, Schriften, Stylesheet und Skripte sind auf jeder Unterseite dieselben. Fehlt die Angabe, hängt es von der Schätzung des Browsers ab, ob er sie auf der nächsten Seite erneut anfragt. Mit einer klaren Gültigkeit lädt ein Besucher, der mehrere Seiten ansieht, diese Dateien einmal.

public und ein Jahr Gültigkeit gelten für Dateien, nie für Seiten mit Kundendaten

Die Einstellung public mit einer Gültigkeit von einem Jahr passt zu Bildern, Schriften, Skripten und Stylesheets mit Versionskennung. Auf Seiten mit persönlichen Daten, etwa Warenkorb, Kundenkonto oder Bestellbestätigung, hat sie nichts verloren. Nach RFC 9111 bedeutet private, dass kein geteilter Zwischenspeicher wie ein CDN oder ein Firmen-Proxy die Antwort speichern darf, und no-store, dass gar kein Speicher sie behält. Eine zu weit gefasste Regel in der Server-Konfiguration, etwa für alle Dateien statt für den Ordner mit Versionskennung, kann persönliche Seiten in einen geteilten Speicher bringen. Was bei Seiten mit Cookies gilt, beschreibt der Prüfbereich Aktualität.

Was als zwischenspeicherbar zählt

Gezählt werden die Dateien, die das Dokument einbindet: Skripte, Stylesheets, Bilder, Schriften und Mediendateien. Eine Datei gilt als zwischenspeicherbar, wenn der Server einen ETag mitsendet oder in Cache-Control eine Gültigkeit (max-age), immutable oder public angibt; no-store oder no-cache heben das auf.

Wie der Anteil in den Punktwert eingeht

Der Cache-Anteil zählt 15 % des CO₂-Punktwerts, im Verhältnis: Sind 80 % der statischen Dateien zwischenspeicherbar, gehen 80 % dieser 15 Punkte ein.

Warum das Strom spart

Eine Datei, die im Zwischenspeicher noch gültig ist, nimmt der Browser direkt vom Gerät; Übertragung und Arbeit am Server entfallen. Mit ETag allein fragt er kurz beim Server nach und bekommt eine kurze Bestätigung, wenn die Datei gleich geblieben ist. Bei Besuchern, die mehrere Seiten ansehen oder wiederkommen, fällt so ein großer Teil der Datenmenge weg. Der CO₂-Wert je Aufruf rechnet mit dem ersten Aufruf; der Cache senkt, was danach kommt.

Beispiele

Apache (.htaccess)

Nicht erfüllt
Header set Cache-Control "no-store"
# jede Datei kommt bei jedem Besuch neu vom Server
Erfüllt
<IfModule mod_headers.c>
  # Bilder, Schriften, Stylesheets, Skripte: ein Tag, danach fragt der Browser per ETag nach
  <FilesMatch "\.(avif|webp|jpg|png|svg|woff2|css|js)$">
    Header set Cache-Control "public, max-age=86400"
  </FilesMatch>
  # Dateien mit Versionskennung im Namen (seite.4f2a9c.css): ein Jahr
  <FilesMatch "\.[0-9a-f]{6,}\.(avif|webp|jpg|png|svg|woff2|css|js)$">
    Header set Cache-Control "public, max-age=31536000, immutable"
  </FilesMatch>
</IfModule>

nginx

Nicht erfüllt
location /assets/ {
  add_header Cache-Control "no-store";
}
Erfüllt
location /assets/ {
  # hier liegen Dateien mit Versionskennung im Namen
  add_header Cache-Control "public, max-age=31536000, immutable";
}

So gehen Sie es an

  1. Sehen Sie sich die Antwort-Kopfzeilen einer Bilddatei in den Entwicklerwerkzeugen des Browsers an (Reiter Netzwerk, Kopfzeilen): Steht dort Cache-Control mit max-age?
  2. Setzen Sie für Bilder, Schriften, Skripte und Stylesheets Cache-Control: public, max-age=31536000, immutable, wenn die Dateinamen eine Versionskennung haben.
  3. Hängen Sie eine Versionskennung an die Dateinamen (seite.4f2a9c.css), damit eine geänderte Datei einen neuen Namen bekommt.
  4. Für Dateien mit festem Namen, etwa logo.png, genügt eine kürzere Gültigkeit mit ETag; der Browser fragt dann nach, ob sich die Datei geändert hat.

Tipps aus der Praxis

  • Ist im Netzwerk-Reiter der Chrome-Entwicklerwerkzeuge „Disable cache“ angehakt, lädt Chrome alles neu, solange die Werkzeuge offen sind. Für die Probe des zweiten Aufrufs nehmen Sie das Häkchen heraus und laden die Seite zweimal.
  • Prüfen Sie nach jeder neuen Erweiterung für Sicherheit oder Geschwindigkeit die Kopfzeilen einer Bilddatei erneut. Eine einzige Regel wie no-store für alle Dateien schaltet den Zwischenspeicher für die ganze Website ab.
  • Ändern Sie bei einer neuen Fassung den Dateinamen (logo-2026.png), statt die alte Datei zu überschreiben. So sieht jeder Besucher sofort die neue Fassung, auch bei langer Gültigkeit.
  • Fragen Sie Ihren Hoster, ob Ihr Paket eine Voreinstellung für die Gültigkeit statischer Dateien anbietet, bevor Sie selbst Regeln schreiben.

Weiter im Prüfbereich CO₂ & EmpCo

Dieser Prüfpunkt gehört zum Prüfbereich CO₂ & EmpCo; dort stehen alle Prüfpunkte im Überblick. Was die Prüfung insgesamt leistet, zeigt die Leistungsseite; wie ein Ergebnis zustande kommt, erklärt das Prüfverfahren. Alle Prüfbereiche im Überblick: Wissensbasis.

  • 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