301 ve 308 Yönlendirmesi

301 ile 308’in ikisi de kalıcı yönlendirmedir; temel fark HTTP yöntemi ve gövdenin korunmasıdır. 308’in neden var olduğunu, Google ve Bing’in onu 301 gibi nasıl işlediğini ve ne zaman 308 seçileceğini açıklar.

İlk yayın tarihi: 2 Tem 2026 · Son güncelleme: 9 Ağu 2026 · Advanced
Diller
Bu sayfada 1 kanıt sinyali

301 ve 308 kalıcı yönlendirmelerdir; Google ve Bing tarama, dizine ekleme ve sinyal işleme açısından 308’i 301 gibi ele alır. Protokol düzeyindeki temel fark mekaniktir: 308 istemcinin aynı istek yöntemini ve gövdeyi yeni URL’de korumasını garanti eder; POST yöntemi korunur. 301’de eski istemciler POST’u GET’e çevirebilir. Kullanıcı ve bot davranışı aynı kalıcı taşımayı anlatıyorsa 301 basit varsayılandır; API, webhook veya form verisinde yöntemi ve gövdeyi korumanız gerekiyorsa 308 kullanın.

TL;DR — 301 ve 308 yönlendirmelerinin ikisi de kalıcıdır; Google ile Bing 308’i 301 ile aynı işler. Google dokümanları 308’i “equivalent to 301 (Türkçe çeviri)301 ile eşdeğer” diye tanımlar; Illyes “we just merge that with 301,” (Türkçe çeviri) “onu 301 ile birleştiriyoruz” der ve Canel de Bing’in ikisini aynı işlediğini doğrular. Protokol düzeyindeki temel fark yöntemin korunmasıdır: 308 (RFC 7538, 2015), istemcinin yeni URL’de aynı yöntemi tekrarlamasını mekanik olarak garanti eder ve gövde yöntemle birlikte taşınır. HTTP/1.0 döneminden gelen 301 ise özellikle POST’un GET’e dönüşmesi konusunda belirsizdir; RFC, PUT veya DELETE için iki yönde de hüküm vermez, bu nedenle POST uyarısını bu yöntemlere genellemeyin. 308, 307’nin kalıcı kardeşi olmak için vardır: RFC 7231 geçici ve yöntemi koruyan 307’yi tanımlamış, kalıcı karşılığını tanımlamamıştı; 308 bu boşluğu doldurdu. Sıradan sayfa, site ve HTTPS taşımalarında daha eski, daha yaygın tanınan ve CDN/CMS/eklenti desteği daha geniş olan 301’i varsayılan alın. 308’i yalnızca API uç noktası, webhook URL’si, form eylem hedefi veya kimlik doğrulama POST akışı gibi GET dışı isteği korumanız gerektiğinde seçin. O durumda bile durum kodunun her şeyi kapsadığını varsaymak yerine gerçek istemcide kimlik bilgilerini, çerezleri ve idempotensiyi doğrulayın. Hiçbiri “SEO için daha iyi” değildir; motorlar bu efsaneyi açıkça çürütmüştür.

Önce anlamsal fark gelir

301 ile 308, kalıcılık konusunda arama motorlarına aynı şeyi söyler: kaynak kalıcı olarak taşınmıştır ve hedef kanonik olmalıdır. Fark, istemcinin isteği yeniden gönderme biçimine ilişkin dar ve mekanik bir garantidedir.

  • 301 (Moved Permanently) HTTP/1.0 döneminden kalan ilk kalıcı yönlendirme kodudur. İstek yönteminin korunup korunmayacağı konusunda başından beri belirsizdir. Uygulamada tarayıcılar ve istemciler 301’i izlerken POST’u GET’e çevirebilmiştir; bu sıradan bir sayfada sorun yaratmaz, ancak yönteme veya istek gövdesine bağlı işlemleri sessizce bozar.
  • 308 (Permanent Redirect) katı sürümdür. İstemcinin tam olarak aynı yöntemi ve gövdeyi yeni URL’ye yeniden göndermesini garanti eder. İstemci POST yöntemini korur; yük de yeni adrese onunla birlikte gider.

Bir cümleyle anlatmak gerekirse: 308, tarayıcının POST isteğinizi sessizce GET’e çevirmeyeceğini de garanti eden bir 301’dir. Evidence for this claim RFC 9110 defines both 301 and 308 as permanent redirects; 308 forbids changing the request method, while 301 permits POST-to-GET rewriting for historical reasons. Scope: HTTP semantics for 301 and 308 responses. Confidence: high · Verified: IETF: RFC 9110 §§15.4.2, 15.4.9 IETF: RFC 7538 §3 — 308 Permanent Redirect

308 neden var: eksik “kalıcı 307”

Bu karşılaştırmayı anlamanın en temiz yolu, spesifikasyondaki bir boşluğa bakmaktır.

Modern yönlendirme kodları geçici/kalıcı ve gevşek/katı olmak üzere iki eksenli bir ızgara oluşturur:

GeçiciKalıcı
Yöntem değişebilir (gevşek)302301
Yöntem korunur (katı)307308

RFC 7231, gevşek ve belirsiz 302’nin katı karşılığı olarak geçici ve yöntemi koruyan 307 kodunu tanımladı. Ancak yöntemi koruyan kalıcı bir karşılık tanımlamadı: katı geçici kod vardı, katı kalıcı kod yoktu. RFC 7538 (Nisan 2015) bu boşluğu doldurmak için 308’i ekledi; 308’in 301’e ilişkisi, 307’nin 302’ye ilişkisi gibidir. Bu kümedeki 302-vs-307 karşılaştırmasını okuduysanız 301-vs-308, aynı ilişkinin bir üst satırıdır: gevşek kalıcı kod ile katı kalıcı kod.

301 bu çerçevenin tamamından eskidir. “Yöntemi koruma” kavramı resmileştirilmeden önce, HTTP/1.0 ile ortaya çıkmıştır. Belirsiz olmasının ve yalnızca açıklığa kavuşturulmak yerine 308’in oluşturulmasının nedeni tam olarak budur.

“Yöntem ve gövdenin korunması” pratikte ne demek

Yönlendirmelerin ezici çoğunluğunda — biri bağlantıya tıklar, tarayıcı GET gönderir ve sunucu başka yere yollar — pratik bir fark yoktur. Modern tarayıcılar 301 üzerinden GET’i doğru biçimde korur. Fark, yalın GET olmayan isteklerde ortaya çıkar:

İstek türü301 arkasında308 arkasında
GET (normal sayfa)GET olarak izlenir (pratikte sorun yok)GET olarak izlenir
POST (form, API)Sessizce GET’e çevrilebilir; gövde kaybolurPOST olarak tekrarlanır; gövde korunur
PUT / DELETE (API)RFC’de belgelenmemiştir — tarihsel izin yalnızca POST→GET içindir; istemciye özgü kabul edinYöntem korunur (308’in otomatik izleme kuralı yalnızca POST’a özgü değildir)

301’deki risk doğrudan POST ve istek gövdeleriyle ilgilidir: formlar, API’ler, webhook’lar ve kimlik doğrulama akışları. “301 formumu her zaman bozar” demek abartıdır; yalın GET güvenlidir. 301 için spesifikasyonun tarihsel istisnası POST→GET’tir; PUT veya DELETE davranışını belgelemiyor, bu nedenle gerçek istemciyi test etmeden hiçbir kodun bu yöntemlerde nasıl davranacağını varsaymayın. 308’in açık garantisi yöntemin korunmasıdır; başlıkların, çerezlerin, kimlik bilgilerinin veya daha geniş işlemin değişmeden kalacağını ayrıca vaat etmez. Önemli akışlarda bunları test edin.

Google 301 ile 308’i SEO açısından farklı mı ele alır? Hayır.

Bu, belgelerin, Google çalışanlarının ve Bing’in yıllardır aynı cevabı verdiği nadir yönlendirme sorularındandır.

Google’ın HTTP durum kodları dokümanı 301 ile 308’i aynı gruba koyar. 301 satırında “Google follows the redirect, and Google systems use the redirect as a strong signal that the redirect target should be processed” (Türkçe çeviri) “Google yönlendirmeyi izler ve Google sistemleri, yönlendirme hedefinin işlenmesi gerektiğine dair güçlü bir sinyal olarak yönlendirmeyi kullanır” yazar. 308 satırının tamamı tek cümledir: “Equivalent to 301.” (Türkçe çeviri)301 ile eşdeğer.” Bu, yanıtın en güçlü ve en kolay alıntılanabilir kanıtıdır: Google’ın kendi dokümanı iki kodu açıkça eşitler. Evidence for this claim Google treats 308 as equivalent to 301 for Search while advising sites to use the semantically appropriate status code. Scope: Google Search processing; client behavior still differs when method preservation matters. Confidence: high · Verified: Google: HTTP status codes and Search

Yönlendirmeler rehberi de bunu pekiştirir; “301 ve 308 durum kodları bir sayfanın kalıcı olarak yeni bir konuma taşındığı anlamına gelir” diyerek başlar ve başka hiçbir yerde ayrım yapmaz.

Google çalışanları bunu dokümana eklenmeden yıllar önce de söylüyordu:

  • Gary Illyes (2021): Google’ın 308’i 301 gibi işleyip işlemediğiyle ilgili bir tartışmada, Google’ın “just merge[s] that with 301 so we really don’t care” (Türkçe çeviri) “onu 301 ile birleştirdiğini, dolayısıyla gerçekten önemsemediğini” söyledi. Barry Schwartz bu açıklamayı, yaklaşımın resmiyet kazandığı an olarak aktardı: “Three years later it was added to the official Google documents that Google treats 308 redirects like 301 redirects — so now it is official.” (Türkçe çeviri) “Üç yıl sonra Google’ın 308 yönlendirmelerini 301 gibi işlediği resmî Google dokümanlarına eklendi; artık resmî.”
  • John Mueller (2018): üç yıl önce “If you use it [a 308 redirect] like a 301 we’ll treat it as such” (Türkçe çeviri) “Onu [308 yönlendirmesini] 301 gibi kullanırsanız biz de öyle işleriz” demişti. Dolayısıyla bu, dokümanlar güncellenmeden çok önce de Google’ın gayriresmî yaklaşımıydı.

Google’ın dokümanlarında önemli bir nüans var ve makalenin tezi de budur. Kodları eşitledikten hemen sonra şöyle ekler: “While Google treats these status codes the same way, keep in mind that they’re semantically different. Use the status code that’s appropriate for the redirect so other clients (for example, e-readers, other search engines) may benefit from it.” (çeviri) “Google bu durum kodlarını aynı ele alsa da anlamsal olarak farklı olduklarını unutmayın. Diğer istemciler (örneğin e-kitap okuyucuları ve diğer arama motorları) bundan yararlanabilsin diye yönlendirmeye uygun kodu kullanın.” Yani kodu SEO için değil, doğruluk ve birlikte çalışabilirlik için seçin; SEO açısından fark yoktur.

Bing 301 ile 308’i farklı mı ele alır? O da hayır.

Bu konudaki yazıların çoğu yalnızca Google’ı ele aldığı için Bing tarafında bir boşluk kalır. Bing’den Fabrice Canel, Eylül 2024’te kalıcı 308’in 301 ile aynı işlenip işlenmediğini soran birine doğrudan yanıt verdi: “Bing treats 308 redirects the same as 301 redirects.” (Türkçe çeviri) “Bing, 308 yönlendirmelerini 301 yönlendirmeleriyle aynı işler.” Schwartz bunun Google’ın 2021’deki açıklamasıyla uyumlu olduğunu belirtti.

İki büyük arama motorunun kaydı da aynı: tarama, dizine ekleme ve sinyal birleştirme açısından 308 işlevsel olarak 301 ile aynıdır. Hiçbir motor 308’i SEO bakımından üstün saymaz.

Çürütülecek efsane: “308 SEO için daha iyi / tüm kalıcı yönlendirmeleri taşıyın”

Niteliksiz sayfalar tersini ima etmeyi sürdürdüğü için açık konuşalım: Sıradan bir yönlendirmede 301 yerine 308 seçmenin SEO getirisi yoktur ve mevcut 301’lerinizi topluca 308’e geçirmeniz için hiçbir neden bulunmaz. Bu bir görüş değil, arama motorlarının açıkladığı yaklaşımdır:

  • Google dokümanları 308’in “equivalent to 301 (Türkçe çeviri)301 ile eşdeğer” olduğunu söyler.
  • Illyes: “we just merge that with 301.” (Türkçe çeviri) “onu 301 ile birleştiriyoruz.”
  • Canel: Bing “treats 308 redirects the same as 301 redirects” (Türkçe çeviri) “308 yönlendirmelerini 301 yönlendirmeleriyle aynı işler.”

301’i 308’le topluca değiştirmek sıralama açısından hiçbir kazanç sağlamaz; yalnızca 301/302’yi sorunsuz tanıyan eski veya kenar araçlarda risk yaratır. Bu, gereksiz bir operasyonel değişikliktir.

Bunu gerçekten tartışılmış bir efsaneyle karşılaştırmak yararlıdır: eski “301’ler PageRank kaybeder veya PageRank’i seyreltir” iddiası. Bu iddia hâlâ ara sıra ortaya çıkar ve Google tarafından defalarca çürütülmüştür. Ancak aradaki farka dikkat edin: PageRank seyreltme efsanesinde Google bir yanlış anlamayı düzeltir; 301-vs-308 eşdeğerliğinde ise Google, Bing ve dokümanlar 2018’den beri tutarlı biçimde aynı şeyi söyler. Bu tartışmalı değil, sonuçlanmış bir sorudur. (PageRank’in tam öyküsü bu kümedeki 301-vs-302 karşılaştırmasındadır.)

308 ne zaman teknik olarak doğru seçimdir

İstek yönteminin veya gövdesinin kaybolması işlevselliği (sıralamayı değil) bozacaksa 308’i seçin:

  • Taşıdığınız ve istemcilerin POST/PUT/DELETE gönderdiği API uç noktaları.
  • Gönderenin kaybetmemeniz gereken bir yükü POST ettiği webhook URL’leri.
  • <form> öğesinin veriyi eksiksiz ulaştırması gereken form eylemi hedefleri.
  • Kimlik bilgilerinin veya belirteçlerin gövdede taşındığı giriş/kimlik doğrulama POST akışları.

POST için 301, istemcinin isteği GET’e çevirip gövdeyi yolda bırakmasına neden olabilir; 308 bu dönüşümü yasaklar. PUT/DELETE için RFC 301 davranışını iki yönde de açıklamaz, bu yüzden varsayım yapmayın; 308’in yöntem koruma kuralı hangi yöntem kullanılırsa kullanılsın geçerlidir.

Bir API, webhook veya kimlik doğrulama akışını değiştirmeden önce durum kodunun tek başına her şeyi koruyacağını varsaymayın; aynı geçişte şu noktaları kontrol edin:

  • Kimlik bilgileri, çerezler ve yetkilendirme başlıkları. Her iki kod da burada garanti vermez; tarayıcı, SDK veya webhook göndereni gibi gerçek istemciyi test edin.
  • Çapraz kaynak davranışı. Kaynaklar arası yönlendirme, tarayıcının veya fetch istemcisinin göndereceği veriyi değiştirebilir; yalnızca curl ile değil gerçek çağrıcıyla doğrulayın.
  • İdempotensi ve yinelenen yan etkiler. Bir yönlendirmeden sonra yeniden denenen istek idempotent değilse (kayıt oluşturan webhook veya ödeme POST’u gibi) iki kez çalışabilir. 308’e “çalışır” diye güvenmeden önce hedefin tekrarı güvenle işlemesini sağlayın.
  • Önbelleği hesaba katarak aşamalı yayın ve geri alma. 301 ve 308 yanıtları sezgisel olarak önbelleğe alınabilir. Eski yanıtı önceden önbelleğe alan istemci, kodu değiştirdikten sonra da onu kullanabilir; hem yeni istemciyle hem de değişiklikten önce URL’ye erişmiş istemciyle test edin ve geri alma planınızı bu duruma göre yapın.

301 ne zaman pratik varsayılan olarak kalır

SEO uzmanlarının yönlendirdiği şeylerin çoğu yalın GET’tir; bu nedenle 301 mantıklı varsayılan olmaya devam eder:

  • Standart sayfa/URL değişiklikleri ve içerik taşımaları.
  • Alan adı değişiklikleri ve site birleştirmeleri.
  • HTTP → HTTPS geçişleri.
  • www/non-www veya sondaki eğik çizgi varyantlarını birleştirme.

308 daha “katı” olduğu hâlde neden eski kodu varsayılan alalım? Üç pratik nedeni var:

  1. Daha geniş tanınırlık. 301, 308’den yirmi yıl önce vardır ve güncel ya da eski tarayıcıların, proxy’lerin, CDN’lerin, tarayıcı botlarının ve analiz araçlarının ezici çoğunluğu tarafından tanınır. 308 artık on yılı aşmış ve geniş biçimde destekleniyor olsa da eski istemciler ile kenar araçlarının tamamının onu tanıdığını varsaymayın.
  2. Araçların gerçeği. Yaygın araçların çoğu 301/302’yi varsayılan alır veya yalnızca bunları temiz biçimde sunar. WordPress yönlendirme eklentileri, Cloudflare kural oluşturucuları ve bazı sunucusuz/CDN platformları 301/302’ye yaslanır; bazıları seçtiğinizi sansanız bile 302/307 üretebilir.
  3. Kazanılacak bir şey yok. Google ve Bing tarama ve dizine ekleme açısından iki kodu aynı işlediği için, sıradan bir sayfa taşınmasında daha az desteklenen kodu seçmenin getirisi yoktur.

Pratik kural: yalın GET → 301; korumanız gereken GET dışı istek → 308.

Her biri nasıl uygulanır

Sözdizimi neredeyse aynıdır; yalnızca durum kodu numarasını değiştirirsiniz.

Apache (.htaccess)

# 301 — permanent, for a normal page move
Redirect 301 /old-page /new-page

# 308 — permanent + method-preserving, for an API/form endpoint
RewriteEngine On
RewriteRule ^old-api/(.*)$ /new-api/$1 [R=308,L]

nginx

# 301
location = /old-page {
    return 301 /new-page;
}

# 308 — preserves POST body to the API
location = /old-api {
    return 308 /new-api;
}

İki kod için de geçerli bir not: bazı CDN’ler, kenar platformları ve CMS eklentileri yapılandırdığınız 308’i uygulamaz; bunun yerine 301/302/307 gönderir. Yöntem koruması önemliyse gerçekten gönderdiğiniz yanıtı doğrulayın (URL’yi curl ile çağırıp durum satırını okuyun), yapılandırmaya körü körüne güvenmeyin. Direktif sözdizimi sunucu sürümleri ve çerçeveler arasında değişebilir; örneklerin kurulumunuz için ayrıntılarıyla güncel olduğunu varsaymak yerine güncel Apache/nginx veya çerçeve dokümanına bakın.

301 ve 308 seçiminden daha etkili kaldıraç: zincir uzunluğu

Hangi kodu seçerseniz seçin, daha büyük performans kaldıracı yönlendirmeleri kısa tutmaktır. Google vazgeçmeden önce yaklaşık 10 yönlendirme atlamasını izler; her ekstra atlama gecikme ve sinyal kaybı ihtimali ekler. Doğru kodla tek ve temiz bir atlama, “teknik olarak doğru” kodlardan oluşan uzun bir zincirden iyidir. Doğrudan son hedefe yönlendirin.

Bu kod nerede duruyor

301 ve 308 iki kalıcı yönlendirme kodudur. Bu kümede geçici karşılıkları 302 ve katı kardeşi 307 ile, ayrıca 3xx ailesindeki 303 ile birlikte ayrı ayrıntılı incelemeleri vardır. Karşılaştırmalar bir ızgaraya oturur: 301 ve 302 kalıcı/geçici çiftidir; 302 ve 307 geçici gevşek/katı çiftidir; bu yazıdaki 301 ve 308 ise kalıcı gevşek/katı çiftidir. Yönlendirme zincirleri ve döngüleri gibi operasyonel tehlikelere de dikkat edin. Tüm sunucu yanıtı ailesi için HTTP Durum Kodları merkezine bakın; yönlendirme türü, kanonikleştirme bölümünde açıklanan sinyallerden biridir.

Try it live

These are real endpoints on this site — not a simulation. Hit them from the button, open them in a new tab, or curl -i them from your terminal, and the server answers with the actual status code this article is about.

Open in new tab ↗
Open in new tab ↗

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.