English

Ein ETag (Entity Tag) ist ein HTTP-Response-Header, der eine bestimmte Version einer Ressource kennzeichnet. Caches und Clients erkennen damit, ob sich Inhalt geändert hat, und der Server muss unveränderte Inhalte nicht erneut senden.

Wie funktioniert ein ETag?

Der Server liefert beim ersten Abruf einen ETag-Wert mit, etwa einen Hash des Inhalts, einen Zeitstempel-Hash oder eine Versionsnummer. Beim nächsten Abruf schickt der Client diesen Wert im Header If-None-Match zurück. Stimmt er mit der aktuellen Version überein, antwortet der Server mit 304 Not Modified und ohne Body. Das spart Bandbreite.

Es gibt zwei Arten. Ein starker ETag steht für Byte-für-Byte-Gleichheit. Ein schwacher ETag trägt das Präfix W/ und steht für semantisch gleichen Inhalt. Gecachte Range-Anfragen sind laut MDN nur mit starken ETags möglich.

Der Header If-Match nutzt denselben Wert für ein anderes Ziel: Wurde eine Ressource zwischenzeitlich geändert, antwortet der Server beim Schreiben mit 412 Precondition Failed.

Bedeutung für SEO

Google-Crawler unterstützen heuristisches HTTP-Caching mit ETag und If-None-Match sowie mit Last-Modified und If-Modified-Since. Google empfiehlt ETag, weil es keine Probleme mit Datumsformaten gibt. Sind beide Header vorhanden, verwendet Google laut Dokumentation den ETag-Wert. Andere Caching-Direktiven wertet Google nach eigener Angabe nicht aus. Beim erneuten Abruf unveränderter URLs kann ein korrekt gesetzter ETag deshalb Crawl-Last auf dem Server sparen.

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

Beispiel

HTTP
HTTP/1.1 200 OK
ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"

GET /seite HTTP/1.1
If-None-Match: "33a64df551425fcc55e4d42a148795d9f25f89d4"

HTTP/1.1 304 Not Modified

Häufige Fehler

  • Der Wert steht ohne Anführungszeichen im Header.
  • Ein Template-Platzhalter wird nicht ersetzt und jede Seite erhält denselben ETag.
  • Der Wert enthält Leerzeichen oder ein ungültiges Präfix für schwache ETags.

Quellen

  1. ETag – MDN Web Docsdeveloper.mozilla.org
  2. Übersicht der Google-Crawler, Abschnitt HTTP-Caching – Google Search Centraldevelopers.google.com
  3. ETags: what they are and how to use them – Fastly (Zweitquelle)fastly.com
  4. RFC 9110: HTTP Semantics (Abschnitte 8.8.3 ETag, 13.1 Vorbedingungen) – IETFrfc-editor.org

Stand: