HTTP Durum Kodları ve Anlamları

HTTP Durum Kodları

HTTP durum kodları, bir web sitesinin arama motorlarıyla nasıl iletişim kurduğunu belirleyen önemli teknik unsurlardan biridir. Kullanıcıların siteyle olan etkileşimini ve SEO performansını doğrudan etkileyebilen bu kodlar, tarayıcı ile sunucu arasındaki iletişimin sonucunu ifade eder. Aynı zamanda arama motorlarına, bir sayfanın erişilebilir olup olmadığı ve içeriğin nasıl değerlendirilmesi gerektiği konusunda önemli bilgiler verir.

Örneğin, 200 OK kodu bir isteğin sorunsuz şekilde tamamlandığını ve sayfanın başarıyla sunulduğunu belirtirken, 404 Not Found kodu ziyaret edilmek istenen sayfanın sunucuda bulunamadığını ifade eder. Bu yanıtların doğru şekilde değerlendirilmesi, teknik SEO çalışmalarında göz ardı edilmemesi gereken temel konulardan biridir.

Arama motorları, karşılaştıkları HTTP durum kodlarını kullanarak sayfaların taranması, indekslenmesi ve arama sonuçlarındaki değerlendirilmesiyle ilgili çeşitli kararlar verir. Bu nedenle yanlış yapılandırılmış veya sürekli tekrarlanan hatalar, zamanla hem kullanıcı deneyimini hem de sitenin SEO performansını olumsuz etkileyebilir.

Bu kılavuz boyunca HTTP durum kodlarını ait oldukları kategorilere göre ele alacağız. Her kodun ne ifade ettiğini, hangi senaryolarda karşımıza çıktığını ve web sitenizin SEO çalışmaları açısından neden önemli olduğunu inceleyeceğiz.

HTTP Durum Kodları (HTTP Status Codes) Nedir?

Bir web sitesini ziyaret ettiğimizde tarayıcı ile sunucu arasında sürekli bir iletişim gerçekleşir. İşte bu iletişim sırasında sunucunun tarayıcıya veya arama motoru botlarına gönderdiği üç haneli yanıtlar HTTP durum kodları olarak adlandırılır. Her kod, sunucunun gelen isteğe nasıl karşılık verdiğini ve o anda ne olduğunu anlatan bir tür mesaj görevi görür.

HTTP durum kodları genel olarak beş farklı grupta değerlendirilir:

  • 1xx: Bilgilendirme mesajları
  • 2xx: Başarılı istekler
  • 3xx: Yönlendirmeler
  • 4xx: İstemci kaynaklı hatalar
  • 5xx: Sunucu kaynaklı hatalar

Bu kodların her birinin farklı bir anlamı vardır. Özellikle SEO açısından düşünüldüğünde HTTP durum kodları oldukça önemlidir. Çünkü Google gibi arama motorları, bir siteyi tararken karşılaştıkları bu yanıtları değerlendirerek sayfaların erişilebilirliği ve sitenin genel yapısı hakkında fikir edinir.

Örneğin bir sayfada sürekli 404 hatası oluşması, arama motorlarına artık erişilemeyen bir içerikle karşı karşıya olduklarını gösterir. Buna karşılık, taşınmış veya adresi değiştirilmiş bir sayfa için 301 yönlendirmesi kullanıldığında, eski URL ile yeni adres arasındaki bağlantı korunabilir ve mevcut link değerinin önemli bir kısmı yeni sayfaya aktarılabilir.

Doğru HTTP kodlarını kullanmanın faydası yalnızca arama motorlarıyla sınırlı değildir. Ziyaretçiler açısından da daha sorunsuz bir web deneyimi sağlar. Kullanıcıyı artık var olmayan bir sayfada bırakmak yerine ilgili yeni adrese yönlendirmek, sitenin kullanımını kolaylaştırır ve gereksiz sayfa hatalarının önüne geçer.

Bunun yanında Google’ın bir web sitesini taramak için ayırdığı kaynaklar sınırsız değildir. Arama motoru botlarının sürekli olarak gereksiz hatalarla, bozuk bağlantılarla veya yanlış yönlendirmelerle karşılaşması, tarama sürecinin verimsiz ilerlemesine neden olabilir. Bu nedenle HTTP durum kodlarının doğru yapılandırılması, botların site içerisinde daha sağlıklı ve verimli hareket etmesine yardımcı olur.

HTTP Durum Kodları

Aşağıda en sık karşılaşılan HTTP durum kodlarını ve bunların ne ifade ettiğini, SEO açısından ne anlama geldikleriyle birlikte inceleyelim.

# 1xx Durum Kodları: Bilgilendirme Kodları

1xx ile başlayan durum kodları, sunucunun isteği aldığını ve işlemin henüz tamamlanmadığını ifade eder. Yani sunucu, istemciye adeta “isteğini aldım, işlem devam ediyor” bilgisini verir. Bu kodlarla günlük kullanımda çok sık karşılaşılmaz. Genellikle tarayıcı ve sunucu arasındaki iletişim sırasında arka planda otomatik olarak işlenirler. Bu nedenle SEO açısından doğrudan önemli bir etkileri bulunmaz ve çoğu durumda site yöneticisinin herhangi bir işlem yapması gerekmez.

  • 100 Continue: İstemcinin sunucuya göndereceği isteğin devam edebileceğini belirtir. Özellikle büyük boyutlu veri gönderimi, form işlemleri veya dosya yükleme gibi durumlarda kullanılabilir. Sunucu bu yanıtla kısaca “göndermeye devam edebilirsin” mesajını verir. Kullanıcı tarafından doğrudan görülmediği gibi SEO açısından da kayda değer bir etkisi bulunmaz.
  • 101 Switching Protocols: Sunucunun mevcut iletişim protokolünden başka bir protokole geçiş yaptığını gösterir. Örneğin bir bağlantının HTTP üzerinden WebSocket iletişimine geçirilmesi sırasında bu kod kullanılabilir. Modern web uygulamalarında genellikle arka planda gerçekleşen teknik bir süreçtir ve SEO üzerinde belirgin bir etkisi yoktur.
  • 103 Early Hints: Daha yeni HTTP durum kodlarından biri olan 103 Early Hints, tarayıcıya asıl içerik gönderilmeden önce bazı kaynakların önceden yüklenebileceğini bildirmek için kullanılır. Örneğin CSS, JavaScript veya yazı tipi gibi kaynakların daha erken yüklenmesi sağlanabilir. Böylece sayfanın kullanıcıya daha hızlı ulaşmasına katkıda bulunur. SEO üzerindeki etkisi doğrudan değildir ancak sayfa performansını iyileştirebildiği için dolaylı olarak olumlu katkı sağlayabilir.

# 2xx Durum Kodları: Başarılı İstekler

2xx grubu, bir HTTP isteğinin başarıyla sonuçlandığını gösterir. Teknik açıdan bakıldığında web siteleri için en olumlu durum kodlarının bulunduğu gruptur. Özellikle normal web sayfalarında 200 durum kodunun alınması, sunucunun isteği başarıyla karşıladığını ve içeriğin erişilebilir olduğunu gösterir. SEO açısından da sağlıklı bir web sitesinde önemli sayfaların büyük bölümünün doğru şekilde erişilebilir olması beklenir.

  • 200 OK – Başarılı İstek: HTTP dünyasının en temel ve en sık kullanılan durum kodlarından biridir. Bir sayfa 200 OK yanıtı verdiğinde, sunucu istenen içeriği başarıyla sunmuş demektir. Kullanıcı sayfayı görüntüleyebilir ve arama motorları da içeriğe erişebilir. SEO açısından bu, normal ve sağlıklı sayfalar için beklenen durumdur. Önemli ve indekslenmesi gereken içeriklerin gereksiz yere farklı bir durum koduyla yanıt vermemesi gerekir.
  • 201 Created – Kaynak Oluşturuldu: Sunucunun yeni bir kaynak oluşturduğunu belirtir. Özellikle API’lerde ve dinamik uygulamalarda karşımıza çıkar. Örneğin yeni bir kullanıcı hesabı oluşturulduğunda veya sisteme yeni bir kayıt eklendiğinde sunucu 201 yanıtı verebilir. Bu kod doğrudan SEO odaklı bir durum değildir ve klasik web sayfalarında 200 kadar yaygın şekilde kullanılmaz.
  • 204 No Content – İçerik Yok: İstek başarılı şekilde işlenmiştir ancak sunucunun istemciye göndereceği bir içerik bulunmamaktadır. Örneğin bir kullanıcı bir gönderiyi beğendiğinde işlem sunucu tarafında tamamlanabilir ancak sayfanın yeniden yüklenmesine gerek kalmayabilir. Böyle durumlarda 204 kullanılabilir. SEO açısından sayfa içeriğini temsil eden normal bir durum kodu olmadığı için doğrudan bir etkisi bulunmaz.
>>  Yazılımcılar İçin Pasif Gelir Fikirleri: Gerçekten Çalışan Sistemler

3xx Durum Kodları: Yönlendirme Kodları

3xx kodları, istenen kaynağın farklı bir adreste bulunduğunu veya isteğin başka bir konuma yönlendirilmesi gerektiğini ifade eder. Bu grup özellikle teknik SEO açısından oldukça önemlidir. Çünkü URL değişiklikleri, site taşımaları, eski içeriklerin yeni sayfalara aktarılması ve link değerinin korunması gibi birçok işlem yönlendirmeler üzerinden gerçekleştirilir. Yanlış yönlendirme kullanımı, arama motorlarının sayfaları değerlendirme biçimini ve kullanıcıların doğru içeriğe ulaşmasını olumsuz etkileyebilir.

  • 301 Moved Permanently – Kalıcı Yönlendirme: 301, bir URL’nin kalıcı olarak başka bir adrese taşındığını belirtir. Örneğin eski bir ürün sayfasını yeni URL’sine taşıdıysanız veya site adresiniz değiştiyse, eski URL’den yeni URL’ye 301 yönlendirmesi yapılabilir. SEO açısından en önemli yönlendirme türlerinden biridir. Arama motorlarının eski URL’nin yerine yeni adresi değerlendirmesine yardımcı olur ve eski URL’nin sahip olduğu sinyallerin önemli bölümünün yeni adrese aktarılmasını sağlar.
    • Ne zaman kullanılır?
      • Kalıcı URL değişikliklerinde
      • HTTP’den HTTPS’e geçişte
      • Alan adı değişikliklerinde
      • Eski ve yeni içeriklerin birleştirilmesinde
      • URL yapısının kalıcı olarak değiştirilmesinde
  • 302 Found – Geçici Yönlendirme: 302, bir kaynağın geçici olarak farklı bir URL’de bulunduğunu ifade eder. Buradaki temel nokta, değişikliğin kalıcı olarak düşünülmemesidir. Bu nedenle arama motorları eski URL’yi tamamen terk etmek yerine, asıl adresin hâlâ kullanılabileceğini değerlendirebilir. A/B testleri, geçici kampanyalar veya kısa süreli bakım senaryoları gibi durumlarda kullanılabilir. Kalıcı bir değişiklik yapıldığı halde 302 kullanmak doğru bir yaklaşım değildir. Böyle durumlarda genellikle 301 tercih edilmelidir.
  • 307 Temporary Redirect – Geçici Yönlendirme: 307 de 302 gibi geçici yönlendirme amacıyla kullanılır. Ancak HTTP metodunun değiştirilmemesi konusunda daha katı bir davranış sergiler. Örneğin GET veya POST gibi kullanılan HTTP yöntemi yönlendirme sırasında korunur. SEO açısından temel yaklaşım 302’ye benzerdir: geçici bir yönlendirme olarak değerlendirilir ve kalıcı URL değişiklikleri için tercih edilmemelidir.
  • 308 Permanent Redirect – Kalıcı Yönlendirme: 308, kalıcı yönlendirme mantığı açısından 301’e benzer. Temel farklardan biri, kullanılan HTTP metodunun korunmasıdır. Kalıcı bir URL değişikliği söz konusu olduğunda kullanılabilir ve SEO açısından 301 ile benzer bir amaca hizmet eder.

4xx Durum Kodları: İstemci Kaynaklı Hatalar

4xx kodları, sunucunun isteği işleyememesinin istemci tarafından gönderilen istekle ilgili olduğunu gösterir. Yanlış bir URL, erişim yetkisinin bulunmaması, hatalı istek biçimi veya artık mevcut olmayan bir sayfaya ulaşılmaya çalışılması bu gruptaki kodlarla sonuçlanabilir. SEO açısından bütün 4xx hatalarını aynı şekilde değerlendirmek doğru değildir. Bazıları tamamen normal olabilirken bazıları önemli teknik problemlerin göstergesi olabilir.

  • 400 Bad Request – Hatalı İstek: Sunucu, gönderilen isteği anlayamadığında veya isteğin biçiminde bir problem olduğunda 400 durum kodu döndürebilir. Hatalı oluşturulmuş URL’ler, bozuk parametreler veya geçersiz veriler buna neden olabilir. Tek başına ciddi bir SEO problemi oluşturmayabilir. Ancak arama motoru botlarının önemli sayfalara sürekli 400 hatasıyla karşılaşması, teknik yapının incelenmesini gerektirir.
  • 401 Unauthorized – Kimlik Doğrulama Gerekli: Bu kod, istenen kaynağa erişebilmek için kimlik doğrulaması gerektiğini ifade eder. Üyelik sistemi, kullanıcı hesabı veya giriş yapılmasını gerektiren özel alanlarda kullanılması normaldir. Ancak herkese açık olması gereken bir sayfa yanlışlıkla 401 döndürüyorsa problem vardır. Google içeriğe erişemediği için sayfayı normal şekilde tarayıp indeksleyemez.
  • 403 Forbidden – Erişim Yasak: 403 yanıtı, sunucunun isteği anladığını ancak istenen kaynağa erişime izin vermediğini gösterir. 401’den temel farkı, sorunun yalnızca giriş yapılmamış olmasıyla sınırlı olmamasıdır. Sunucu erişimi doğrudan reddetmektedir. Önemli ve herkese açık olması gereken bir sayfanın yanlışlıkla 403 vermesi SEO açısından ciddi sonuçlara yol açabilir.
  • 404 Not Found – Sayfa Bulunamadı: Web dünyasının en tanıdık hata kodlarından biridir. 404, istenen URL’nin sunucuda bulunamadığını ifade eder. Sayfanın silinmesi, URL’nin yanlış yazılması veya sitedeki bozuk bir bağlantı bu hataya neden olabilir. Az sayıda 404 hatası her web sitesinde görülebilir ve tek başına SEO problemi anlamına gelmez. Asıl sorun, önemli içeriklerin yanlışlıkla 404 vermesi veya sitede çok sayıda gereksiz kırık bağlantının oluşmasıdır. Artık kullanılmayan ancak yerine başka bir içerik gelen önemli URL’ler uygun bir sayfaya 301 ile yönlendirilebilir. Gerçekten ortadan kaldırılmış ve alternatif bir karşılığı bulunmayan sayfaların ise 404 vermesi normaldir.
  • 410 Gone – Kaynak Kalıcı Olarak Kaldırıldı: 410, bir kaynağın artık mevcut olmadığını ve bilinçli olarak kalıcı şekilde kaldırıldığını ifade eder. 404 ile benzer görünse de burada kaynağın geri dönmeyeceği daha açık biçimde belirtilir. Bir içerik tamamen kaldırılmışsa ve gelecekte yeniden yayınlanması beklenmiyorsa 410 kullanılabilir. Arama motorlarının bu URL’nin artık kullanılmadığını daha net anlamasına yardımcı olur.
  • 429 Too Many Requests – Çok Fazla İstek: Sunucu, belirli bir süre içerisinde kabul edebileceğinden fazla istek aldığında 429 durum kodunu kullanabilir. Genellikle rate limiting olarak bilinen istek sınırlama mekanizmasının bir sonucudur. Güvenlik ve performans açısından faydalı bir mekanizma olsa da Googlebot gibi arama motoru botları önemli ölçüde 429 yanıtı alıyorsa sitenin tamamı gerektiği gibi taranamayabilir. Bu nedenle özellikle büyük ve yoğun trafiğe sahip sitelerde doğru yapılandırılması önemlidir.
>>  API Nedir ve API Entegrasyonu Nasıl Yapılır?

5xx Durum Kodları: Sunucu Kaynaklı Hatalar

5xx kodları, isteğin sunucu tarafında karşılanamadığını gösterir. 4xx grubunda sorun genellikle istemcinin gönderdiği istekle ilgiliyken, 5xx hatalarında problemin kaynağı sunucu, uygulama, veritabanı veya sunucu ile diğer sistemler arasındaki iletişim olabilir. SEO açısından uzun süre devam eden 5xx hataları özellikle dikkat edilmesi gereken problemlerdir. Çünkü arama motoru botları sayfalara ulaşamaz ve sitenin taranması sekteye uğrayabilir.

  • 500 Internal Server Error – Genel Sunucu Hatası: 500, sunucunun isteği yerine getirirken beklenmeyen bir problemle karşılaştığını ifade eder. Kodlama hataları, veritabanı problemleri, yanlış sunucu yapılandırmaları veya aşırı sistem yükü gibi farklı nedenlerle ortaya çıkabilir. Kısa süreli 500 hataları her zaman ciddi bir SEO problemi oluşturmaz. Ancak önemli sayfalar sürekli olarak 500 döndürüyorsa durum farklıdır. Arama motorları sayfaya tekrar tekrar ulaşamadığında zaman içinde indeksleme ve görünürlük sorunları yaşanabilir. Böyle bir durumda sunucu loglarının incelenmesi, uygulama hatalarının kontrol edilmesi ve gerekiyorsa sunucu kaynaklarının artırılması gerekir.
  • 502 Bad Gateway – Hatalı Ağ Geçidi Yanıtı: 502, bir sunucunun başka bir sunucudan geçerli bir yanıt alamadığını gösterir. Özellikle proxy, CDN, load balancer veya birden fazla sunucunun birlikte çalıştığı sistemlerde karşılaşılabilir. Kısa süreli 502 hataları genellikle kalıcı bir SEO problemi oluşturmaz. Fakat hata sık sık tekrarlanıyorsa arama motorlarının siteyi taraması olumsuz etkilenebilir.
  • 503 Service Unavailable – Hizmet Kullanılamıyor: 503, sunucunun isteği geçici olarak karşılayamadığını belirtir. Planlı bakım çalışmaları, aşırı trafik veya sunucu kaynaklarının geçici olarak yetersiz kalması gibi durumlarda kullanılabilir. Burada önemli olan hatanın ne kadar sürdüğüdür. Kısa süreli bir bakım sırasında 503 kullanılması normaldir. Ancak günler boyunca devam eden 503 yanıtları, arama motorlarının sayfalara erişmesini ve indeksleme sürecini olumsuz etkileyebilir. Planlı bir bakım söz konusuysa 503 yanıtıyla birlikte Retry-After başlığının kullanılması faydalı olabilir. Böylece istemcilere ve botlara hizmetin ne zaman yeniden kontrol edilmesi gerektiği konusunda bilgi verilebilir.
  • 504 Gateway Timeout – Ağ Geçidi Zaman Aşımı: 504, sunucunun başka bir sunucudan beklediği yanıtı belirlenen süre içerisinde alamadığını ifade eder. Mantık olarak 502’ye benzer ancak burada temel problem, diğer sunucudan zamanında yanıt gelmemesidir. Veritabanı gecikmeleri, yoğun trafik, yavaş çalışan uygulamalar veya sunucular arasındaki iletişim problemleri 504 hatalarına neden olabilir. Kısa süreli olması genellikle büyük bir sorun oluşturmaz. Ancak düzenli şekilde tekrarlanıyorsa hem kullanıcı deneyimi hem de arama motorlarının siteyi tarama süreci açısından incelenmesi gerekir.

📌 5xx hatalarını uzun süre görmezden gelmemek gerekir. Özellikle önemli sayfalarda bu tür hatalar tekrarlanıyorsa Google Search Console üzerinden tarama ve indeksleme raporlarını kontrol etmek, ardından sunucu loglarını incelemek iyi bir başlangıç noktasıdır.

HTTP Durum Kodları: Tablo

HTTP Durum KodlarıAçıklama
1xxBilgi (Informational)
100Continue – İstek kabul edildi ve işlem devam ediyor
101Switching Protocols – Protokol değiştiriliyor
2xxBaşarı (Successful)
200OK – İstek başarıyla tamamlandı
201Created – Yeni bir kaynak başarıyla oluşturuldu
202Accepted – İstek kabul edildi, ancak işlem henüz tamamlanmadı
203Non-authoritative Information – Yetkili Olmayan Bilgiler
204No Content – İstek başarıyla tamamlandı, ancak içerik yok
205Reset Content – İçeriği sıfırla
206Partial Content – Kısmi içerik
207Multi-Status – Çoklu durum
208Already Reported – Zaten Bildirildi
226IM Used – IM Kullanımı
3xxYönlendirme (Redirection)
300Multiple Choices – Birden fazla seçenek var, kullanıcı birini seçmeli
301Moved Permanently – Kaynak kalıcı olarak taşındı, yeni URI
302Found – Kaynak geçici olarak başka bir URI’de bulundu, geçici yönlendirme
303See Other – Farklı bir kaynağa GET isteği yapmayı gerektirir
304Not Modified – Kaynak, istemcinin önbelleğinde bulunuyor ve güncellenmedi
305Use Proxy – Proxy Kullan
306Proxy’yi Değiştir
307Temporary Redirect – Kaynak geçici olarak başka bir URI’de bulundu, ancak orijinal URI kullanılmalı
308Permanent Redirect – Kalıcı Yönlendirme
4xxİstemci Hatası (Client Error)
400Bad Request – İstek hatalı veya anlaşılamadı
401Unauthorized – Yetkilendirme hatası, kullanıcı kimlik bilgileri gerekli
402Payment Required – Ödeme gerekli
403Forbidden – Kaynağa erişim yasaklandı
404Not Found – İstenen kaynak bulunamadı
405Method Not Allowed – Belirtilen HTTP metodu kaynak üzerinde kullanılamaz
406Not Acceptable – Kabul edilemez
407Proxy Authentication Required – Proxy Kimlik Doğrulaması Gerekli
408Request Timeout – İstek zaman aşımına uğradı
409Conflict – İstek, kaynakta bir çatışma yarattı
410Gone – İstek yapılan kaynak artık mevcut değil
411Length Required – İstek, içeriğin uzunluğu belirtilmemiş
412Precondition Failed – Ön Koşul Başarısız
413Payload Too Large – İstek gövdesi çok büyük
414Request – URI Too Long – URI çok uzun
415Unsupported Media Type – Desteklenmeyen medya türü
416Requested Range Not Satisfiable – İstek Aralığı Tahmin Edilemez
417Expectation Failed – Beklenti Başarısız
418I am a teapot – Ben Bir Çaydanlığım (Hyper Text Coffee Pot Control protokolüne referans olarak 1998’de yapılmış bir 1 Nisan şakası)
421Misdirected Request – Yanlış Yönlendirilmiş İstek
422Unprocessable Entity – İşlenemeyen Varlık
423Locked – Kilitli
424Failed Dependency – Başarısız bağımlılık
425Too Early – Çok erken
426Upgrade Required – Güncelleme Gerekli
428Precondition Required – Gerekli Önkoşul
429Too Many Requests – İstek sıklığı sınırlarını aştı
431Request Header Fields Too Large – İstek Başlık Alanı Çok Geniş
444Connection Closed Without Response – Cevapsız Bağlantı Kapatıldı
451Unavailable For Legal Reasons – Yasal Sebeplerden Dolayı Kullanılamıyor
499Client Closed Request – İstemci İsteği Kapattı
5xxSunucu Hatası (Server Error)
500Internal Server Error – Genel sunucu hatası
501Not Implemented – İstek yapılamaz, henüz desteklenmiyor
502Bad Gateway – Sunucu, geçerli bir yanıt alamıyor
503Service Unavailable – Sunucu geçici olarak hizmet dışı
504Gateway Timeout – Sunucu, geçerli bir yanıt alamıyor (zaman aşımı)
505HTTP Version Not Supported – HTTP versiyonu desteklenmiyor
506Variant Also Negotiates – Sunucuda dahili konfigürasyon hatası
507Insufficient Storage – Yetersiz depolama
508Loop Detected – Döngü Algılandı
510Not Extended – Kaynağa erişim politikası talepte karşılanmadı
511Network Authentication Required – Ağ Kimlik Doğrulaması Gerekli
599Network Connect Timeout Error – Ağ Bağlantısı Zaman Aşımı

Teknoloji ve internet dünyasına dair bilgiler, yapay zeka, yazılım, internet güvenliği ve dijital dünyaya yönelik rehber içerikler...