Konu Başlıkları
Yükleniyor...

404 Sayfası: Önce Doğru Durum Kodu, Sonra Tasarım

404 Hata Sayfası: Soft 404, 410 Gone ve İşe Yarayan Yönlendirme

Bir 404 sayfasının güzel görünmesi tek başına kimseyi kurtarmıyor. Sunucu yanlış kod döndürüyorsa o sayfa arama motoru gözünde var olan bir sayfadır ve üzerindeki illüstrasyonun hiçbir hükmü kalmaz. Kırık bağlantıyla gelen ziyaretçiyi elde tutan şey de mizah değil, ona nereye gideceğini söyleyen iki üç öğedir.

Tasarımdan önce: sunucu ne söylüyor

404 tartışmalarının neredeyse tamamı görselden başlıyor. Oysa sayfanın işe yarayıp yaramadığını belirleyen şey yanıtın ilk satırında duruyor. Bakması on saniye sürer:

curl -I https://siteniz.com/olmayan-bir-adres

İlk satırda HTTP/1.1 404 Not Found yazmıyorsa geri kalanını konuşmanın anlamı yok. İki bozukluk çok yaygın: sayfa 200 OK ile dönüyor, ya da önce 302 ile /404 adresine yönlendirilip oradan 200 veriliyor. İkisinde de ekranda kocaman "sayfa bulunamadı" yazıyor, sunucu ise tam tersini söylüyor.

Google bu durumu soft 404 diye işaretler. Sayfa indekslenmez ama her taramada yeniden ziyaret edilir, raporlarda birikir ve bir süre sonra hangi adresin gerçekten kırık olduğunu ayırt edemez hale gelirsiniz. Sebebi genelde çok sade: hata şablonu normal bir view gibi render ediliyor, durum kodunu set eden satır hiç yazılmamış. PHP tarafında http_response_code(404) çıktı gönderilmeden önce çağrılmalı. Apache'de ErrorDocument 404 /404.php doğru davranır; aynı işi Redirect ile kurmak yanlıştır, çünkü yönlendirme "bu adres başka bir yere taşındı" demektir ve taşınmamıştır.

Tek sayfa uygulamalarda konu bir kat daha karışır. Sunucu bilinmeyen tüm yolları index.html'e düşürüyorsa istisnasız her adres 200 döner; ürünün kendisi 404 ekranını çizse bile arama motoru bunu göremez. Bu durumda bilinmeyen rotaların sunucu tarafında da tanınması, ya da en azından prerender katmanında 404 üretilmesi gerekir.

404, 410 ve 301 arasında seçim

Üçü aynı şey değil ve karıştırıldığında en çok zaman kaybettiren yer burası.

  • 404: Adres yok, sebebi belirsiz. Yarın var olabilir de. Varsayılan seçim budur.
  • 410 Gone: İçerik bilerek silindi, geri gelmeyecek. Arama motoru bu adresi listeden daha hızlı düşürür. Büyük arşiv temizliklerinde işi belirgin biçimde hızlandırır (çoğu ekibin varlığından bile haberi yok).
  • 301: Silinen içeriğin gerçek bir karşılığı varsa, oraya. Karşılığı olmayan yüzlerce adresi topluca ana sayfaya yönlendirmek yaygın bir refleks ama işe yaramaz; Google bunu da soft 404 sayar, üstelik kullanıcı aradığı yazının yerine ana sayfayı bulunca hiçbir şey kazanmış olmaz.

Pratik ölçüt şu: yönlendirme, gidilen sayfanın kullanıcının aradığı şeyin yerini tutması hâlinde doğrudur. Tutmuyorsa 404 vermek daha dürüst ve uzun vadede daha temiz.

Sayfanın üstünde gerçekten ne işe yarıyor

"404'ünüzü eğlenceli yapın, kullanıcı orada vakit geçirsin" tavsiyesi kendi içinde çelişiyor. Aynı yazılar birkaç satır sonra kullanıcıyı doğru içeriğe ulaştırmaktan söz ediyor. İkisi aynı anda olmaz: 404 sayfasında geçen süre bir başarı göstergesi değil, sürtünmedir. Ziyaretçi oraya bir şey aramaya geldi ve bulamadı.

İşe yarayan üç şey var. Birincisi, sitenin normal başlığı ve menüsü olduğu gibi durmalı; kullanıcı kendini bambaşka bir ekranda bulmamalı. İkincisi, URL'deki kelimelerle önceden doldurulmuş bir arama kutusu, hatta doğrudan o kelimelerin arama sonucu. /blog/404-hata-sayfasi-tasarimi adresinden gelen birine boş arama kutusu göstermek, elinizdeki en değerli ipucunu çöpe atmak demektir. Üçüncüsü, tek ve belirgin bir çıkış bağlantısı. Ana sayfa, site haritası, popüler yazılar, iletişim formu ve kategori listesini yan yana dizmek karar vermeyi kolaylaştırmıyor, zorlaştırıyor.

Mizah bu üçünün üstüne konursa hoş durur, yerine geçerse sinir bozar. Sayfaya mini oyun koyma fikrini ise fazla abartılı buluyorum: bir kez ekran görüntüsü alınır, sonra kimse bakmaz.

Ölçmediğiniz 404'ün tasarımı da boşuna

404 sayfasını canlıya alıp orada bırakmak en sık yapılan hata. Bu sayfaya her düşüşü, istenen adres ve referrer bilgisiyle birlikte kaydedin. Ayrım hemen ortaya çıkar: referrer kendi siteniz ise bu sizin kırık iç bağlantınızdır ve düzeltmesi beş dakikadır, dışarıdan geliyorsa 301 adayıdır, referrer yoksa çoğu zaman eski bir yer imi ya da bot trafiğidir.

Bu kayıtları haftada bir gözden geçirmek, 404 sayfasının tasarımına harcanan zamandan çok daha fazlasını geri veriyor. Amaç sonuçta o sayfayı güzelleştirmek değil, oraya düşen ziyaretçi sayısını azaltmak. İyi bir 404 sayfası, doğru kodu döndüren ve pek az görülen sayfadır.

Kaynak