308 Kalıcı Yönlendirme
308 Permanent Redirect ile 301 arasındaki yöntemi ve gövdeyi koruma farkını, Google ve Bing açısından SEO eşdeğerliğini, API/form/webhook kullanımlarını ve kablo üzerinde doğrulama yollarını açıklar.
Diller
Bu sayfada 1 kanıt sinyali
- İlgili canlı araçHTTP Status & Redirect Checker
308, 301 gibi kalıcı bir yönlendirmedir; farkı, istemcinin yeni URL’de istek yöntemini değiştirememesi ve uyumlu istemcide gövdenin de taşınmasıdır. Google 308’i 301’e eşdeğer SEO sinyali sayar. Düz GET sayfalarında 301 varsayılandır; geçici 302 veya yöntem koruyan 307 yerine gövdeli API, form veya webhook isteği korunacaksa 308 kullanın ve gerçek istemci ile aracı katmanında doğrulayın.
TL;DR — 308 Permanent Redirect, “bu kalıcı olarak taşındı” der; 301 ile aynıdır, ancak bir ek sözü vardır: yeni adreste istek yöntemini değiştiremez. Tarayıcı yeni bir istek başlatmak yerine aynı isteği tekrarladığı için form verileri de genellikle birlikte gider. Böylece form gönderimi sessizce sıradan bir sayfa ziyaretine dönüşmez. Arama motorları için iki kod aynıdır; normal bir “bu sayfa taşındı” yönlendirmesinde 301 yeterlidir. Bir API veya form gibi yalnızca tıklanan bir sayfa olmayan bir şeyi yönlendiriyor ve özgün isteğin eksiksiz ulaşması gerekiyorsa 308’i seçin.
308 gerçekte nedir
Sunucu tarayıcınızı bir URL’den diğerine gönderdiğinde yanıtı bir durum kodu ile damgalar. Bu sayılardan bazıları “bu sayfa kalıcı olarak taşındı” anlamına gelir:
- 301 — “Moved Permanently.” Özgün ve en eski kalıcı yönlendirme kodudur; web’in ilk dönemlerinden beri kullanılır.
- 308 — “Permanent Redirect.” Spesifikasyona 2015’te eklenen daha yeni koddur; aynı işi yapar ve 301’in hiç vermediği bir garanti ekler.
Bu garanti, 308’in var olmasının bütün nedenidir. Çoğu sayfa ziyaretinde tarayıcı basit bir GET isteği gönderir: “bu sayfayı ver.” Ancak form gönderdiğinizde veya giriş yaptığınızda tarayıcı veri taşıyan bir POST isteği gönderir. Eski tarz 301’de tarayıcının yeni URL’ye giderken POST’u düz bir GET’e çevirmesine teknik olarak izin verilebilir; bu da genellikle verinin düşmesi demektir. 308 yöntemi bu şekilde değiştiremez. Tarayıcı yeni bir istek yapmak yerine aynı isteği tekrarladığı için veri normalde birlikte gider; yine de bir API çağrısı veya ödeme akışı kuruyorsanız spesifikasyona körü körüne güvenmeyin: gerçek isteği test edin ve gövdenin yeni URL’ye ulaştığını doğrulayın.
Evidence for this claim RFC 7538 defines 308 Permanent Redirect as a permanent move whose redirect follow-up must not change the request method. Scope: HTTP semantics for 308 responses. Confidence: high · Verified: IETF: RFC 7538 §3 — 308 Permanent Redirect308 SEO’ya zarar verir mi?
Hayır. Google’ın kendi belgeleri 308 için kelimesi kelimesine “Equivalent to 301.” der. İkisi de kalıcı yönlendirmedir ve bir sayfanın sıralama sinyallerini aynı biçimde yeni URL’ye taşır. Bing de ikisini aynı ele alır. 308 kullanmanın sıralama bonusu veya cezası yoktur; seçim sıralamadan değil, yukarıdaki teknik davranıştan kaynaklanır. Evidence for this claim Google treats 308 as equivalent to 301 for Search and groups both as permanent redirects. Scope: Google Search processing; the two status codes remain semantically different for HTTP clients. Confidence: high · Verified: Google: HTTP status codes and Search Google: Redirects and Google Search
Peki ne zaman kullanmalısınız?
Normal bir sayfa taşındıysa — yeni URL, http’ten https’e geçiş veya alan adı değişikliği — düz 301 kolay ve evrensel seçimdir. Her tarayıcı, eklenti ve barındırma aracı bunu anlar.
Bir 308’i özellikle yönlendirdiğiniz şey düz bir sayfa değilse kullanın:
- Başka yazılımların çağırdığı bir API.
- Veri gönderen bir form veya giriş akışı.
- Başka bir servisin otomatik olarak POST yaptığı bir webhook URL’si.
Bu durumlarda isteğin sessizce zayıflatılıp verinin düşmesini göze alamazsınız; 308 bunun olmayacağını garanti eder.
Spesifikasyon tarihçesini, Google ve Bing’den tam alıntıları ve kopyalanabilir sunucu parçacıklarını görmek için Advanced sekmesine geçin.
Kısa özet — 308, yöntemi kesin biçimde koruyan kalıcı yönlendirmedir. 301 ile aynı kanonikleştirme sinyalini verir; Google belgeleri onu “Equivalent to
301” (çeviri) “301ile eşdeğer” diye tanımlar. Buna ek olarak istemcinin yeni URL’de yöntemi değiştirmemesini garanti eder. Uyumlu istemci yeni bir istek oluşturmak yerine aynı isteği tekrar ettiği için gövde de taşınır. HTTP’de yöntemi koruyan geçici kod (307), kalıcı eşdeğerinden yıllar önce vardı; RFC 7538 (2015) bu boşluğu doldurdu ve RFC 9110 artık 301 tanımından doğrudan 308’e yönlendiriyor. SEO açısından ikisi birbirinin yerine kullanılabilir: Illyes, Google’ın 308’i 301 ile “birleştirdiğini” söyledi; Bing’den Canel de eşdeğerliği doğruladı. API/sürüm geçişleri, webhook URL’leri ve kimlik doğrulama veya form POST akışları gibi GET dışı isteğin korunması gereken durumlarda 308 kullanın. Yine de yöntem ve gövde korumasını yalnızca spesifikasyona güvenmek yerine kendi istemcinizle doğrulayın. Diğer durumlarda 301 varsayılan kalır. 308’in tarayıcı desteği 2026’da güçlüdür (caniuse yaklaşık %96,5’in üzerinde gösteriyor), ancak RFC 9110 kodun daha genç olduğunu ve her yerde tanınmayabileceğini hâlâ belirtir; bazı CMS eklentileri, edge kural arayüzleri ve eski proxy’ler yalnızca 301/302/307 sunar.
308 mekanik olarak ne anlama gelir
308 Permanent Redirect, 301 ile aynı mesajı taşır — bu kaynak artık kalıcı olarak yeni bir URL’de yaşıyor — ancak 301’in garanti etmediği bir ek vardır: istemci hedefte istek yöntemini değiştirmemelidir. İstemci yeni bir istek çıkarmak yerine aynı isteği tekrarladığı için, spesifikasyona uyan bir istemcide gövde de onunla gider. Bu, ayrı bir sertifikalı söz değil, yöntem garantisinin sonucudur; bu yüzden kesin varsaymak yerine kendi istemciniz ve sunucunuzla uçtan uca doğrulayın. MDN, 308’i yönlendirme boyunca istek yöntemini (pratikte gövdeyi de) değiştirmeden koruyan kod olarak açıklar; 301 bunu yapmayabilir.
Ahrefs yönlendirme rehberimde kullandığım sade anlatım şöyledir: “A 308 redirect is the same as a 301 redirect, except it retains the HTTP method of the original request, GET or POST, when performing the redirect.” (Türkçe çeviri) “308 yönlendirmesi, yönlendirme sırasında özgün isteğin GET veya POST olan HTTP yöntemini koruması dışında 301 yönlendirmesiyle aynıdır.” Daha kısa olarak HTTP durum kodları rehberinde şöyle derim: “308 Permanent Redirect – Has the same functionality as a 301 redirect, except you can’t switch between POST and GET.” (Türkçe çeviri) “308 Permanent Redirect, POST ile GET arasında geçiş yapılamaması dışında 301 yönlendirmesiyle aynı işlevi görür.” Evidence for this claim RFC 7538 defines 308 Permanent Redirect as a permanent move whose redirect follow-up must not change the request method. Scope: HTTP semantics for 308 responses. Confidence: high · Verified: IETF: RFC 7538 §3 — 308 Permanent Redirect
Farkı somutlaştıralım. Bir istemcinin /api/orders adresine JSON gövdesiyle bir sipariş POST ettiğini düşünün:
POST /api/orders HTTP/1.1
Host: shop.example.com
Content-Type: application/json
{ "sku": "A-100", "qty": 2 }Bu uç nokta 301 döndürür ve istemci eski “GET’e çevirebilirsin” iznini kullanırsa istek yeni URL’ye boş bir GET olarak ulaşabilir; gövde kaybolur, sipariş düşer. 308 döndürürseniz istemci POST’u yeni URL’de tekrarlamak zorundadır; uyumlu istemci gövdeyi de taşır ve sipariş işlenir. Bunu evrensel varsaymayın; kendi istemciniz ve sunucu günlüklerinizle doğrulayın (bkz. Scripts sekmesi). Pratik farkın tamamı budur: yalnızca özgün istek düz bir GET olmadığında ortaya çıkar.
308 neden var — spesifikasyon tarihçesi
Çoğu açıklamanın atladığı, kodu anlamanın en temiz yolu olan bölüm budur.
Önce 307 geldi. HTTP, kalıcı eşdeğeri ortaya çıkmadan çok önce yöntemi koruyan geçici yönlendirmeye, yani 307’ye sahipti. İlk temel spesifikasyon RFC 7231, 307’nin kalıcı karşılığını tanımlamadı. Dolayısıyla geçici bir “yöntemi koru” kodu ile kalıcı bir “yöntemi değiştirebilirsin” kodu (301) vardı; ancak kalıcı bir “yöntemi koru” kodu yoktu.
RFC 7538 boşluğu doldurdu. 308, eksik kalıcı 307 olmak için eklendi — önce deneysel RFC 7238 olarak (Haziran 2014), ardından RFC 7538 ile standartlaştırıldı (Nisan 2015). Gerçek bir boşluğu kapatır; 301’in yerine geçmez.
Güncel spesifikasyon doğrudan onu gösterir. Bugünün HTTP semantik standardı olan RFC 9110, 301’in yerleşik belirsizliğini hâlâ belgeler ve ardından 301’in kendi tanımı içinde çözüm olarak 308’i adlandırır: kullanıcı aracısı “MAY change the request method from POST to GET for the subsequent request… If this behavior is undesired, the 308 (Permanent Redirect) status code can be used instead.” (Türkçe çeviri) “Sonraki isteğin yöntemini POST’tan GET’e değiştirebilir; bu davranış istenmiyorsa bunun yerine 308 kullanılabilir.” Yetkili spesifikasyondan gelen bu tek cümle 308’in varlık nedenidir. RFC 9110, 308’in kendi bölümünde şu dürüst uyarıyı da ekler: “is much younger (June 2014) than its sibling codes and thus might not be recognized everywhere.” (Türkçe çeviri) “Kardeş kodlarından çok daha gençtir (Haziran 2014) ve bu nedenle her yerde tanınmayabilir.”
301’in POST→GET davranışı bir hata değildir; spesifikasyona “tarihsel nedenlerle” işlenmiş belgeli bir izindir. 308, bundan kaçınmanın resmen önerilen yoludur.
301 ve 308 — pratik fark tek tabloda
| Düz GET isteği | Gövdeli POST/PUT/DELETE | |
|---|---|---|
| 301 | 308 ile aynı davranır | GET’e düşürülebilir; gövde kaybolabilir |
| 308 | 301 ile aynı davranır | Yöntem ve gövdenin tekrarlanması garanti edilir |
| SEO sinyali | Aynı (kalıcı, birleştirir) | Aynı (kalıcı, birleştirir) |
Sonuç şu: büyük çoğunluğu düz GET olan yönlendirmelerde 301 ve 308 aynı işi yapar. Garanti yalnızca gövdeli GET dışı bir yöntem devredeyken anlam kazanır. (Tam karşılaştırma için özel 301-vs-308 yazısına bakın.)
Google SEO açısından 308 ve 301’i aynı mı ele alır?
Evet, açıkça ve belgeli biçimde. Google’ın HTTP durum kodları belgesi, 301’i Google’ın yönlendirme hedefinin işlenmesi gerektiğine dair güçlü sinyal olarak kullandığı kod diye listeler ve 308 için “Equivalent to 301.” (çeviri) “301 ile eşdeğer” der. Ayrıca şu uyarıyı 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ı şekilde ele alsa da anlamsal olarak farklı olduklarını unutmayın. Diğer istemcilerin yararlanabilmesi için yönlendirmeye uygun durum kodunu kullanın.” Sade Türkçesi: Google “yanlış” kod için ceza vermez; ancak başka yazılımlar ayrıma güvendiğinden isteğe uygun kodu seçmelisiniz.
Google’ın yönlendirmeler belgesi iki kodu da aynı öneri katmanına yerleştirir: “The 301 and 308 status codes mean that a page has permanently moved to a new location.” (çeviri) “301 ve 308 durum kodları, bir sayfanın kalıcı olarak yeni konuma taşındığı anlamına gelir.” Site taşıma rehberi de 308’i 301’in sonradan eklenmiş bir ayrıntısı gibi ele almaz; kalıcı taşımada “301 ve 308 gibi” kalıcı HTTP yönlendirmelerinin kullanılmasını açıkça önerir.
Şunu bilmek faydalı: bu eşdeğerlik her zaman belgeli değildi. Gary Illyes, Google’ın 308’i içeride 301 ile birleştirdiğini söyledi; Search Engine Roundtable haberi, bunun resmî belgelere girdiği anı, gayriresmî bir açıklamanın güvenilebilir bir belgeye dönüştüğü an olarak çerçeveliyor. Birkaç yıl önce “bu gerçekten belgeli mi?” diye soran site sahiplerinin temkinli olması doğruydu; temel davranış değişmemişti. Google ve temsilcilerinin tam ifadeleri için doğrulanmış alıntıların ve derin bağlantıların bulunduğu Quotes sekmesine bakın.
Bing 308 ve 301’i aynı mı ele alır?
Evet. Bing’in Google’daki gibi 308’i açıklayan özel bir doküman sayfası yok; ancak Microsoft’tan Fabrice Canel bunu Eylül 2024’te X’te doğrudan doğruladı. Search Engine Roundtable haberi, Bing’in 308 yönlendirmelerini 301 yönlendirmeleriyle aynı ele aldığını aktarır. Bu, Bing için yetkili açıklamadır; kelimesi kelimesine alıntı için Quotes sekmesine bakın.
308 ne zaman gerçekten kullanılmalı
308 için bağımsız kullanım gerekçesi burada başlar ve neredeyse her zaman GET dışı bir istektir.
API uç noktası ve sürüm geçişleri. /v1/ yolunu /v2/ yoluna taşımak veya bir API ana bilgisayarını değiştirmek klasik örnektir. İstemciler bu uç noktalara POST/PUT/PATCH/DELETE ve gerçek gövdeler gönderir. 308 yöntemle yükün sıçramadan geçmesini garanti eder; 301 isteği sessizce düşürerek kaybedebilir.
POST ağırlıklı site taşımaları. Ödeme akışları, giriş/kimlik doğrulama uç noktaları ve form eylem hedefleri veri POST eder. Bu URL’lerden biri taşıma sırasında değişirse 308, 301’in koruyamayabileceği gönderimi sağlam tutar.
Webhook URL değişiklikleri. Başka bir servis taşımakta olduğunuz webhook URL’sine POST yaptığında 308, HTTP istemcisine gövdeyi koruyarak yeni adrese yeniden POST etmesini söyler; webhook tüketicisinin ihtiyacı tam olarak budur.
Ortak nokta şudur: gövdenin kaybolması veya yöntemin sessizce GET’e düşmesi işlevselliği bozacaksa 308 kullanın; yalnızca biraz SEO değeri taşımak için değil.
Bunlardan birini devreye almadan önce yalnızca durum kodunu değil, entegrasyonu test edin:
- Gerçek yöntemi ve yükü yeni uç noktanın hazırlık kopyasına yeniden gönderin.
- Yetkilendirme başlıklarının veya çerezlerin taşınması gerekip gerekmediğini doğrulayın ve gerçekten taşındığını kontrol edin.
- Özgün istek idempotent değilse (örneğin sipariş oluşturan bir POST), yönlendirme sırasında yinelenen yan etkilere bakın.
- Yalnızca gövdenin değil, sorgu dizesinin ve
Content-Typebaşlığının da korunduğunu doğrulayın. - Eski uç noktayı emekliye ayırmadan önce gerçek istemcinin — webhook göndericisi, API SDK’sı veya tarayıcı — 308’i otomatik izlediğini doğrulayın. Her HTTP istemcisi bunu varsayılan olarak yapmaz.
301 hâlâ ne zaman pratik varsayılandır
Düz GET olan her şey için 301 makul varsayılan olmaya devam eder:
- Sıradan içerik/sayfa URL değişiklikleri.
- http → https geçişleri.
- Alan adı değişiklikleri ve standart site taşımaları.
- Sondaki eğik çizgi ile
www/wwwolmayan normalleştirmesi.
Buradaki istek sıradan bir GET’tir; dolayısıyla 308’in garantisi ek yarar sağlamaz ve evrensellik açısından 301 öne çıkar. İkisinin de SEO maliyeti yoktur. Sıralama artışı umuduyla mevcut 301’leri topluca 308’e taşımayın; böyle bir kazanç yoktur. Ahrefs yönlendirmeler rehberindeki tercih sıralamasında 308 ile 301 en üst katmanı birlikte paylaşır; meta refresh, JavaScript ve diğer geçici çözümlerin önündedirler. Biri diğerinin basamağı değil, eşdeğer seçeneklerdir.
Benimseme ve destek uyarıları — 2026’da gerçek risk nedir
Tarayıcı desteği eskisi gibi pratik risk değildir. caniuse güncel takibinde 308 için küresel desteği yaklaşık %96,5+ gösteriyor; oran değiştiği için canlı tabloyu kontrol edin. Görünür boşluklar yıllardır ölü olan tarayıcılarda yoğunlaşıyor: IE11 öncesi, eski Chrome/Firefox/Safari ve eski Android Browser. Hâlâ dolaşan “IE11 gibi eski tarayıcılarda 308 bozulur” uyarısı ana akım trafik için güncel değildir.
Güncel uyarı daha çok araçlarla ilgilidir. 2026’daki gerçek boşluk, her katmanın 308 seçeneği sunmamasıdır. Bazı CMS yönlendirme eklentileri, CDN/edge kural arayüzleri ve eski ters proxy’ler veya yük dengeleyiciler hâlâ yalnızca 301/302/307 seçmenize izin verir. 308’e karar vermeden önce yönlendirmeyi gerçekten sunan katmanın bunu sessizce başka koda düşürmek yerine 308 döndürebildiğini doğrulayın; Scripts sekmesinde ağdaki gerçek durum kodunu denetleyen tek satırlık komut bulunur. RFC 9110’un “much younger… might not be recognized everywhere” (çeviri) “çok daha gençtir… her yerde tanınmayabilir” notu yalnızca tarayıcılarla sınırlı değildir; spesifikasyonun 308 için genel dağıtım uyarısıdır. 2026’da bunun pratik etkisi ana akım tarayıcılardan çok araçlarda görülür, ancak not hâlâ temel uyarı olarak okunmalıdır.
Standart dışı dipnot: “308 Resume Incomplete”
Bu kodun hâlâ genç olduğunu gösteren bir ayrıntı: 308 gerçek dünyada yalnızca yönlendirme değildir. Google Drive yükleme API’si 308’i tamamen farklı bir anlamla — “Resume Incomplete” — yeniden kullanır; parçalı yüklemenin durduğunu ve istemcinin devam etmesi gerektiğini bildirir. John Mueller bunu kendisi de işaret etti; MDN aynı standart dışı kullanımı belgeler. Bu, 308 yönlendirmesini değiştirmez, ancak 308’in 301 kadar yerleşik olmayan, daha yeni bir durum kodu olduğunu iyi gösterir.
Yönlendirme zincirleri ve sıçramalar her iki kodda da aynıdır
Yukarıdakilerin hiçbiri yönlendirme zincirlerinin işleyişini değiştirmez. Google tarayıcıları varsayılan olarak en fazla 10 yönlendirme sıçramasını izler. Bu evrensel sabit değil, varsayılandır; Google belgeleri belirli ürünlerin farklı davranabileceğini belirtir. Örneğin URL Inspection aracı yönlendirmeleri hiç izlemez. Bu nedenle 10 sayısını sonsuza dek değişmez kabul etmek yerine güncel değeri Google belgelerinden kontrol edin. Varsayılan sınır, sıçramalar ister 301 ister 308 olsun aynıdır. Eski bir API yolunun hedefe varmadan iki kez yönlenmesi gibi zincirler oluşturuyorsanız aynı zincir ve döngü temizliği geçerlidir: mümkün olduğunda zinciri tek sıçramaya indirin. İşleyiş ayrıntıları için yönlendirme zincirlerine ayrılmış makaleye bakın.
AI özeti
Advanced sürümünün yoğunlaştırılmış özeti:
- 308 = kalıcı + yöntemi kesin biçimde koruyan. 301 ile aynı “kalıcı olarak taşındı” mesajını verir ve 301’in sunmadığı garantiyi ekler: istemci yeni URL’de istek yöntemini değiştirmemelidir. Uyumlu istemci aynı isteği tekrarladığı için gövde de taşınır; bunu yalnızca spesifikasyondan varsaymak yerine kendi istemcinizle uçtan uca doğrulayın.
- SEO açısından 301’e eşdeğerdir. Google belgeleri 308’i “Equivalent to
301” (çeviri) “301ile eşdeğer” diye tanımlar. Gary Illyes, Google’ın 308’i 301 ile birleştirdiğini; Bing’den Fabrice Canel ise Bing’in ikisini aynı ele aldığını doğrular. İki yönde de sıralama artısı veya cezası yoktur. Illyes, Mueller ve Canel açıklamaları Search Engine Roundtable üzerinden aktarılmıştır; kesin kabul etmeden önce özgün kaynağı doğrulayın. - Neden vardır: HTTP, yöntemi koruyan geçici yönlendirmeye (307) kalıcı eşdeğerinden yıllar önce sahipti. RFC 7538 (2015) boşluğu doldurdu. RFC 9110, 301 tanımında tarihsel nedenlerle kullanıcı aracısının yöntemi POST’tan GET’e “MAY change the request method from POST to GET… for historical reasons” (çeviri) “değiştirebileceğini” ve “if this behavior is undesired, the 308… can be used instead” (çeviri) “bu davranış istenmiyorsa 308’in kullanılabileceğini” söyler.
- 308’i şunlarda kullanın: API/sürüm geçişleri, webhook URL taşımaları ve form veya kimlik doğrulama POST akışları; yöntem ya da gövdenin düşmesinin işlevi bozacağı her yer. Geçmeden önce gerçek yöntem ve yükü hazırlık ortamında yeniden oynatın; kimlik doğrulama başlıklarını, idempotency davranışını ve istemcinin yönlendirme izleme biçimini doğrulayın.
- 301’i şunlarda kullanın: sıradan sayfa taşımaları, HTTP→HTTPS geçişleri, alan adı değişiklikleri ve normalleştirme. Bunların tümü sıradan GET istekleridir; 308’in garantisi ek yarar sağlamaz ve 301 evrensel destek açısından öndedir.
- Benimsenme: tarayıcı desteği güçlüdür; caniuse yaklaşık %96,5’in üzerinde gösterir ve boşluklar çoğunlukla çok eski tarayıcılardadır. Yine de RFC 9110, 308’in daha genç olduğu ve her yerde tanınmayabileceği yönündeki genel uyarıyı taşır. 2026’da bu daha çok araç boşluğu olarak görünür: bazı CMS eklentileri, CDN/edge arayüzleri ve eski proxy’ler yalnızca 301/302/307 sunar. Yönlendirme katmanının gerçekten 308 döndürdüğünü doğrulayın. Ayrıca 308 sezgisel olarak önbelleğe alınabilir; yanlış veya geri alınmış bir 308 önbelleklerde kalabilir.
- Dipnot: Google Drive, durmuş yüklemelerde “308 Resume Incomplete” ifadesini yönlendirme dışı anlamda yeniden kullanır; bu da kodun görece gençliğini gösterir.
Resmî belgeler
Arama motorlarından ve HTTP spesifikasyonundan 308 hakkında birincil kaynak belgeleri.
- HTTP durum kodları, ağ ve DNS hataları ile Google Search — 308’i “Equivalent to
301” (Türkçe çeviri) “301ile eşdeğer” diye listeler; “semantik olarak farklı, aynı ele alınır” uyarısını ve on sıçramalık yönlendirme sınırını içerir. - Yönlendirmeler ve Google Search — “The
301and308status codes mean that a page has permanently moved to a new location.” (Türkçe çeviri) “301ve308durum kodları, bir sayfanın kalıcı olarak yeni bir konuma taşındığı anlamına gelir.” - URL değişiklikleriyle site taşıma — kalıcı taşımada “301 ve 308 gibi” kalıcı HTTP yönlendirmelerini önerir.
HTTP spesifikasyonu
- RFC 9110 — HTTP Semantics — güncel standarttır. §15.4.9, 308’i “much younger… might not be recognized everywhere” (çeviri) “çok daha gençtir… her yerde tanınmayabilir” uyarısıyla tanımlar; §15.4.2, 301’i tanımlar ve istenmeyen POST→GET dönüşümünün çözümü olarak 308’i gösterir.
- RFC 7538 — HTTP Status Code 308 (Permanent Redirect) — Nisan 2015’te 308’i tanıtan, Haziran 2014 tarihli deneysel RFC 7238’in yerini alan standarttır.
Referans
- MDN — 308 Permanent Redirect — yöntem/gövde koruma semantiği ve standart dışı Google Drive “Resume Incomplete” kullanımını açıklar.
- caniuse — HTTP status code 308 — küresel yaklaşık %96,5+ tarayıcı desteği tablosu.
Kaynaktan alıntılar
Google, Bing ve HTTP spesifikasyonundan kayıtlı ifadeler. Her bağlantı kaynak sayfasındaki alıntıya derin bağlantı verir.
Google — temel eşdeğerlik
- “301 (moved permanently): 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) “301 (kalıcı olarak taşındı): Google yönlendirmeyi izler ve Google sistemleri, yönlendirme hedefinin işlenmesi gerektiğine dair güçlü bir sinyal olarak yönlendirmeyi kullanır.” — Google Search Central belgeleri. Alıntıya git
- “308 (moved permanently): Equivalent to
301.” (Türkçe çeviri) “308 (kalıcı olarak taşındı):301ile eşdeğerdir.” Alıntıya git - “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.” (Türkçe çeviri) “Google bu durum kodlarını aynı şekilde ele alsa da anlamsal açıdan farklı olduklarını unutmayın. Diğer istemcilerin de yararlanabilmesi için yönlendirmeye uygun durum kodunu kullanın.” Alıntıya git
- “The
301and308status codes mean that a page has permanently moved to a new location.” (Türkçe çeviri) “301ve308durum kodları, bir sayfanın kalıcı olarak yeni bir konuma taşındığı anlamına gelir.” Alıntıya git
Google’dan Gary Illyes
- Google’ın 308’i nasıl ele aldığı hakkında: “we just merge that with 301 so we really don’t care iirc.” (Türkçe çeviri) “Yanlış hatırlamıyorsam onu 301 ile birleştiriyoruz; dolayısıyla gerçekten önemsemiyoruz.” Search Engine Roundtable’ın kelimesi kelimesine aktarımından: Google, 308 yönlendirmelerini resmen 301 yönlendirmeleri gibi ele alıyor (Temmuz 2021). Kesin kabul etmeden önce asıl kaynağı doğrulayın.
Google’dan John Mueller
- Standart dışı kullanım hakkında: “Google Drive uses a 308 redirect as a Resume Incomplete response to indicate to the client when an incomplete upload stalled. So that is a bit different. But you can use it as a normal redirect.” (Türkçe çeviri) “Google Drive, tamamlanmamış bir yükleme durduğunda istemciye bildirmek için 308’i Resume Incomplete yanıtı olarak kullanır. Bu biraz farklıdır; ancak 308’i normal bir yönlendirme olarak kullanabilirsiniz.” Search Engine Roundtable üzerinden aktarılmıştır: Google, 308 yönlendirmelerini 301 yönlendirmeleri gibi ele alabilir (Mayıs 2018). Kesin kabul etmeden önce asıl kaynağı doğrulayın.
Microsoft Bing’den Fabrice Canel
- “I accidentally deleted my reply, so confirming again: Bing treats 308 redirects the same as 301 redirects.” (çeviri) “Yanıtımı yanlışlıkla sildim; bu nedenle yeniden doğruluyorum: Bing, 308 yönlendirmelerini 301 yönlendirmeleriyle aynı şekilde ele alır.” Fabrice Canel’in X’teki Eylül 2024 açıklaması, Search Engine Roundtable’ın Bing, 308 yönlendirmelerini 301 yönlendirmeleriyle aynı ele alıyor yazısı üzerinden aktarılmıştır; kesin kabul etmeden önce özgün kaynağı doğrulayın.
RFC 9110 — HTTP semantik standardı
- 308’in neden var olduğu hakkında, standardın 301 tanımından: “For historical reasons, a user agent MAY change the request method from POST to GET for the subsequent request. If this behavior is undesired, the 308 (Permanent Redirect) status code can be used instead.” (Türkçe çeviri) “Tarihsel nedenlerle bir kullanıcı aracısı sonraki isteğin yöntemini POST’tan GET’e değiştirebilir. Bu davranış istenmiyorsa bunun yerine 308 (Permanent Redirect) durum kodu kullanılabilir.” RFC 9110’u okuyun
- Benimseme hakkında: 308 “is much younger (June 2014) than its sibling codes and thus might not be recognized everywhere.” (Türkçe çeviri) “Kardeş kodlarından çok daha gençtir (Haziran 2014) ve bu nedenle her yerde tanınmayabilir.” RFC 9110’u okuyun
Bu yönlendirme 308 olmalı mı?
301 ve 308 SEO açısından eşdeğer olduğu için bu bir sıralama kararı değildir. Tek soru şudur: gövdeli bir GET dışı istek devrede mi ve yönlendirme katmanınız gerçekten 308 üretebiliyor mu? Adımları izleyin.
Should I use a 308 for this redirect?
Kısa sürüm: düz GET → 301; korumanız gereken ve yığınınızın üretebildiği GET dışı istek → 308. SEO açısından ikisi değiştirilebilir; kararı belirleyen tek şey yöntem ve hızlı bir “araçlarım gerçekten bunu yapabiliyor mu?” kontrolüdür.
308 hakkında mitler ve hatalar
En sık gördüğüm arıza biçimlerinden doğrudan alınmıştır.
“308 SEO için 301’den iyidir.” Yanlış. Google belgeleri “Equivalent to 301” der; Illyes, Mueller ve Bing’den Canel eşitliği doğrular. Hiçbir motor 308’i SEO açısından üstün saymaz. Seçim yöntemin ve gövdenin doğruluğuyla ilgilidir; sıralama avantajıyla değil.
“You should migrate all your existing 301s to 308s.” (çeviri) “Mevcut 301’lerinizin tümünü 308’e taşımalısınız.” Bu, sıralama getirisi olmayan gereksiz değişikliktir. Yönlendirilen istekler sıradan GET ise — sayfadan sayfaya yönlendirmelerin ezici çoğunluğu böyledir — 301 uygulamada zaten aynı davranır. Değişikliği yalnızca gerçekten GET dışı yöntem taşıyan yönlendirmelere ayırın.
“308 yeni olduğu için güvenli değil.” Tarayıcılar açısından abartılıdır: RFC 7538 on yıldan eskidir, Google ve Bing motor desteğini doğrular ve caniuse yaklaşık %96,5+ tarayıcı desteği gösterir. RFC 9110 yine de 308 için genel “daha genç, her yerde tanınmayabilir” uyarısını taşır; 2026’da bu çoğunlukla araç boşluğudur (her CMS eklentisi, CDN yönlendirme arayüzü veya eski proxy 308 sunmaz), istemci veya arama motoru boşluğu değil. Ancak uyarı tamamen emekliye ayrılmış değildir.
“301 POST/API isteğimi her zaman bozar.” Abartılıdır. Birçok modern istemci davranışı makul biçimde korur; spesifikasyonda belgelenen gerçek risk, bir istemcinin “tarihsel nedenlerle” izin verilen POST→GET dönüşümünü uygulamasıdır. 308 bu riski ortadan kaldırır; evrensel ve kaçınılmaz bir arızayı düzeltmiyor.
“308 yalnızca yönlendirme kodudur.” Tam olarak değil. Google Drive’ın standart dışı “308 Resume Incomplete” kullanımı durmuş bir yüklemede aynı kodu tamamen farklı anlamla yeniden kullanır. Bu, 308’in 301’den daha genç ve gerçek dünyada daha az yerleşik olduğunu hatırlatır.
Ek karşıtlık — “kalıcı yönlendirmeler PageRank kaybettirir.” Bu yazının ana konusu değil, ancak bir cümlelik düzeltme gerekir: Google rehberi 301 ve 308’i yeni URL’yi kanonik hedef olarak işlemek için sinyal kullandığı kalıcı yönlendirmeler olarak birlikte gruplar; bu bir değer kaybından çok süreklilik okumasıdır. Bunu “hiçbir PageRank asla kaybolmaz” garantisi değil, Google’ın belgeli işleme davranışı olarak anlatın; mevcut kaynağın desteklediği daha dar kanonik-sinyal çerçevesi budur.
308’i doğrulama ve uygulama
308 ile yapabileceğiniz en yararlı iş, kablo üzerindeki gerçek durum kodunu doğrulamaktır. En yaygın arıza tarayıcı değil, amaçlanan 308’i sessizce 301’e düşüren (veya hiç yönlendirme üretmeyen) araç katmanıdır.
Durum kodunu curl ile kontrol edin
# Show only the response headers; -I sends a HEAD request.
curl -sI https://example.com/old-path | head -n 1
# → HTTP/1.1 308 Permanent Redirect (what you want)
# → HTTP/1.1 301 Moved Permanently (your layer downgraded it)Yöntemin gerçekten korunduğunu (308’in bütün amacı budur) bir POST’ta doğrulamak için yönlendirmeyi -L ile izleyin ve hedefe ne ulaştığını gözleyin. -X POST ile --data kullanımı, sunucu 308/307 döndürdüyse sıçrama boyunca POST olarak kalır:
curl -sIL -X POST --data '{"sku":"A-100"}' \
-H 'Content-Type: application/json' \
https://api.example.com/v1/orders
# Inspect each hop's request line; a 308 keeps it "POST", a 301 may show "GET".Tüm zinciri izleyin
Yol birden fazla kez sıçrıyorsa, düşürmeyi veya istenmeyen ek sıçramayı fark etmek için zincirdeki her durum kodunu yazdırın:
curl -sIL https://example.com/old-path \
| grep -iE '^HTTP/'
# Each line is one hop. Collapse chains to a single hop where you can.Geri almadan önce 308’in önbelleğe alınıp alınmadığını kontrol edin
RFC 9110, 308’i sezgisel olarak önbelleğe alınabilir yapar; istemci veya aracı, açık bir Cache-Control başlığı olmasa bile onu önbelleğe almaya karar verebilir. Bu, hatalı bir 308’in (veya geri almak istediğiniz birinin) kaynak kuralını düzelttikten sonra bile önbellekten sunulmaya devam edebileceği anlamına gelir. Bir yönlendirmenin “takılı kaldığı” sonucuna varmadan önce:
- Hem yeni bir istemciyle (gizli pencere, önceki ziyaret yok) hem de eski URL’ye daha önce gitmiş bir istemciyle test edin; önbellekli ve önbelleksiz davranış farklı olabilir.
Cache-Controlile yanıttaExpires,Agevecurl -sIbaşlıklarını kontrol edin.- Düz bir GET’i ve temsili bir GET dışı isteği ayrı test edin; önbellekleme davranışı yönteme göre değişebilir.
- 308’i geri almanız gerekiyorsa edge/CDN önbelleğini açıkça temizleyin; kaynak kuralını kaldırmanın yeterli olduğunu varsaymayın. Eski yönlendirmeyi zaten önbelleğe almış bazı istemciler kendiliğinden yeniden sormaz.
Chrome DevTools Console — tarayıcıdan yönlendirme kontrolü
Sayfadan ayrılmadan son URL ve durumu görmek için bunu DevTools Console’a (F12 → Console) yapıştırın. Elle yönlendirme yapan fetch, ilk yanıtın durumunu doğrudan bildirir:
// Reports the status of the first response (the redirect itself), not the target.
fetch('https://example.com/old-path', { method: 'HEAD', redirect: 'manual' })
.then(r => console.log('type:', r.type, 'status:', r.status || '(opaqueredirect)'));
// Follow the chain and log where it lands:
fetch('https://example.com/old-path', { method: 'HEAD', redirect: 'follow' })
.then(r => console.log('final URL:', r.url, 'final status:', r.status));Bookmarklet — tek tıkla “bu URL ne döndürüyor?”
Bunu URL olarak bir yer işaretine sürükleyin; ardından herhangi bir sayfada tıklayarak URL sorulmasını ve son durumu ile iniş URL’sini göstermesini sağlayın:
javascript:(function(){var u=prompt('URL to check:',location.href);if(!u)return;fetch(u,{method:'HEAD',redirect:'follow'}).then(function(r){alert('Final status: '+r.status+'\nLanded on: '+r.url);}).catch(function(e){alert('Error: '+e);});})();Sunucuda 308 uygulayın
Apache (.htaccess) — açık mod_rewrite ile R=308:
RewriteEngine On
RewriteRule ^old-path/?$ /new-path [R=308,L]nginx — return 308 kesin ve belirsiz değildir:
location = /old-path {
return 308 https://example.com/new-path;
}Express.js (Node) — durum kodunu redirect() işlevine geçirin:
app.all('/api/v1/orders', (req, res) => {
// 308 keeps the POST body intact on the way to /api/v2/orders
res.redirect(308, '/api/v2/orders');
});Next.js — permanent: true ayarlandığında 308 döndürür; Next’in kalıcı yönlendirmeleri 308’dir:
// next.config.js
module.exports = {
async redirects() {
return [
{ source: '/api/v1/:path*', destination: '/api/v2/:path*', permanent: true },
];
},
};Framework ve barındırma katmanlarının davranışı sürümler arasında sabit değildir. Örneğin Next.js’in yönlendirme işleyişi, sürüme ve yönlendirmenin nerede başlatıldığına göre değişebilir — next.config.js içindeki redirects() girdisi, Server Action içindeki permanentRedirect() çağrısı veya akışlı yanıt aynı durum koduna çözülmeyebilir. Aynı uyarı Apache/nginx modül sürümleri ve kaynağın önündeki CDN/proxy katmanı için de geçerlidir. Yukarıdaki her parçacığı garanti değil başlangıç noktası sayın ve kendi sürümünüzün güncel belgeleriyle doğrulayın.
Bunlardan herhangi birini dağıttıktan sonra kablonun gerçekten 308 taşıdığını doğrulamak için yukarıdaki curl -sI kontrolünü yeniden çalıştırın; insanların atlayıp sonradan pişman olduğu adım budur.
Kablo üzerindeki 308’i doğrulama araçları
Patrick’in ücretsiz araçları
- Redirect Checker — tek bir URL’yi veya hızlı bir toplu listeyi izleyin; ilk yanıtın
308, hedefin doğru ve zincirin sağlıklı bir son yanıtla bittiğini doğrulayın. - Bulk HTTP Status Code Checker — 500’e kadar taşınmış URL’yi kontrol edin, beklenmeyen 301/302/307 yanıtlarını filtreleyin ve düzeltme için zincir veya döngüleri dışa aktarın.
Kesin davranışı gerektiğinde kanıtlayın
- Güvenli test yüküyle
curl— gerçek yöntemi hazırlıkta veya yıkıcı olmayan bir uç noktada yeniden oynatın ve yönlendirmeyi izleyin. Kaynağın 308 ürettiğini doğrulayın. - Uygulama/API gateway günlükleri — hedefin aynı yöntemi, içerik türünü ve gövdeyi aldığını doğrulayın. Yönlendirme denetleyicisi durum ve hedefi kanıtlar; alıcı günlükleri yöntem korumanın uçtan uca çalıştığını kanıtlar.
- Tarayıcı DevTools Network paneli — form ve kimlik doğrulama akışlarında kullanışlıdır; ancak 308’i 301’e tercih etme nedeni birlikte çalışabilirlik olduğundan webhook ve API istemcilerini ayrıca test edin.
- Google Search Console URL Inspection — dizine eklenebilir sayfa URL’lerinde kalıcı taşımanın 301 gibi işlendiğini ve hedefin seçilmiş kanonik olduğunu doğrulayın.
Kendinizi sınayın: 308 Permanent Redirect
308’in ne olduğu, neden var olduğu ve arama motorlarının onu nasıl ele aldığı hakkında beş kısa soru. Her biri için bir yanıt seçin, ardından kontrol edin.
Vakit ayırmaya değer kaynaklar
Yazılarım
- 11 yönlendirme türü ve SEO etkileri (Joshua Hardwick ile) — 308 tanımımın, SEO açısından 301 ile aynı olduğu ancak formlarda fark yarattığı çerçevenin ve 308 ile 301’in en üst katmanı paylaştığı yönlendirme tercih sırasının kaynağı.
- HTTP durum kodları ve SEO etkileri — 308’in “has the same functionality as a 301… except you can’t switch between POST and GET” (çeviri) “POST ile GET arasında geçiş yapılamaması dışında 301 ile aynı işlevi gördüğünü” ve 308’lerin “are treated the same as 301s and consolidate forward” (çeviri) “301’lerle aynı ele alınıp sinyalleri ileri doğru birleştirdiğini” açıkça anlattığım yazı.
- Başarılı bir web sitesi taşıması için kontrol listesinden fazlası gerekir — kalıcı taşımada neden 302/307 yerine 301 veya 308 kullandığımın açıklaması.
- Yeni başlayanlar için teknik SEO rehberi — yönlendirmelerin daha geniş teknik SEO çerçevesindeki yeri.
Sektörden
- Yönlendirmeler ve Google Search — 301 ve 308’i kalıcı seçenekler olarak birlikte adlandıran Google rehberi.
- HTTP durum kodları, ağ ve DNS hataları ile Google Search — 308’i “301 ile eşdeğer” diye adlandıran ve “semantik olarak farklı” uyarısını yapan belge.
- RFC 9110 — HTTP Semantics — güncel standart; 301 tanımı istenmeyen POST→GET dönüşümünün çözümü olarak 308’i gösterir.
- RFC 7538 — HTTP Status Code 308 (Permanent Redirect) — 308’i tanıtan standart.
- MDN — 308 Permanent Redirect — yöntem/gövde semantiği ve Google Drive “Resume Incomplete” notu.
- caniuse — HTTP status code 308 — “308 kırılgan” mitini çürüten tarayıcı desteği tablosu.
- Bing, 308 yönlendirmelerini 301 yönlendirmeleriyle aynı ele alıyor (Search Engine Roundtable) — Fabrice Canel’in Bing için 2024 doğrulaması.
- Google, 308 yönlendirmelerini resmen 301 yönlendirmeleri gibi ele alıyor (Search Engine Roundtable) — Gary Illyes’in “308’i 301 ile birleştiriyoruz” bağlamı ve bunun resmî belgelere giriş anı.
Değişiklik günlüğü
22 Ağu 2026 tarihinde güncellendi.
Editoryal özet ve kaydedilen değişiklik ayrıntıları.Değişiklik ayrıntıları
-
Ayrıntılı değişiklik notları şu anda İngilizce olarak mevcut.
Tam karşılaştırma kullanılamıyor — bu sürüm için önceki anlık görüntü arşivlenmemiş.
9 Ağu 2026 tarihinde güncellendi.
Editoryal özet ve kaydedilen değişiklik ayrıntıları.Değişiklik ayrıntıları
-
Ayrıntılı değişiklik notları şu anda İngilizce olarak mevcut.
Tam karşılaştırma kullanılamıyor — bu sürüm için önceki anlık görüntü arşivlenmemiş.
8 Ağu 2026 tarihinde güncellendi.
Editoryal özet ve kaydedilen değişiklik ayrıntıları.Değişiklik ayrıntıları
-
Ayrıntılı değişiklik notları şu anda İngilizce olarak mevcut.
Tam karşılaştırma kullanılamıyor — bu sürüm için önceki anlık görüntü arşivlenmemiş.
8 Ağu 2026 tarihinde güncellendi.
Editoryal özet ve kaydedilen değişiklik ayrıntıları.Değişiklik ayrıntıları
-
Ayrıntılı değişiklik notları şu anda İngilizce olarak mevcut.
Tam karşılaştırma kullanılamıyor — bu sürüm için önceki anlık görüntü arşivlenmemiş.
17 Tem 2026 tarihinde güncellendi.
Editoryal özet ve kaydedilen değişiklik ayrıntıları.Değişiklik ayrıntıları
-
Ayrıntılı değişiklik notları şu anda İngilizce olarak mevcut.
Tam karşılaştırma kullanılamıyor — bu sürüm için önceki anlık görüntü arşivlenmemiş.
Try it live
This is a real endpoint on this site — not a simulation.
Hit it from the button, open it in a new tab, or
curl -i it from your terminal, and the server answers with the actual status code this article is about.