Technical SEO · Glossary · Updated Apr 2026

ETag

Definition

ETag is an HTTP response header containing an opaque entity-tag identifying a specific version of a resource. On subsequent requests, the client sends `If-None-Match: <etag>` and the server returns 304 Not Modified if unchanged, skipping the body. Googlebot honors this and saves bandwidth on stable assets.

Find related

Long definition

Two flavors:

Strong ETag (ETag: "abc123") — byte-for-byte identical content gets the same tag. Required for byte-range requests (Accept-Ranges: bytes).

Weak ETag (ETag: W/"abc123") — semantically equivalent content can share a tag, even if bytes differ slightly (whitespace, gzip variations, dynamic timestamps). The leading W/ marks the weakness.

The conditional flow:

  1. First request: server sends 200 OK with ETag: "v1" in the response.
  2. Client caches the response and the ETag.
  3. Subsequent request: client sends If-None-Match: "v1".
  4. Server checks: ETag still "v1" → return 304 Not Modified with no body. ETag changed → return 200 OK with new body and new ETag.

For SEO, ETag matters in two situations.

Crawl efficiency. Googlebot reduces capacity spend on resources that haven't changed. The 304 response uses minimal bytes, freeing budget for new and updated URLs.

TTFB on revisits. Browser caches use ETag to short-circuit re-downloads of static assets (CSS, JS, images), improving repeat-visit performance.

Common pitfalls:

  • Inconsistent ETags across servers. A load balancer routing to multiple backends generates different ETags for the same resource. Result: cache misses, increased bandwidth, no benefit.
  • Apache's default ETag historically included inode numbers, breaking caching across server farms. Modern configurations use FileETag MTime Size only.
  • CDNs and ETag. Most CDNs handle ETag generation themselves. Don't fight the CDN; let it set the headers.

The Last-Modified alternative is simpler but coarser — 1-second resolution, breaks for pages with dynamic timestamps. Many implementations send both; the client prefers ETag when present.

Common misconceptions

  • "ETag is mandatory for SEO." Last-Modified alone works fine for most sites. ETag becomes valuable at scale or for resources where Last-Modified is unreliable.
  • "Strong ETags are always better." Weak ETags are correct for compressed content where gzip introduces byte-level differences. Using strong ETags there breaks caching.
  • "ETag enables HTTP caching." ETag enables conditional revalidation. Cache duration is controlled by Cache-Control and Expires. The two work together.