304 Not Modified ist ein HTTP-Statuscode, mit dem ein Server auf eine bedingte Anfrage meldet, dass sich die Ressource seit dem letzten Abruf nicht geändert hat. Die Antwort enthält keinen Body, der Client verwendet seine zwischengespeicherte Kopie.
Auf einen Blick
- Statuscode
- 304
- Klasse
- 3xx (Umleitung)
- Dauer
- entfällt (Antwort auf bedingte Anfrage)
- In Google
- Crawler meldet, dass der Inhalt dem letzten Crawl entspricht; sonst keine Wirkung auf die Indexierung
- Anfragemethode
- Antwort auf bedingtes GET oder HEAD, ohne Body
- Spezifikation
- RFC 9110, Abschnitt 15.4.5
Stand:
Wie funktioniert ein 304?
Der Client sendet bei einer bedingten GET- oder HEAD-Anfrage den Header If-None-Match mit einem ETag oder If-Modified-Since mit einem Datum. Stimmt der Wert noch, antwortet der Server mit 304. Laut MDN gehören Header wie Cache-Control, ETag, Date, Expires und Vary in die 304-Antwort, sofern sie auch bei einer 200-Antwort mitgeschickt würden.
Googles Crawling-Infrastruktur unterstützt ETag mit If-None-Match sowie Last-Modified mit If-Modified-Since. Googlebot nutzt Caching beim erneuten Crawlen für die Google Suche, bei anderen Google-Crawlern kann das abweichen. Bei einem 304 meldet der Crawler nach der Google-Dokumentation dem nachfolgenden System, dass der Inhalt dem letzten Crawl entspricht.
| 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 | 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 (dieser Begriff) | 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
Anfrage:
GET /produkte/ HTTP/1.1
If-None-Match: "b20a0973b226eeea30362acb81f9e0b3"
Antwort:
HTTP/1.1 304 Not Modified
ETag: "b20a0973b226eeea30362acb81f9e0b3"
Cache-Control: public, max-age=3600
Häufige Fehler
- Der Server liefert bei jeder Anfrage 200, obwohl
ETagoderLast-Modifiedvorhanden sind. Dann entfällt die Ersparnis bei der Übertragung. - Die 304-Antwort enthält einen Body, obwohl laut MDN keiner mitgeschickt werden darf.
Quellen
- 304 Not Modified – MDN Web Docsdeveloper.mozilla.org
- RFC 9110: HTTP Semantics, Abschnitt 15.4.5 (304 Not Modified)rfc-editor.org
- Wie HTTP-Statuscodes sowie Netzwerk- und DNS-Fehler die Google Suche beeinflussen – Google Search Centraldevelopers.google.com
- Google-Crawler und HTTP-Caching – Google Crawling Infrastructuredevelopers.google.com
Stand: