# ETag

Category: [Technical SEO](https://seo-geo-glossary.com/en/glossary/category/technical-seo/) › [Servers, HTTP & caching](https://seo-geo-glossary.com/en/glossary/category/technical-seo/servers-http-caching/) · Also known as: entity tag

An **ETag** (entity tag) is an HTTP response header that identifies a specific version of a resource. When the resource changes, the ETag changes. Clients and crawlers use it to ask whether their stored copy is still current, which saves transferring the content again.

## How does an ETag work?

1. The server sends the resource with `ETag: "abc123"`.
2. The client stores the response together with the ETag.
3. On the next request, the client sends `If-None-Match: "abc123"`.
4. If the resource is unchanged, the server answers `304 Not Modified` without a body, and the client reuses its copy. Otherwise it sends the new version with a new ETag.

The value is any quoted string. Servers often derive it from a hash of the content, a modification time or a revision number. A **weak** ETag starts with `W/` and signals that two versions are equivalent in meaning but not byte for byte. A **strong** ETag, without the prefix, means they are identical.

ETags also prevent conflicting edits. A client can send the ETag with `If-Match`, and the server answers `412 Precondition Failed` when the stored version has changed in the meantime.

## ETag and Google's crawlers

Google's crawling infrastructure supports ETag with If-None-Match as defined by the HTTP caching standard. It also supports Last-Modified with If-Modified-Since, and Google recommends ETag because it avoids date formatting problems. When both headers are present, Google says its crawlers use the ETag value. Individual crawlers may implement caching differently. A correct 304 saves the server from sending the body again.

## Example

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

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

HTTP/1.1 304 Not Modified
```

## Cache headers and 304 compared

| Header / status | Request counterpart | What it does | Relevance for Google's crawlers |
|---|---|---|---|
| Cache-Control | – (directives can also appear in requests) | lists directives for caches, e.g. max-age (fresh for N seconds), no-cache (reuse only after revalidation), no-store (do not store) | max-age is optional and helps crawlers decide when to recrawl the URL; Google does not support other caching directives |
| ETag | If-None-Match | identifier for the current version of a resource | supported and recommended by Google because it has no date formatting issues; takes precedence when both validators are present |
| Last-Modified | If-Modified-Since | date and time at which the server believes the resource was last modified | supported; the date must follow the HTTP format, e.g. Fri, 4 Sep 1998 19:15:56 GMT |
| 304 Not Modified | response to a conditional GET or HEAD request | signals that the stored copy is still valid; the response has no body | the crawler tells the next system that the content is the same as at the last crawl; Search may recalculate signals, otherwise no effect on indexing |

Sources: [Google Crawling Infrastructure: Overview of Google crawlers and fetchers, HTTP caching (last updated 2026-06-12)](https://developers.google.com/crawling/docs/crawlers-fetchers/overview-google-crawlers); [Google Search Central Blog: Crawling December: HTTP caching (2024-12-09)](https://developers.google.com/search/blog/2024/12/crawling-december-caching); [Google Crawling Infrastructure: HTTP status codes, network and DNS errors (last updated 2026-02-04)](https://developers.google.com/crawling/docs/troubleshooting/http-status-codes); [MDN: HTTP caching](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/Caching); [RFC 9111: HTTP Caching](https://www.rfc-editor.org/rfc/rfc9111.html); [RFC 9110: HTTP Semantics (8.8.2 Last-Modified, 8.8.3 ETag, 15.4.5 304)](https://www.rfc-editor.org/rfc/rfc9110.html). Last checked: October 8, 2026

## Related terms

- [Cache-Control](https://seo-geo-glossary.com/en/glossary/cache-control/index.md)
- [Last-Modified header](https://seo-geo-glossary.com/en/glossary/last-modified-header/index.md)
- [304 Not Modified](https://seo-geo-glossary.com/en/glossary/304-not-modified/index.md)
- [HTTP header](https://seo-geo-glossary.com/en/glossary/http-header/index.md)

## Sources

- [ETag – MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/ETag)
- [Overview of Google crawlers and fetchers (HTTP caching) – Google Search Central](https://developers.google.com/crawling/docs/crawlers-fetchers/overview-google-crawlers)
- [HTTP caching – MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/Caching)
- [RFC 9110: HTTP Semantics (sections 8.8.3 ETag, 13.1 preconditions) – IETF](https://www.rfc-editor.org/rfc/rfc9110.html#name-etag)

---

Last updated: October 8, 2026
URL: https://seo-geo-glossary.com/en/glossary/etag/
