HTTP 304 Not Modified: what it means and when to fix it
Oct 14, 2026
/
By Nadia
/
5 min Read
HTTP 304 Not Modified is an HTTP response status code indicating that a requested resource hasn’t changed since the browser last cached it. Instead of downloading the same content again, the browser can reuse its cached version, reducing unnecessary data transfers.
A 304 status code is not an error. It’s a normal part of HTTP caching and only requires troubleshooting when visitors encounter problems, such as outdated content or pages that fail to load correctly.
If a 304 response appears unexpectedly, you can start by checking your browser cache. Website owners should also review server-side caching settings, including ETag, Last-Modified, and Cache-Control headers, to ensure updated content is delivered correctly.

Is HTTP 304 Not Modified an error?
No, HTTP 304 Not Modified is not an error. It’s a normal response that tells the browser a previously cached resource hasn’t changed and can be reused instead of being downloaded again.
Unlike 4xx and 5xx HTTP status codes, which indicate client or server errors, HTTP 304 is part of normal cache validation. A server typically returns a 304 response when the browser sends a conditional request using headers such as If-None-Match or If-Modified-Since, and the cached resource is still valid.
You only need to investigate a 304 response if it accompanies an actual problem, such as:
- Outdated website content: Visitors continue seeing an older version after you’ve updated the page.
- Missing or broken resources: Images, stylesheets, or scripts fail to load because of incorrect caching behavior.
- Unexpected server responses: The server returns 304 when it should deliver updated content or a full response.
If your website loads correctly and visitors see the latest content, there’s no need to fix a 304 response.
How to fix HTTP 304 caching issues
To troubleshoot unexpected HTTP 304 responses, first determine whether the issue comes from your browser cache or the website’s caching configuration.
If you’re seeing outdated content, start by clearing your browser cache. Website owners should also check server-side caching settings if the issue persists.
1. Clear your browser cache
Clearing your browser cache can resolve problems caused by outdated or corrupted cached resources. It removes locally stored copies of website files, allowing your browser to request fresh versions from the server.
To clear the cache in Google Chrome:
- Open Chrome and click the three-dot menu in the upper-right corner.
- Select Delete browsing data.
- Choose a time range, such as All time.
- Select Cached images and files. Leave other options unchecked unless you also want to remove that data.
- Click Delete data.
- Reload the affected website and check whether the content displays correctly.
Clearing the cache doesn’t fix the HTTP 304 response itself, since that status code is normal. It helps when your browser displays outdated content or uses corrupted cached files.
2. Check HTTP cache headers
Incorrect HTTP caching headers can cause browsers to display outdated content or receive unexpected 304 responses. Website owners should check how their server validates cached resources before changing the caching configuration.
Three important response headers are:
- ETag: Identifies a version of a resource so the server can determine whether it has changed.
- Last-Modified: Indicates when a resource was last updated, allowing browsers to validate their cached copies.
- Cache-Control: Defines how browsers and other caches should store and reuse responses.
These headers control how browsers validate cached resources. Understanding how website caching works can help you identify whether outdated content is caused by the browser, web server, or CDN.
To inspect these headers in Google Chrome:
- Open the affected website and access Chrome DevTools by right-clicking the page and selecting Inspect.
- Select the Network tab and reload the page.
- Click the affected resource and open the Headers panel.
- Check the response headers for
ETag,Last-Modified, andCache-Control, where available. - Review the request headers for
If-None-MatchorIf-Modified-Sinceto see how the browser validates its cached version.
If a resource has changed but the server continues returning 304, review the cache validation settings on your web server or CDN. Updated resources should generally return a 200 OK response with the new content when the cached version is no longer valid.
A 304 response is expected when the cached resource hasn’t changed, so there’s no need to eliminate these responses entirely.
3. Clear server and CDN caches
If visitors continue seeing outdated content after clearing their browser cache, the issue may come from your website’s server-side cache or content delivery network (CDN).
These caching systems store copies of website resources to improve loading speed. However, outdated cached copies or incorrect cache invalidation can prevent visitors from seeing recent changes.
To troubleshoot the issue:
- Clear your WordPress cache. If you use a caching plugin such as LiteSpeed Cache, WP Rocket, or W3 Total Cache, open its settings and purge the cached content.
- Clear your server cache. If your hosting provider offers server-side caching, use its control panel to clear the affected cached resources.
- Purge your CDN cache. If you use Cloudflare or another CDN, clear the relevant cached files through its dashboard.
- Reload the affected page. Check whether the latest content appears and inspect the HTTP response in your browser’s developer tools.
For Hostinger-hosted websites, follow the instructions for clearing your website’s cache to remove outdated content from the relevant caching layers.
If the issue persists, review your ETag, Last-Modified, and Cache-Control headers as explained in the previous method. A 304 response is expected when the server confirms that the cached resource hasn’t changed.
4. Test the website in a private browsing window
Opening a website in a private browsing window can help determine whether outdated content or unexpected caching behavior is related to your regular browser session.
Private browsing starts a separate session with its own temporary site data, making it useful for troubleshooting browser-specific caching problems.
To test your website using Google Chrome:
- Open Chrome and click the three-dot menu in the upper-right corner.
- Select New Incognito window. Alternatively, press Ctrl + Shift + N on Windows or Command + Shift + N on Mac.
- Enter the affected website’s URL and check whether the latest content appears.
- Compare the results with your regular browser window.
If the website displays correctly in Incognito mode but not in your regular window, the issue may be related to cached data, cookies, or browser extensions.
If the problem occurs in both browsing modes, investigate the server and CDN caching configurations using the previous methods.
Keep in mind that private browsing doesn’t disable HTTP caching entirely. Receiving a 304 response in Incognito mode is still normal when the browser has a valid cached resource.
5. Disable browser extensions
Some browser extensions, particularly those that modify network requests or manage cached content, can interfere with how websites load. If a website works correctly in Incognito mode but not in your regular browser window, an extension may be causing the issue.
To check your extensions in Google Chrome:
- Open Chrome and enter
chrome://extensions/in the address bar. - Turn off your extensions using their toggle switches.
- Reload the affected website and check whether the content displays correctly.
- If the issue disappears, re-enable extensions one at a time, testing the website after each change.
If you identify a problematic extension, check its settings, update it, or remove it if it’s no longer needed.
Disabling extensions won’t prevent normal HTTP 304 responses. This method only helps identify browser-specific problems affecting website content or network requests.
What causes the HTTP 304 Not Modified status code?
An HTTP 304 Not Modified response occurs when a browser requests a previously cached resource and the server confirms that it hasn’t changed. This is normal HTTP caching behavior, not a browser or server error.
The response typically involves one of two conditional request headers:
- If-None-Match: The browser sends an ETag value identifying its cached version. If the value matches the server’s current version, the server responds with 304.
- If-Modified-Since: The browser sends the date when the resource was last modified. If the resource hasn’t changed since that date, the server can return 304.
Instead of downloading the resource again, the browser reuses its cached copy, reducing unnecessary data transfers.
However, incorrect cache validation settings on a web server or CDN can sometimes cause outdated content to persist. If visitors aren’t seeing recent updates, check the caching headers and configuration using the troubleshooting methods below.

Next steps: Make sure your website caching works correctly
HTTP 304 Not Modified is a standard response that allows browsers to reuse cached resources. If your website loads correctly and displays updated content, you don’t need to take any action.
If visitors experience outdated or missing content, focus on identifying which caching layer is causing the issue:
- Check browser caching. Compare how your website loads in a regular and private browsing window.
- Review server-side caching. Inspect HTTP cache headers and clear outdated server or CDN caches when necessary.
- Verify the results. Reload the affected resources and use your browser’s developer tools to confirm that updated content is delivered correctly.
Avoid changing caching configurations solely to eliminate HTTP 304 responses. The goal is to ensure visitors receive the correct content while maintaining efficient caching.
This article is a localized version of HTTP 304 Not Modified: what it means and when to fix it, originally published in English.
All of the tutorial content on this website is subject to Hostinger's rigorous editorial standards and values.