HTTP status 304 Not Modified is a server response that tells the browser: “The resource has not changed since your last request, use the local copy from the cache.” Unlike the common 404 (Not Found) or 410 (Gone), which signal problems with resource availability, the 304 code is an indicator that the caching system is working correctly.
This approach reduces server load and speeds up content delivery, especially under high traffic or peak loads.
Important to understand: 304 Not Modified is not an error. It is part of the HTTP 3xx status code family that handles redirects and caching. Unlike 410 Gone, which indicates the resource has been removed entirely, 304 is a “green light” for the browser to use the local cache.
In a case for one of our clients in the pharmaceutical sector, where tens of thousands of catalog requests are processed daily, a proper implementation of 304 reduced server load by almost 40% and sped up page response times by 1.2 seconds. This directly affects user retention and conversion — and therefore revenue.
Let’s continue to look into technical details and the headers that allow the server to manage caching and resource delivery effectively.
How 304 Not Modified and HTTP headers work

The 304 Not Modified mechanism is built on a dialogue between the browser and the server using so-called HTTP conditional requests. After the first request to a resource, the browser saves a copy in the local cache along with metadata: the last modification date (Last-Modified) and a unique identifier (ETag).
On subsequent requests the browser sends special HTTP headers to the server:
- If-Modified-Since: contains the last modification date the browser knows.
- If-None-Match: contains the ETag, a unique hash of the file contents.
The server compares these values with the current ones. If the resource hasn’t changed, it returns 304 Not Modified and the browser uses the local copy. If there are changes, the server sends the new file and updates the cache.
In real projects BUSINESS SITE we often face the question: how to choose between ETag and Last-Modified? Our experience shows that ETag provides more accurate change detection, especially when files are generated dynamically or stored on multiple servers (for example, in an infrastructure with a CDN). Nevertheless, for simple static files Last-Modified is sufficient and easier to implement.
In one e-commerce case where only part of the assortment is updated daily, implementing ETag and correct Cache-Control headers reduced outbound traffic by 55% without losing data relevance for users.
Configuring 304 Not Modified in Nginx, Apache and Cloudflare

Configuring 304 Not Modified on servers and proxies like Nginx, Apache and Cloudflare plays a key role in optimizing the interaction between client and server. Proper configuration of this status saves resources, speeds up site loading and improves user experience, which in turn positively affects SEO metrics. Next, we will consider why this setting is important for search engine optimization.
Why is configuring 304 important for SEO?
Implementing and properly configuring 304 Not Modified is not just a technical option, but a strategic tool for optimizing site performance, saving resources and increasing customer satisfaction. In my observations, even large Ukrainian e-commerce platforms and services often lose up to 30% of server capacity due to missing or improperly functioning caching.
Configuring 304 Not Modified in Nginx
In Nginx, 304 support is implemented via the etag and if_modified_since directives in the nginx.conf configuration file. Example basic configuration:
server {
listen 80;
server_name example.com;
location /static/ {
etag on;
if_modified_since exact;
add_header Cache-Control "public, max-age=31536000, immutable";
}
}
- etag on; – enables generation of ETag for files.
- if_modified_since exact; – the server compares the file’s last modification date.
- Cache-Control controls the cache retention period in the browser.
BUSINESS SITE practice has shown that for large projects with a CDN (for example, when integrating with Cloudflare) it is important to coordinate caching parameters between the server and the CDN to avoid conflicts and duplicate headers.
Configuring 304 Not Modified in Apache
In Apache, 304 configuration is implemented via .htaccess and the FileETag and Cache-Control directives. Example:
Header set Cache-Control "public, max-age=31536000, immutable"
FileETag MTime Size
- FileETag MTime Size: generates an ETag based on file modification time and size.
- mod_headers is required to manage headers.
From practice: for sites with a large volume of media files, it is recommended to use a combination of ETag and Last-Modified to ensure maximum compatibility with browsers and CDNs.
Configuring 304 Not Modified in Cloudflare
Cloudflare as a CDN adds an additional caching layer. To support 304 it is important to:
- Enable Caching Level: Standard or Aggressive.
- Set Browser Cache TTL to the required period (for example, 1 year for static resources).
- Verify that the server returns correct ETag and Last-Modified.
In the Cloudflare dashboard avoid the “No Query String” option for dynamic resources so as not to break the caching logic. ResolvedThe solution we developed for one of the clients in the financial services sector allowed to speed up loading of the site by 38% and reduce server infrastructure costs through proper integration of Cloudflare and server-side caching.
Impact of 304 Not Modified on SEO and loading speed

The impact of 304 Not Modified on SEO and loading speed cannot be overstated, since this status saves server resources and speeds up page rendering by using the browser cache. This not only increases the site’s loading speed but also reduces server load, which positively affects search engine rankings. These effects are described in detail in the following sections.
Speeding up site loading and reducing load
304 Not Modified allows the browser to use the local cache, which speeds up page loading and reduces the number of requests to the server. For high-traffic sites, as BUSINESS SITE’s experience shows, this is critically important: server load decreases and users get an instant response.
This effectively reduces not only loading time but also mobile data usage.
Saving mobile data
For Ukrainian users who actively use mobile internet, data savings are a real competitive advantage. Correct operation of 304 Not Modified reduces the amount of downloaded data, which is especially valuable for customers ordering delivery through “Нову Пошту” or making payments through “ПриватБанк” and “Монобанк” from mobile devices.
Impact of SEO on user experience
Search engines like Google consider page loading speed as a ranking factor. The influence of 304 on SEO is manifested through:
- Improving Core Web Vitals (Google’s metrics for assessing UX).
- Reducing time to first interaction (TTFB).
- Saving the crawl budget of search bots: they don’t waste resources reloading unchanged files.
In one of the case studies for a construction company, where BUSINESS SITE implemented comprehensive optimization, correct cache configuration with 304 Not Modified increased average page depth by 17% and reduced the bounce rate by 22%.
ROI from caching: how to calculate the benefit?
Investments in caching optimization with 304 Not Modified quickly pay off thanks to:
- Lower costs for servers and CDN.
- Increased conversion due to improved UX.
- Increased user retention.
At BUSINESS SITE we use metrics such as TTFB, Bounce Rate, LTV and Server Load to track the effectiveness of 304 implementation and calculate ROI for each project.
Browser compatibility with HTTP 304 Not Modified

Modern browsers (Chrome, Firefox, Safari, Edge) fully support HTTP 304 and caching mechanisms, ensuring stable site operation for most users. Behavior specifics:
- Cache TTL (Time To Live) may differ depending on the browser and Cache-Control settings.
- When the cache is cleared or corrupted, the browser reloads all resources until it accumulates new metadata.
- Older browsers may incorrectly handle ETag or ignore some directives, so it’s recommended to use several mechanisms at once (ETag + Last-Modified + Cache-Control) for maximum compatibility.
In BUSINESS SITE practice there were cases when some users experienced issues displaying updated styles due to outdated cache. The solution was to implement file versioning (for example, style.css?v=20250928), which guarantees loading the current resource whenever it changes.
Impact on UX: fast page loading increases user satisfaction, boosts conversion and helps build brand loyalty.
Caching issues and checking 304 Not Modified

Caching issues and checking 304 Not Modified play an important role in ensuring fast page loading and correct site operation. Incorrect cache configuration can cause serious difficulties that affect SEO and user experience. Let’s consider the most common problems related to these aspects.
Common SEO problems
- Missing or conflicting ETag and Last-Modified headers — the browser doesn’t receive 304 and reloads files.
- Incorrect Cache-Control directives: resources are cached for too long or, conversely, not cached at all.
- CDN and server return different headers — duplicate or conflicting responses occur.
In one case for a laboratory company, BUSINESS SITE diagnosed a problem where, due to incorrect CDN configuration, the server always served new copies of files, ignoring the browser cache. Fixing the configuration reduced the number of requests by 60%.
How to check 304 Not Modified operation?
- Monitor server logs: analyze the frequency of 304, 200 and 404 occurrences.
- Browser developer tools: the Network tab shows when a resource is loaded from cache and when a 304 is returned.
- Online services (for example, GTmetrix, WebPageTest) allow you to see HTTP header details and assess caching effectiveness.
Use automation in CI/CD to check caching correctness on every deploy.
Balancing site speed and reliability through HTTP 304
304 Not Modified: not just a technical nuance, but a strategic tool for speeding up the site, reducing load and improving business efficiency. Proper configuration of this mechanismThe mechanism provides fast response, traffic savings and improved search rankings, as confirmed by BUSINESS SITE practice across various industries: from e-commerce to financial services.
Remember: 304 Not Modified is not an error but your ally in the fight for attention and customer loyalty.










