English
Server, HTTP & Caching

Caching (Browser-Cache)

Auch genannt: Browser-Cache, Browser-Caching, HTTP-Caching

Caching bedeutet, dass HTTP-Antworten zwischengespeichert und für spätere Anfragen wiederverwendet werden. Dadurch spart ein Besucher bei einem erneuten Aufruf Übertragungen, und der Server wird entlastet. Der Zwischenspeicher im Browser heißt Browser-Cache. Daneben gibt es verwaltete Caches wie CDN, Reverse Proxy oder Service Worker.

Wie wird Caching gesteuert?

Der Server steuert es über HTTP-Header, vor allem Cache-Control. max-age=N legt fest, wie viele Sekunden eine Antwort als frisch gilt. no-cache verlangt vor jeder Wiederverwendung eine Rückfrage beim Server. no-store verbietet das Speichern. private erlaubt nur den Cache des einzelnen Nutzers, public auch gemeinsam genutzte Caches, und immutable kennzeichnet Inhalte, die sich nie ändern.

Ist eine Antwort abgelaufen, fragt der Browser nach, ob sie noch gilt. Dafür dienen ETag mit If-None-Match oder Last-Modified mit If-Modified-Since. Ist alles unverändert, antwortet der Server mit 304 Not Modified und spart den Body.

Auch Google-Crawler nutzen das. Laut Google unterstützt die Crawling-Infrastruktur heuristisches HTTP-Caching über ETag und If-None-Match sowie Last-Modified und If-Modified-Since, wobei Google ETag bevorzugt. Welcher Crawler das tut, hängt vom Crawler ab, Googlebot gehört dazu.

Cache-Header und 304 im Vergleich
Header / StatusGegenstück in der AnfrageWas es tutBedeutung für Google-Crawler
Cache-Control– (Direktiven auch in Anfragen möglich)listet Direktiven für Caches, z. B. max-age (frisch für N Sekunden), no-cache (Wiederverwendung nur nach Prüfung), no-store (nicht speichern)max-age ist optional und hilft Crawlern einzuschätzen, wann sie die URL wieder abrufen; andere Caching-Direktiven unterstützt Google nicht
ETagIf-None-MatchKennung für die aktuelle Version einer Ressourceunterstützt und von Google empfohlen, weil es keine Probleme mit Datumsformaten gibt; hat Vorrang, wenn beide Validatoren gesetzt sind
Last-ModifiedIf-Modified-SinceZeitpunkt, zu dem die Ressource laut Server zuletzt geändert wurdeunterstützt; das Datum muss dem HTTP-Format entsprechen, z. B. Fri, 4 Sep 1998 19:15:56 GMT
304 Not ModifiedAntwort auf eine bedingte GET- oder HEAD-Anfragemeldet, dass die gespeicherte Kopie noch gilt; die Antwort hat keinen Bodyder Crawler meldet dem nächsten System, dass der Inhalt dem letzten Crawl entspricht; die Suche kann Signale neu berechnen, sonst keine Wirkung auf die Indexierung

Google rät, ETag und Last-Modified beide zu setzen, weil auch andere Anwendungen sie nutzen. Ob ein Google-Crawler Caching nutzt, hängt vom zugehörigen Produkt ab: Googlebot nutzt es beim erneuten Crawlen für die Google Suche. Laut Google-Blog vom Dezember 2024 ließen sich nur 0,017 % aller Abrufe aus dem Cache bedienen. Quellen: Google Crawling Infrastructure: Overview of Google crawlers and fetchers, HTTP caching (last updated 2026-06-12); Google Search Central Blog: Crawling December: HTTP caching (2024-12-09); Google Crawling Infrastructure: HTTP status codes, network and DNS errors (last updated 2026-02-04); MDN: HTTP caching; RFC 9111: HTTP Caching; RFC 9110: HTTP Semantics (8.8.2 Last-Modified, 8.8.3 ETag, 15.4.5 304). Stand: .

CDN: Edge-Server vor dem UrsprungsserverNutzer und Googlebot fragen beim nächstgelegenen Edge-Server des CDN an. Dort sitzen WAF und Bot-Regeln, Edge-Funktionen, die die Antwort ändern können, und der Cache. Liegt eine Kopie im Cache, antwortet der Edge-Server direkt. Fehlt sie, holt er die Seite beim Ursprungsserver. Blockt die WAF einen Crawler, empfiehlt Google die Statuscodes 503 oder 429.NutzerGooglebotEdge-Server am nächsten StandortWAF und Bot-Regelnlassen durch oder blockenEdge-Funktionenändern die Antwort (Edge SEO)CacheKopie der Seite vorhanden?BlockUrsprungsserver(Origin)FehlschussCache-Treffer · Edge-Server antwortet direkt, der Origin wird nicht gefragt.Cache-Fehlschuss · Edge-Server holt die Seite beim Origin und speichert sie.Erster Abruf · Der Cache ist noch leer, der Origin liefert jede URL mindestens einmal.Block · Sperrt die WAF einen Crawler, empfiehlt Google 503 oder 429.
Google lässt bei Websites hinter einem CDN höhere Crawl-Raten zu. Beim ersten Abruf einer URL ist der Cache aber leer, dann liefert der Ursprungsserver selbst. Die Reihenfolge im Edge-Server ist vereinfacht und je nach Anbieter verschieden. Quellen: Google Search Central Blog: Crawling im Dezember – CDNs und Crawling (24.12.2024); MDN: CDN (Glossar); Cloudflare: Workers und HTMLRewriter (Beispiel für Edge-Funktionen).

Beispiel

Eine Datei mit Versionsnummer im Namen, die sich nie ändert:

HTTP
Cache-Control: public, max-age=31536000, immutable

Die zugehörige HTML-Seite, die jedes Mal geprüft werden soll:

HTTP
Cache-Control: no-cache
ETag: "33a64df5"

Häufige Fehler

  • Lange Laufzeit ohne Versionierung. Dateien ohne Hash oder Versionsnummer im Namen bleiben bei Besuchern veraltet im Cache.
  • Veraltete Header-Mischungen. MDN nennt Kombinationen wie no-store, no-cache, max-age=0, must-revalidate, proxy-revalidate als überholt, no-cache genügt.
  • no-store auf allen Seiten. Es deaktiviert unter anderem den Zurück/Vor-Cache des Browsers.
  • Personalisierte Inhalte ohne private. Sie könnten sonst in gemeinsam genutzten Caches landen.

Häufige Fragen

Hilft es, den Browser-Cache zu leeren? Bei Darstellungsproblemen nach einer Änderung oft ja. Ein erzwungenes Neuladen mit Strg+Umschalt+R sendet Cache-Control: no-cache und lädt ohne Rückfrage-Bedingungen neu.

Wo findet man den Browser-Cache? In den Entwicklertools des Browsers unter dem Reiter „Netzwerk“ lässt sich je Datei sehen, ob sie aus dem Cache kam.

Quellen

  1. HTTP-Caching – MDN Web Docsdeveloper.mozilla.org
  2. Übersicht der Google-Crawler (Abschnitt HTTP-Caching) – Google Search Centraldevelopers.google.com
  3. RFC 9111: HTTP Cachingrfc-editor.org

Stand: