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.
| 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 (dieser Begriff) | 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 | 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
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
- ETag – MDN Web Docsdeveloper.mozilla.org
- Übersicht der Google-Crawler, Abschnitt HTTP-Caching – Google Search Centraldevelopers.google.com
- ETags: what they are and how to use them – Fastly (Zweitquelle)fastly.com
- RFC 9110: HTTP Semantics (Abschnitte 8.8.3 ETag, 13.1 Vorbedingungen) – IETFrfc-editor.org
Stand: