HTTP 304 Not Modified neden görünür, ne zaman normaldir ve yanlış önbellek davranışı oluştuğunda tarayıcı, CDN ve sunucu tarafında neler kontrol edilir öğrenin.
Bir sayfayı yenilediğinizde geliştirici araçlarında 304 kodunu görmek ilk anda sorun varmış hissi verebilir. Oysa HTTP 304 Not Modified çoğu durumda normal bir önbellek doğrulama yanıtıdır. Tarayıcı, elindeki dosyanın hâlâ güncel olduğunu sunucudan teyit eder ve aynı içeriği yeniden indirmek yerine saklanan kopyayı kullanır. Sorun, değişiklik yaptığınız halde eski CSS, JavaScript veya sayfa içeriği gösterilmeye devam ettiğinde başlar.
WordPress tarafında önbellek eklentileri ile sunucu önbelleği birlikte çalışıyorsa durum biraz daha karışabilir. Bir dosya değiştiği halde tarayıcı eski sürümü getiriyorsa HTTP 304 Not Modified yanıtının neye göre üretildiğini görmek gerekir. ETag, Last-Modified ve Cache-Control başlıkları burada iyi bir başlangıç noktasıdır.
Birden fazla alan adını aynı WordPress kurulumu altında yönetiyorsanız önbellek davranışının hangi siteye ait olduğunu ayırmak da önem kazanır. WordPress Multisite Domain Eşleme Nasıl Yapılır konusu, farklı alan adlarının aynı ağ üzerindeki çalışma mantığını anlamak için burada bağlantılıdır. Özellikle sunucu veya önbellek katmanında yapılan değişikliklerin doğru alan adına uygulandığından emin olmak gerekir.

HTTP 304 Not Modified ne anlama gelir?
HTTP 304 Not Modified, koşullu bir GET veya HEAD isteğinde kaynağın yeniden gönderilmesine gerek olmadığını bildiren HTTP durum kodudur. Tarayıcı daha önce kaydettiği kopyayı kullanabilir. Sunucu bu nedenle içeriğin tamamını yeniden göndermek yerine önbellekteki sürümün hâlâ geçerli olduğunu belirtir.
304 yanıtının ortaya çıkmasında genellikle If-None-Match veya If-Modified-Since başlıkları rol oynar. Sunucunun ETag değeri istemcinin gönderdiği If-None-Match değeriyle eşleşirse kaynak değişmemiş kabul edilebilir. Tarih üzerinden yapılan kontrolde ise Last-Modified ile If-Modified-Since kullanılır.
304 Not Modified Durum Kodu bir hata mı?
Tek başına hayır. HTTP 304 Not Modified yanıtında içerik gövdesinin bulunmaması beklenen davranıştır. Sayfa güncel görünüyorsa ve değiştirilen dosyalar gerektiğinde 200 yanıtıyla yeniden geliyorsa herhangi bir düzeltme yapmak gerekmez.
Ben 304 kayıtlarını incelerken önce sayfanın gerçekten eski içerik gösterip göstermediğine bakıyorum. Yalnızca Geliştirici Araçları > Network bölümünde çok sayıda 304 görmek sorun kanıtı değildir. Tarayıcı geliştirici araçları da önbellek doğrulamasını görünür kılmak için ek istekler oluşturabilir.
Eski içerik görünüyorsa nereden başlanmalı?
İlk test tarayıcı önbelleğini devre dışı bırakarak yapılabilir. Chrome tabanlı tarayıcılarda Geliştirici Araçları > Network açıkken Disable cache seçeneğini kullanıp sayfayı yeniden yükleyin. Dosya bu kez güncel görünüyorsa araştırılması gereken yer önbellek zinciridir.
Problemli CSS, JavaScript veya görsel isteğini seçip Headers alanına da bakın. ETag, Last-Modified, Cache-Control, If-None-Match ve If-Modified-Since değerleri hangi doğrulama yönteminin kullanıldığını gösterir.
Özellikle If-None-Match varsa ETag önem kazanır. Hem If-None-Match hem de If-Modified-Since gönderildiğinde, sunucu destekliyorsa ETag tabanlı If-None-Match kontrolü önceliklidir. Kaynak gerçekten değiştiğinde yeni sürümün 200 yanıtıyla gönderilmesi beklenir.

WordPress önbelleğini temizlemek yeterli mi?
Bazen yeterlidir. Fakat sitenin birden fazla önbellek katmanı varsa WordPress içindeki cache temizlendiği halde tarayıcı veya sunucu eski kaydı kullanmaya devam edebilir.
Önce kullandığınız WordPress önbellek eklentisinin oluşturduğu kayıtları temizleyin. Sonra varsa sunucu veya CDN önbelleğini kontrol edin. Ardından tarayıcı önbelleği kapalıyken aynı sayfayı yeniden test edin.
Burada bütün ayarları aynı anda değiştirmek yerine tek tek ilerlemek daha sağlıklı. HTTP 304 Not Modified ortadan kaybolduğunda hangi değişikliğin etkili olduğunu böylece anlayabilirsiniz.
ETag ve Last-Modified neden kontrol edilmeli?
ETag, sunucunun belirli bir kaynak sürümünü tanımlamak için ürettiği değerdir. Tarayıcı bunu sonraki istekte If-None-Match ile geri gönderebilir. Değer hâlâ aynıysa sunucu 304 döndürür; değişmişse güncel içerik 200 yanıtıyla gönderilir.
Last-Modified ise kaynağın değişiklik zamanını belirtir. Tarayıcıdaki kopyanın tarihiyle sunucudaki kaynak karşılaştırılır. Bu nedenle HTTP 304 Not Modified yanlış zamanda oluşuyorsa yalnızca tarayıcıyı değil, sunucunun bu doğrulayıcıları doğru üretip üretmediğini de kontrol etmek gerekir.
Sunucu yapılandırması ne zaman incelenmeli?
Farklı tarayıcılarda aynı eski içerik görülüyorsa ve önbellek temizliği sonuç vermediyse sunucu yapılandırmasına bakılabilir. Apache veya Nginx tarafında önbellek başlıklarını etkileyen özel kurallar bulunabilir.

Bu kuralları doğrudan silmek yerine Cache-Control, ETag ve Last-Modified değerlerinin hangi katmandan geldiğini belirlemek daha güvenlidir. 2026 itibarıyla HTTP 304 Not Modified yanıtını tamamen kapatmaya çalışmak doğru yaklaşım değildir. 304 normal bir HTTP önbellek mekanizmasıdır; düzeltilmesi gereken şey, varsa yanlış doğrulama davranışıdır.
Sorunun tarayıcı, WordPress önbelleği veya sunucu yapılandırması arasında kaldığı durumlarda teknik inceleme gerekebilir. 2011’den bu yana Türkiye genelinde 7/24 destek sağlayan 11858, bilgisayar, akıllı TV, sosyal medya ve modem dahil farklı alanlarda hizmet veriyor. Gerektiğinde TeamViewer ve AnyDesk gibi lisanslı araçlarla uzaktan bağlantı sağlanıyor. Dakika bazlı şeffaf ücretlendirmeyle çalışan hizmetin yüzde 95 memnuniyet oranı ve 500.000’den fazla başarılı işlem tecrübesi bulunuyor.
Önbellek davranışı, ön yüzün WordPress’ten ayrıldığı yapılarda daha farklı noktalardan yönetilebilir. React ile Headless WordPress Sitesi Geliştirme konusu, istemci ile WordPress API katmanının nasıl ayrıldığını görmek açısından bağlantılıdır. Böyle bir yapıda HTTP başlıklarının hangi sistem tarafından üretildiğini bilmek, 304 kontrollerini de kolaylaştırır.
HTTP 304 Not Modified gördüğünüzde ilk hedef kodu ortadan kaldırmak olmamalı. Sayfa güncelse 304 görevini yapıyor demektir. Eski içerik geliyorsa ETag, Last-Modified ve önbellek zincirinde hangi bilginin güncel kalmadığını bulmak gerekir. Siz 304 sorunuyla tarayıcıda mı, WordPress önbelleğinde mi yoksa sunucu tarafında mı karşılaştınız? Deneyiminizi yorumlarda paylaşabilirsiniz.