English
HTTP-Statuscodes

304 Not Modified

Auch genannt: HTTP 304, Statuscode 304

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

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.

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 Modified (dieser Begriff)Antwort 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

Anfrage:

HTTP
GET /produkte/ HTTP/1.1
If-None-Match: "b20a0973b226eeea30362acb81f9e0b3"

Antwort:

HTTP
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 ETag oder Last-Modified vorhanden sind. Dann entfällt die Ersparnis bei der Übertragung.
  • Die 304-Antwort enthält einen Body, obwohl laut MDN keiner mitgeschickt werden darf.

Quellen

  1. 304 Not Modified – MDN Web Docsdeveloper.mozilla.org
  2. RFC 9110: HTTP Semantics, Abschnitt 15.4.5 (304 Not Modified)rfc-editor.org
  3. Wie HTTP-Statuscodes sowie Netzwerk- und DNS-Fehler die Google Suche beeinflussen – Google Search Centraldevelopers.google.com
  4. Google-Crawler und HTTP-Caching – Google Crawling Infrastructuredevelopers.google.com

Stand: