Ana içeriğe geç

Rehberler / HTTP durum kodları açıklandı

404 Not Found: Bozuk Bağlantılar, Yumuşak 404'ler ve 410 Ne Zaman Kullanılır

Bir 404 Not Found, sunucunun o URL için mevcut bir temsili olmadığı anlamına gelir, ve kaynağın hiç var olup olmadığı veya geri gelip gelmeyeceği hakkında hiçbir şey söylemez. Bu belirsizlik tam olarak konudur: bir 404, düzeltmeniz gereken bozuk bir bağlantı, kasıtlı olarak kaldırdığınız bir sayfa, veya mükemmel çalışan ve yalnızca eksikmiş gibi davranan bir sayfa olabilir.

Bir 404'ün size söylediği ve söylemediği

RFC 9110 altında, bir 404, kaynak sunucusunun hedef kaynak için mevcut bir temsil bulamadığı, veya birinin var olduğunu ifşa etmeye istekli olmadığı anlamına gelir. Bu ifadeden iki ayrıntı çıkar.

Birincisi, bir 404 kalıcılık konusunda kasıtlı olarak kararsızdır. URL'nin ölü kalacağına söz vermez, ki tarayıcıların 404 URL'lerini uzun süre yeniden denemeye devam etmesinin nedeni budur. İkincisi, RFC 9111 altında 404 varsayılan olarak önbelleğe alınabilir, bu yüzden önbelleğe alan bir proxy veya CDN hatayı saklayabilir ve altta yatan sorunu düzelttikten sonra bile onu sunmaya devam edebilir. Bir 404 düzeltmesinden sonra her zaman önbelleği temizleyin ve yeniden test edin.

Bir 404 ayrıca normal, sağlıklı bir yanıttır. Her site bir miktar döndürür. Zamanınıza değer olanlar, çalışması gereken URL'ler veya insanların ulaşmaya çalıştığı URL'lerdir.

Bozuk bağlantı mı yoksa gerçekten kaldırıldı mı?

Bu iki durum bir durum kodunda aynı görünür ve zıt yanıtlar gerektirir.

Bozuk bir bağlantı, içeriğin var olduğu ama URL'nin yanlış olduğu anlamına gelir. Yaygın nedenler dahili bir bağlantıda bir yazım hatası, yayınlandıktan sonra düzenlenmiş bir slug, büyük/küçük harf duyarlılığı uyumsuzluğu, sondaki eğik çizgi farkı, URL şemasını değiştiren bir site geçişi, veya bir dosyayı yaymayı durduran bir dağıtımdır. Düzeltme, URL'yi geri yüklemek veya onu yönlendirmektir.

Gerçek bir kaldırma, içeriğin gittiği ve geri gelmeyeceği anlamına gelir: süresi dolmuş bir iş ilanı, üretimi durdurulmuş bir ürün, silinmiş bir hesap sayfası. Burada bir 404 dürüsttür ama tembeldir, çünkü tarayıcıları yeniden denemeye ve ziyaretçileri hiçbir şeyle baş başa bırakır.

Onları ayırt etmenin pratik yolu: bugün sitede bir yerde eşdeğer bir sayfa var mı? Evetse, yönlendirin. Hayırsa, 404 ile 410 arasında karar verin.

410 Gone, dürüst alternatif

410, kaynağın mevcut olduğunu ve kasıtlı olarak kaldırıldığını söyler, ve durumun kalıcı olması beklenir. 404 "bulunamadı" anlamına gelirken, 410 "kasıtlı olarak silindi, sormayı bırak" anlamına gelir.

İçeriği kasıtlı olarak emekliye ayırdığınızda ve bir yerine koyacak bir şeyiniz olmadığında 410 kullanın. Süresi dolmuş ilanlar, kullanımdan kaldırılan ürün sayfaları, ve yasal veya editoryal nedenlerle kaldırılan içerik için doğru sinyaldir. Arama motorları genellikle 410'u 404'ten daha güçlü, daha hızlı bir kaldırma sinyali olarak ele alır, ancak ikisi de sonunda URL'yi düşürür. 404 gibi, 410 da varsayılan olarak önbelleğe alınabilir.

Geri getirebileceğiniz herhangi bir şey için 410 kullanmayın, ve onu bilinmeyen URL'ler için genel bir işleyici olarak kullanmayın. Uygun bir yerine koyma sayfası varsa, bir yönlendirme her iki koddan da daha iyidir, ve yönlendirme seçimi önemlidir: doğrusunu seçmek için 301'e karşı 302'ye bakın.

Yumuşak 404'ler ve monitörlerin onları neden kaçırdığı

Yumuşak bir 404, içeriği kaynağın eksik olduğunu söylerken 200 OK döndüren bir sayfadır. Bir uygulama kendi bulunamadı durumunu yakalayıp durum kodunu ayarlamadan dostane bir "sayfa bulunamadı" şablonu işlediğinde, veya her eşleşmeyen URL için bir yakala-hepsi rotası ana sayfayı sunduğunda gerçekleşir.

Arama motorları ve çalışma süresi monitörleri sonra aynı sayfayı zıt şekillerde okur. Google işlenmiş içeriği inceler, eksik içerik örüntüsünü tanır ve onu Search Console'da yumuşak bir 404 olarak sınıflandırır, bu yüzden URL dizine eklenmez ama tarama bütçesi hâlâ ona harcanır ve sinyal bulanıklaşır. Durum kodlarını karşılaştıran bir monitör 200 görür ve sayfayı sağlıklı olarak bildirir, ki tüm bir bölümün kontrol paneli yeşil kalırken her ziyaretçiye "bulunamadı" metni sunabilmesinin nedeni budur.

Sitedeki düzeltme, hiçbir şeye mal olmayan ve her iki okuyucuyu da tatmin eden hata sayfasıyla gerçek bir 404 döndürmektir. İzlemedeki düzeltme, durumun yanı sıra içerik üzerinde de onay yapmaktır: gerçek sayfadan bilinen bir ifadenin var olduğunu kontrol edin, böylece yanlış gövdeyle 200 döndüren bir sayfa yine de kontrolü başarısız eder.

404'ler doğru sırada nasıl düzeltilir

  1. Görünür sayfayı değil gerçek kodu doğrulayın. Dostane bir hata ekranı hiçbir şey kanıtlamaz:
    curl -sS -o /dev/null -w "%{http_code}\n" https://example.com/missing-page
    "bulunamadı" okuyan bir sayfa için bu 200 yazdırıyorsa, yumuşak bir 404'ünüz var demektir.
  2. Hangi URL'lerin vurulduğunu bulun. Sunucu erişim kayıtları ve Search Console, her ikisi de hacimle 404 URL'lerini listeler. Alfabetik değil trafiğe göre düzeltin.
  3. Önce dahili bağlantıları düzeltin. Kendi navigasyonunuzdan ulaşılan bir 404, tamamen kontrolünüz altındadır ve en yüksek değerli düzeltmedir.
  4. Gerçek bir eşdeğer var olduğunda yönlendirin. Eski URL'yi en yakın mevcut sayfaya, bir seferde bir URL olarak eşleştirin. Arama motorlarının da yumuşak bir 404 olarak ele aldığı her şeyi ana sayfaya yönlendirmekten kaçının.
  5. Kasıtlı kaldırmalar için yerine koyacak bir şey olmadan 410 döndürün, böylece tarayıcılar yeniden denemeyi bırakır.
  6. 404 sayfasını yararlı yapın. Arama, ana navigasyon ve popüler bağlantılar, çıplak bir hata sayfasının kaybettiği ziyaretçileri kurtarır.
  7. Önbellekleri temizleyin ve yeniden test edin. 404 önbelleğe alınabilir olduğu için, düzeltilen URL'yi yalnızca kaynaktan değil ağınızın dışından doğrulayın.

Kodu ve içeriği birlikte kontrol etmek

Bir slug düzenlemesi, bir eklenti güncellemesi veya bir yönlendirme değişikliği, ana sayfa yüklenmeye devam ederken bir URL kümesini bozar, bu yüzden hiçbir şey uyarmaz ve trafik veya dönüşümler düşene kadar kimse fark etmez. Önemli URL'lerinizde zamanlanmış bir HTTP kontrolü, hem durum kodunu hem de beklenen sayfa içeriğini karşılaştırır, ki bu gerçek bir 404'ü ve yumuşak bir 404'ü aynı şekilde yakalar. Daha geniş istemci tarafı kod ailesi için, ve gerçek bir istemci hatasını bir sunucu yanlış yapılandırmasından ayırt etmek için, 4xx genel bakışına bakın.

Şimdi kontrol edin

Ücretsiz kontrolü kendi sitenizde çalıştırın - hesap gerekmez.

HTTP check

Bunu sürekli izleyin

Bir sorun çıktığı anda haberdar olun: HostTracker 300’den fazla konumdan kontrol eder ve size e-posta, SMS, Slack, Telegram ve daha fazlasıyla bildirim gönderir.

HostTracker özellikleri

Bu bölümde daha fazlası: HTTP durum kodları açıklandı