WebmasterID logoWebmasterID
Crawl diagnostics

HTTP 304 Not Modified and crawl efficiency

304 Not Modified is the response to a conditional request when the resource has not changed since the client last fetched it. The server returns no body, so the crawler reuses its cached copy. Correct conditional-request support with ETag or Last-Modified saves bandwidth and crawl budget.

Verified against primary sources

What 304 means

304 Not Modified is returned for a conditional GET when the resource has not changed. A client includes validators — an If-None-Match header carrying a previously received ETag, or an If-Modified-Since header with a timestamp — and if nothing changed the server responds 304 with no message body.

The client then serves its cached copy. No content is re-transferred.

Why it helps crawling

Crawlers refetch pages to keep their index fresh. If every refetch transferred the full page, large sites would burn bandwidth and crawl budget on unchanged content. Conditional requests let a crawler confirm freshness cheaply: a 304 is small and fast, so the crawler can spend its budget discovering and refreshing pages that actually changed.

To enable this, serve accurate ETag and/or Last-Modified headers and honour If-None-Match / If-Modified-Since.

Operator checklist

Make sure your server emits stable ETag or Last-Modified headers and returns 304 when validators match. Avoid changing ETags when content has not changed. Check that unchanged pages produce 304s rather than full 200 responses on recrawl.

How it appears in analytics and logs

A 304 means a crawler asked 'has this changed since my last copy?' and the server answered 'no'. Healthy 304 rates indicate efficient caching; the crawler avoids re-downloading unchanged resources.

Diagnostic use case

Reduce wasted crawling by serving 304 when content is unchanged, and confirm crawlers are sending and honouring conditional requests.

What WebmasterID can help detect

WebmasterID can surface the mix of 200 vs 304 responses crawlers receive, helping you see whether caching headers are letting crawlers skip unchanged pages.

Common mistakes

Privacy and accuracy notes

Conditional-request status codes carry no personal data. WebmasterID reports these patterns for crawler traffic without exposing individual visitors.

Related pages

Sources and verification notes

Last reviewed 2026-06-24. Facts are checked against primary/official sources where available; uncertain specifics are marked “Data not yet verified” rather than guessed.