English
Server, HTTP & Caching

Last-Modified / If-Modified-Since

Der Last-Modified-Header ist ein HTTP-Antwortheader, der angibt, wann eine Ressource zuletzt geändert wurde. Mit If-Modified-Since fragt ein Client später nach, ob sich seitdem etwas geändert hat. Der Server antwortet dann entweder mit der neuen Version oder mit dem Statuscode 304.

Auf einen Blick

Art
HTTP-Antwortheader
Wirkt auf
bedingte Anfragen mit If-Modified-Since
Werte
Datum im HTTP-Format, GMT

Stand:

Wie funktioniert der Austausch?

Der Server sendet beim ersten Abruf einen Zeitstempel im HTTP-Datumsformat in GMT. Der Client merkt sich den Wert und schickt ihn beim nächsten Abruf als If-Modified-Since zurück. Ist die Ressource unverändert, kommt 304 Not Modified ohne Inhalt zurück. Das spart Übertragung.

Für Crawler heißt das: Googles Crawling-Infrastruktur unterstützt laut Dokumentation Last-Modified und If-Modified-Since. Google empfiehlt allerdings ETag, weil beim Datumsformat Fehler auftreten können. Ob ein einzelner Google-Crawler das Caching nutzt, hängt vom jeweiligen Produkt ab.

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-Modified (dieser Begriff)If-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: .

Beispiel

HTTP
HTTP/1.1 200 OK
Last-Modified: Wed, 01 Jun 2022 08:00:00 GMT

GET /seite HTTP/1.1
If-Modified-Since: Wed, 01 Jun 2022 08:00:00 GMT

HTTP/1.1 304 Not Modified

Häufige Fehler

Manche Systeme setzen bei jedem Abruf die aktuelle Uhrzeit. Dann sieht jede Seite ständig geändert aus, und 304-Antworten bleiben aus. Der Wert sollte nur wechseln, wenn sich der Inhalt tatsächlich ändert. Mit einer Auflösung von einer Sekunde erkennt der Header außerdem keine feineren Änderungen.

Die XML-Sitemap hat mit lastmod ein eigenes Feld, das unabhängig vom HTTP-Header gepflegt wird.

Quellen

  1. Google's crawlers and fetchers – HTTP caching – Google Search Centraldevelopers.google.com
  2. Last-Modified – MDN Web Docsdeveloper.mozilla.org

Stand: