HTTP 304 Not Modified
Status code 304 · Class 3xx
Not Modified
Also searched as: HTTP 304, 304 not modified
What it means
304 is a normal, healthy response: the browser asked 'has this changed since my cached copy?' and the server answered 'no, use your copy'. No body is sent, which saves bandwidth. You only need to act if outdated content keeps appearing.
Applies to: All browsers, nginx, Apache, CDNs
How to fix HTTP 304 Not Modified
- If you see outdated content, do a hard reload (Ctrl+Shift+R or Cmd+Shift+R) to bypass the cache
- In DevTools, check 'Disable cache' on the Network tab while developing
- If you own the site: make sure ETag or Last-Modified changes whenever the file changes
- If you own the site: use versioned file names (app.3f2a1.js) for static assets with long cache lifetimes
- If you own the site: set 'Cache-Control: no-cache' on HTML so browsers revalidate pages each time
Why it happens
Conditional requests with If-None-Match or If-Modified-Since let servers answer 304 when the representation has not changed (RFC 9110). Stale content issues come from validators that do not change when content does.
FAQ
Is 304 Not Modified an error?
No. It is a success-path response showing caching works correctly.
Related errors
Source: IANA HTTP Status Code Registry · fixes written and reviewed by the editors (see our editorial policy)
Last updated: