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.
| Header / Status | Gegenstück in der Anfrage | Was es tut | Bedeutung 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 |
ETag | If-None-Match | Kennung für die aktuelle Version einer Ressource | unterstü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-Since | Zeitpunkt, zu dem die Ressource laut Server zuletzt geändert wurde | unterstützt; das Datum muss dem HTTP-Format entsprechen, z. B. Fri, 4 Sep 1998 19:15:56 GMT |
304 Not Modified | Antwort auf eine bedingte GET- oder HEAD-Anfrage | meldet, dass die gespeicherte Kopie noch gilt; die Antwort hat keinen Body | der 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/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
- Google's crawlers and fetchers – HTTP caching – Google Search Centraldevelopers.google.com
- Last-Modified – MDN Web Docsdeveloper.mozilla.org
Stand: