HTTP yönlendirmeleri, web’in en temel ama en sık yanlış anlaşılan mekanizmalarından biridir. Bir sayfayı kaldırdığınızda, alan adınızı değiştirdiğinizde ya da HTTP’den HTTPS’e geçiş yaptığınızda doğru yönlendirme kodunu seçmek; hem kullanıcı deneyimi hem de arama motoru sıralamaları açısından kritik önem taşır. Yanlış bir seçim, biriktirdiğiniz link equity’nin önemli bir kısmını eritebilir; bir yönlendirme zinciri ise Googlebot’un sitenizi taramasını ciddi ölçüde yavaşlatabilir.
Bu rehberde 301 ve 302 kodları arasındaki farkı, 307 ile 308’in nereye girdiğini, link equity aktarımının gerçekte nasıl çalıştığını ve Apache, Nginx, Cloudflare, WordPress, Next.js ile Astro’da yönlendirmeleri nasıl doğru şekilde uygulayacağınızı ele alacağız. Teknik SEO hizmetlerimiz kapsamında bu konuyu derinlemesine inceliyoruz; ancak bu yazı bağımsız bir başlangıç noktası olarak tasarlandı.
HTTP Yönlendirmesi Nedir?
HTTP yönlendirmesi, bir sunucunun istemciye (tarayıcı veya arama motoru botu) “aradığın kaynak artık burada değil, şu adrese git” mesajı vermesidir. Teknik açıdan bu, sunucunun Location başlığında yeni URL’yi içeren bir yanıt döndürmesiyle gerçekleşir.
Bir kullanıcı https://ornek.com/eski-sayfa adresine gittiğinde sunucu şu yanıtı üretir:
HTTP/1.1 301 Moved Permanently
Location: https://ornek.com/yeni-sayfa
Tarayıcı bu yanıtı alır, Location başlığındaki adresi okur ve kullanıcıyı oraya yönlendirir. Kullanıcı genellikle bu geçişin farkına bile varmaz; ancak arama motoru botları her adımı kaydeder ve yönlendirme türüne göre farklı kararlar alır.
Yönlendirme Türlerinin Genel Tablosu
| Kod | Ad | SEO Etkisi | Kalıcı mı? | Metod Korunur mu? |
|---|---|---|---|---|
| 301 | Moved Permanently | Link equity aktarılır | Evet | Hayır (POST > GET olabilir) |
| 302 | Found (Geçici) | Link equity aktarılmaz | Hayır | Hayır (POST > GET olabilir) |
| 307 | Temporary Redirect | Link equity aktarılmaz | Hayır | Evet |
| 308 | Permanent Redirect | Link equity aktarılır | Evet | Evet |
301 Kalıcı Yönlendirme: Ne Zaman Kullanılır?
301, bir URL’nin kalıcı olarak başka bir adrese taşındığını söyleyen HTTP durum kodudur. “Moved Permanently” (Kalıcı Olarak Taşındı) adını taşır ve arama motorlarına şu mesajı verir: “Bu sayfanın varlığını eskisiyle ilişkilendirmeni bekleme; artık yalnızca yeni adresi dizine ekle.”
301’in Doğru Kullanım Senaryoları
Alan adı değişikliği: eskisirket.com adresinden yenisirket.com adresine geçiş yaptığınızda tüm URL’leri 301 ile yönlendirmeniz gerekir. Bu sayede eski alan adına gelen organik trafik ve backlink değeri yeni adrese aktarılır.
Site yeniden yapılandırması: URL yapısını değiştirdiniz; /kategori/urun-adi yerine /urunler/urun-adi kullandınız. Eski URL’lere gelen tüm istekler 301 ile yeni yapıya yönlendirilmelidir.
İçerik birleştirme: İki benzer sayfayı tek bir güçlü sayfada topladığınızda, her iki eski URL de 301 ile yeni sayfaya yönlendirilir. Bu, kanonik sinyali güçlendirir.
HTTP’den HTTPS’e geçiş: Siteniz hâlâ HTTP üzerinden hizmet veriyorsa ve HTTPS sertifikası aldıysanız, tüm HTTP URL’lerini 301 ile HTTPS eşdeğerlerine yönlendirmeniz gerekir.
www ile non-www arasında tercih: Her iki varyant da çalışıyorsa arama motorları bunu iki ayrı site olarak algılayabilir. Birini tercih edip diğerini 301 ile yönlendirmelisiniz.
301 Yönlendirmesinin Önbelleğe Alınması
301’in önemli bir özelliği, tarayıcılar tarafından agresif biçimde önbelleğe alınmasıdır. Chrome ve Firefox, 301 yanıtlarını varsayılan olarak süresiz önbellekte tutar. Bu, yanlış bir 301’i geri almanın gerçek anlamda zor olduğu anlamına gelir: Kullanıcıların tarayıcıları önbelleği temizleyene kadar eski yönlendirmeyi kullanmaya devam eder. Bu yüzden 301 eklemeden önce karara %100 emin olduğunuzdan emin olun.
302 Geçici Yönlendirme: Ne Zaman Kullanılır?
302, “Found” (Bulundu) adını taşır. Teknik anlamı şudur: Kaynak şu an başka bir adreste, ama bu geçici bir durum. Arama motorları eski URL’yi dizinde tutmaya devam eder.
302’nin Doğru Kullanım Senaryoları
A/B testleri: Bir landing page’in iki varyantını test ediyorsanız ve orijinal URL’yi değiştirmeyi planlamıyorsanız, ziyaretçileri geçici olarak test URL’sine 302 ile yönlendirin.
Bakım modu: Sitenizi bakıma aldığınızda kullanıcıları geçici bir bakım sayfasına yönlendirmek için 302 kullanın. Bakım tamamlandığında orijinal URL yeniden aktif olacak.
Ödeme/sipariş akışları: Kullanıcıyı ödeme tamamlandıktan sonra bir teşekkür sayfasına geçici olarak yönlendirme.
Coğrafi yönlendirme: Kullanıcının IP adresine göre ülkeye özgü bir versiyona yönlendirme (örneğin ornek.com > ornek.com/tr/). Bu yönlendirmenin geçici nitelikte işaretlenmesi önemlidir; aksi takdirde Google orijinal URL’yi dizinden çıkarabilir.
302’nin Yanlış Kullanımının Bedeli
Pek çok web geliştiricisi ve CMS eklentisi, kalıcı taşımalarda bile 302 kullanır. Bu kritik bir hatadır. Google, 302’yi gördüğünde eski URL’yi dizinde tutmaya devam eder ve link equity’yi yeni sayfaya tam olarak aktarmaz. Sonuç: Yıllardır biriktirdiğiniz otorite, gereksiz yere iki URL arasında bölünür.
307 ve 308 Yönlendirme Kodları
HTTP/1.1 standardı, 302 ve 301’in belirsizliğini gidermek için iki yeni kod tanımladı: 307 ve 308.
307 Temporary Redirect
307, 302’nin HTTP metodunu koruyan versiyonudur. Yani bir POST isteği 307 ile yönlendirildiğinde, tarayıcı hedef URL’e de POST isteği gönderir. 302’de ise birçok tarayıcı POST’u GET’e dönüştürdü; bu tutarsızlık 307’nin doğmasına yol açtı.
Ne zaman kullanılır? Form gönderimleri veya API isteklerinde metodun korunması kritikse ve yönlendirme geçiciyse 307 tercih edin.
308 Permanent Redirect
308, 301’in HTTP metodunu koruyan versiyonudur. Kalıcı bir yönlendirmede POST veya PUT metodunun hedef URL’e de iletilmesini istiyorsanız 308 kullanın.
SEO açısından 307 ve 308, 302 ve 301 ile benzer davranış gösterir: 308 link equity aktarırken 307 aktarmaz. Ancak 307 ve 308’in tarayıcı ve bot desteği 301/302’ye kıyasla daha sınırlıdır; bu yüzden API ve form iletimlerinin dışında 301/302 kullanımı hâlâ standarttır.
Link Equity (PageRank) Aktarımı: Gerçekte Ne Oluyor?
”Link juice” ya da resmi adıyla link equity, bir URL’nin aldığı backlink’lerden edindiği otorite puanıdır. Bu otorite sayfanın Google sıralamalarında önemli bir rol oynar.
301 ile Link Equity Aktarımı
Google, onlarca yıldır 301 yönlendirmelerinin link equity’yi tam olarak aktardığını söyledi. Ancak 2016 yılında Google’ın John Mueller yaptığı açıklamada küçük bir kayıp yaşandığını doğruladı. Bu kayıp zamanla azalmış olsa da teknik açıdan hâlâ %100 aktarım garantisi yoktur.
Pratikte şunu söyleyebiliriz: Tek adımlı, doğru uygulanmış bir 301, link equity’nin büyük çoğunluğunu aktarır. Zincir yönlendirmeler ise her adımda ek kayba yol açar.
302 ve Link Equity
Geleneksel anlayışa göre 302, link equity aktarmaz. Ancak günümüzde Google, uzun süredir aktif olan 302 yönlendirmelerini kimi durumlarda 301 gibi işleyebilmektedir. Bu, Google’ın amacı anlamlandırma kapasitesinin gelişmesiyle ilgilidir; ama bu davranışa güvenilmemelidir. Kasıtlı bir yönlendirmede 301 kullanın.
Aktarım Oranı Karşılaştırması
| Senaryo | Tahmini Link Equity Aktarımı |
|---|---|
| Tek adımlı 301 | ~%95-99 |
| İki adımlı 301 zinciri | ~%85-90 |
| Üç adımlı 301 zinciri | ~%70-80 |
| 302 (kısa süreli) | ~%0-10 |
| 302 (uzun süreli, Google’ın yorum yapması ile) | Belirsiz |
| Yönlendirme döngüsü | %0 (bot tarafından terk edilir) |
Yönlendirme Zincirleri ve Döngüleri: Ciddi Bir SEO Tehdidi
Yönlendirme zinciri, A URL’sinin B’ye, B’nin C’ye, C’nin D’ye yönlendirildiği durumdur. Her atlama hem link equity kaybına hem de sayfa yüklenme süresinin artmasına yol açar.
Yönlendirme Zincirinin Zararları
Crawl bütçesi tüketimi: Googlebot, bir siteyi taramak için belirli bir “crawl bütçesi” tahsis eder. Uzun yönlendirme zincirleri bu bütçeyi gereksiz yere tüketir ve önemli sayfaların taranmamasına neden olabilir.
Sayfa hızı: Her yönlendirme ek bir HTTP isteği demektir. Zincirlerde bu, kullanıcının hissettiği gecikmeyi belirgin biçimde artırabilir; bu da Core Web Vitals skorlarını olumsuz etkiler.
Link equity erimesi: Yukarıda belirtildiği gibi, her atlama değer kaybına yol açar.
Tarayıcı limiti: Hem tarayıcılar hem de Googlebot, maksimum yönlendirme adımı limitine sahiptir. Chrome 20 adımdan sonra taramayı durdurur; Googlebot ise genellikle 5-10 adımdan sonra taramayı bırakır.
Yönlendirme Döngüsü
Yönlendirme döngüsü, A > B > A ya da A > B > C > A gibi sonsuz bir döngü oluştuğunda meydana gelir. Tarayıcı ve botlar bunu fark edip taramayı durdurur; kullanıcı ise “ERR_TOO_MANY_REDIRECTS” hatasıyla karşılaşır.
Döngü tespiti için kontrol listesi:
- HTTP > HTTPS ve HTTPS > HTTP yönlendirmelerinin aynı anda aktif olup olmadığını kontrol edin.
- www > non-www ve non-www > www kurallarının çakışmadığından emin olun.
- Birden fazla .htaccess dosyası veya sunucu konfigürasyonu varsa çelişen kurallar arayın.
- CDN ve sunucu seviyesindeki yönlendirme kurallarının birbiriyle çakışmadığını doğrulayın.
Zincirleri Temizleme
En iyi pratik, her zinciri tek adıma indirgemektir. A > B > C zinciri varsa, A’yı doğrudan C’ye 301 ile yönlendirin. B ile C arasındaki yönlendirmeyi koruyabilirsiniz; ancak A’nın B üzerinden geçmesine gerek yoktur.
Farklı Platformlarda Yönlendirme Uygulamaları
Apache .htaccess ile Yönlendirme
Apache sunucularında .htaccess dosyası, yönlendirme kurallarını tanımlamak için en yaygın yöntemdir. mod_rewrite modülünün etkin olduğundan emin olun.
Tek URL yönlendirmesi:
Redirect 301 /eski-sayfa /yeni-sayfa
Tüm siteyi yeni alan adına yönlendirme:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^eskisirket\.com$ [NC]
RewriteRule ^(.*)$ https://yenisirket.com/$1 [R=301,L]
HTTP’den HTTPS’e yönlendirme:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
www’den non-www’ye yönlendirme:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.ornek\.com$ [NC]
RewriteRule ^(.*)$ https://ornek.com/$1 [R=301,L]
non-www’den www’ye yönlendirme:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^ornek\.com$ [NC]
RewriteRule ^(.*)$ https://www.ornek.com/$1 [R=301,L]
Joker karakter ile kategori yönlendirmesi:
RewriteEngine On
RewriteRule ^kategori/(.*)$ /urunler/$1 [R=301,L]
Önemli not: [L] bayrağı “son kural” anlamına gelir ve kuralın eşleşmesi durumunda diğer kuralların işlenmesini durdurur. [R=301] ise HTTP 301 yanıtını tetikler. Bu iki bayrağı birlikte kullanmayı alışkanlık edinmenizi öneririm.
Nginx ile Yönlendirme
Nginx’te yönlendirmeler server bloğu içinde tanımlanır. .htaccess gibi bir dosya sistemi yoktur; konfigürasyon doğrudan nginx.conf veya sites-available altındaki dosyaya yazılır.
Tek URL yönlendirmesi:
server {
listen 80;
server_name ornek.com www.ornek.com;
location = /eski-sayfa {
return 301 /yeni-sayfa;
}
}
HTTP’den HTTPS’e yönlendirme:
server {
listen 80;
server_name ornek.com www.ornek.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name ornek.com www.ornek.com;
# SSL konfigürasyonu buraya...
}
www’den non-www’ye yönlendirme (HTTPS):
server {
listen 443 ssl;
server_name www.ornek.com;
return 301 https://ornek.com$request_uri;
}
server {
listen 443 ssl;
server_name ornek.com;
# Ana site konfigürasyonu...
}
Regex ile toplu yönlendirme:
location ~* ^/eski-kategori/(.+)$ {
return 301 /yeni-kategori/$1;
}
Nginx performans notu: Nginx’te rewrite direktifi yerine return direktifini tercih etmek hem daha okunabilir hem de performans açısından daha verimlidir. return 301 doğrudan yanıt üretirken rewrite ek regex işlemi gerektirir.
Cloudflare ile Yönlendirme
Cloudflare, DNS seviyesinde çalıştığı için sunucu konfigürasyonuna dokunmadan yönlendirme kuralları oluşturmanıza olanak tanır.
Page Rules ile yönlendirme:
Cloudflare Dashboard > Rules > Page Rules bölümüne gidin:
- “URL eşleşmesi” alanına
http://ornek.com/*girin - ”Ayar” olarak “Forwarding URL” seçin
- ”Durum kodu” 301, hedef URL
https://ornek.com/$1
Redirect Rules (Yeni nesil):
Cloudflare’in yeni Rules motoru Page Rules’dan daha güçlüdür:
# Expression
(http.host eq "www.ornek.com")
# Action: Static Redirect
# Status: 301
# URL: https://ornek.com${http.request.uri.path}
Always Use HTTPS özelliği:
Cloudflare’in “Always Use HTTPS” ayarı etkinleştirildiğinde, HTTP istekleri otomatik olarak HTTPS’e 301 ile yönlendirilir. Bu, .htaccess veya Nginx konfigürasyonu yazmak zorunda kalmadan hızlı bir çözüm sunar.
Cloudflare yönlendirmelerinde dikkat edilmesi gereken nokta: Hem Cloudflare hem de sunucu seviyesinde yönlendirme kuralları varsa zincir yönlendirmeler oluşabilir. Yönlendirme mantığını tek bir katmanda toplamak en sağlıklısıdır.
WordPress ile Yönlendirme
WordPress’te yönlendirmeler birkaç farklı yolla yönetilebilir.
Redirection Eklentisi:
En yaygın yöntem “Redirection” eklentisidir (John Godley tarafından geliştirilmiştir). Eklenti, yönlendirmeleri veritabanında depolar ve PHP seviyesinde işler.
Eski URL: /eski-blog-yazisi/
Yeni URL: /yeni-blog-yazisi/
Tür: 301
Ancak veritabanı tabanlı yönlendirmelerin bir dezavantajı vardır: Her istek için veritabanı sorgusu gerektirir. Yüksek trafikli sitelerde bu, performans sorununa yol açabilir. Bu yüzden mümkün olduğunda .htaccess tabanlı yönlendirmeleri tercih edin.
functions.php ile yönlendirme:
add_action('template_redirect', function() {
if (is_page('eski-sayfa')) {
wp_redirect(home_url('/yeni-sayfa'), 301);
exit;
}
});
Yoast SEO ile yönlendirme:
Yoast SEO Premium, “Redirects” modülü aracılığıyla yönlendirme yönetimi sunar. Bu özellik, .htaccess veya PHP koduna dokunmadan arayüzden yönlendirme oluşturmanıza olanak tanır.
WordPress’te Permalink yapısı değişikliği:
WordPress ayarlarından permalink yapısını değiştirdiğinizde tüm eski URL’ler 404 verir. Bu durumda eski URL yapısından yeni yapıya geçişi sağlayan toplu yönlendirmeler tanımlamanız gerekir.
Next.js ile Yönlendirme
Next.js, next.config.js (veya next.config.mjs) dosyasında redirects anahtarı aracılığıyla yerleşik yönlendirme desteği sunar.
Basit yönlendirme:
// next.config.js
module.exports = {
async redirects() {
return [
{
source: '/eski-sayfa',
destination: '/yeni-sayfa',
permanent: true, // 301
},
];
},
};
permanent: true 301 durum kodunu, permanent: false ise 302 durum kodunu üretir.
Joker karakter ile yönlendirme:
module.exports = {
async redirects() {
return [
{
source: '/blog/:slug',
destination: '/makaleler/:slug',
permanent: true,
},
];
},
};
Regex ile yönlendirme:
module.exports = {
async redirects() {
return [
{
source: '/urun/:id(\\d{1,})',
destination: '/urunler/:id',
permanent: true,
},
];
},
};
Middleware ile dinamik yönlendirme:
Daha karmaşık senaryolarda (coğrafi yönlendirme, A/B testi, oturum durumuna göre yönlendirme) Next.js Middleware kullanılır:
// middleware.ts
import { NextResponse } from 'next/server';
import type { NextRequest } from 'next/server';
export function middleware(request: NextRequest) {
const { pathname } = request.nextUrl;
if (pathname === '/eski-kampanya') {
return NextResponse.redirect(
new URL('/yeni-kampanya', request.url),
{ status: 301 }
);
}
return NextResponse.next();
}
export const config = {
matcher: ['/eski-kampanya'],
};
Next.js’de yönlendirme önceliği: next.config.js içindeki yönlendirmeler Middleware’den önce çalışır. Middleware ise sayfa renderından önce çalışır. Bu öncelik sırasını göz önünde bulundurarak kurallarınızı yerleştirin.
Astro ile Yönlendirme
Astro, SSG (Static Site Generation) ve SSR (Server-Side Rendering) modlarında farklı yönlendirme yaklaşımları sunar.
astro.config.mjs ile statik yönlendirme:
Astro 2.9 ve sonrasında redirects konfigürasyonu yerleşik olarak desteklenmektedir:
// astro.config.mjs
import { defineConfig } from 'astro/config';
export default defineConfig({
redirects: {
'/eski-sayfa': '/yeni-sayfa',
'/eski-blog/[slug]': '/blog/[slug]',
},
});
Statik çıktı modunda bu yönlendirmeler HTML meta refresh veya Netlify/Vercel gibi platformlara özgü _redirects dosyasına dönüştürülür.
SSR modunda yönlendirme:
SSR modunda, Astro sayfaları içinde Astro.redirect() kullanılır:
---
// src/pages/eski-sayfa.astro
return Astro.redirect('/yeni-sayfa', 301);
---
Netlify _redirects dosyası (Astro + Netlify):
Astro projesini Netlify’da barındırıyorsanız public/_redirects dosyasıyla yönlendirme tanımlayabilirsiniz:
/eski-sayfa /yeni-sayfa 301
/eski-blog/* /blog/:splat 301
Vercel vercel.json (Astro + Vercel):
{
"redirects": [
{
"source": "/eski-sayfa",
"destination": "/yeni-sayfa",
"permanent": true
}
]
}
Astro’da dikkat edilmesi gereken nokta: Astro’nun static export modunda her yönlendirme bir HTML dosyası oluşturur (meta refresh ile). Bu, gerçek HTTP 301 değildir; bu yüzden Netlify, Vercel veya Cloudflare Pages gibi platformların sunduğu native yönlendirme desteğini kullanmak SEO açısından daha doğrudur.
www ile non-www Yönlendirmesi
www.ornek.com ile ornek.com teknik açıdan iki farklı alan adıdır. Her ikisinin de erişilebilir olması, arama motorlarının içeriği iki ayrı site olarak dizine eklemesine ve link equity’nin bölünmesine yol açar.
Hangisi Tercih Edilmeli?
SEO açısından ikisi arasında anlamlı bir fark yoktur. Önemli olan tutarlılık ve doğru yönlendirmedir. Bununla birlikte pratik farklılıklar şöyledir:
| Kriter | www | non-www |
|---|---|---|
| DNS esnekliği | Yüksek (CNAME destekler) | Düşük (apex domain sınırlaması) |
| Cookie kapsamı | Alt domain izolasyonu | Tüm alt domainler etkilenir |
| CDN entegrasyonu | Kolay | Bazı CDN’lerde sınırlı |
| Kullanıcı algısı | Geleneksel | Modern ve sade |
Kural: Hangisini seçerseniz seçin, diğerini 301 ile seçilenye yönlendirin ve Search Consoleda tercih edilen varyantı belirtin.
Google Search Console’da Tercih Belirleme
Google Search Console’a her iki varyantı da ekleyin (www ve non-www), sonra tercih ettiğinizi “Preferred Domain” olarak ayarlayın. Modern Search Console’da bu ayar artık doğrudan mevcut değildir; bunun yerine kanonik etiket kullanımı ve tutarlı dahili bağlantı yapısıyla tercihinizi belirtmeniz önerilir.
HTTP’den HTTPS’e Geçiş: Adım Adım
HTTPS’e geçiş, 301 yönlendirmesinin en kritik kullanım senaryolarından biridir. Yanlış yapıldığında sıralama kaybına, sertifika hatalarına ve tarayıcı uyarılarına yol açar.
Geçiş Öncesi Kontrol Listesi
- SSL/TLS sertifikanızın kurulu ve geçerli olduğunu doğrulayın.
- Sitenizin tüm kaynaklarının (resimler, CSS, JavaScript) HTTPS üzerinden yüklendiğini kontrol edin (mixed content hatası).
- Dahili bağlantıların HTTPS olarak güncellendiğini kontrol edin.
- Sitemap dosyanızın HTTPS URL’lerini içerdiğini doğrulayın.
- Canonical etiketlerinin HTTPS URL’lerini işaret ettiğinden emin olun.
Geçiş Sonrası Kontrol Listesi
- Search Console’a HTTPS varyantını ekleyin ve sitemap gönderin.
- Backlink profilinizde önemli backlinklerin yeni URL’i işaret edip etmediğini kontrol edin.
- Google Analytics, Facebook Pixel ve diğer izleme kodlarını HTTPS’e güncelleyin.
- HSTS (HTTP Strict Transport Security) başlığını etkinleştirmeyi değerlendirin.
HSTS örneği (.htaccess):
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
HSTS, tarayıcılara “Bu siteye her zaman HTTPS üzerinden bağlan” mesajını verir. Yönlendirme adımını ortadan kaldırarak performansı artırır; ancak bir kez etkinleştirildikten sonra geri alınması zordur.
Yönlendirme Testi Araçları
Yönlendirmelerinizi düzgün kurduğunuzu doğrulamak için doğru araçlara ihtiyacınız var.
Ücretsiz Araçlar
curl (Terminal):
En güvenilir ve hızlı test yöntemi terminaldir:
curl -I -L https://ornek.com/eski-sayfa
-I yalnızca başlıkları getirir, -L ise yönlendirmeleri takip eder. Çıktıda her adımın durum kodunu ve Location başlığını göreceksiniz.
Yönlendirme zincirini adım adım görmek için:
curl -v -L --max-redirs 10 https://ornek.com/eski-sayfa 2>&1 | grep -E "^(< HTTP|< Location|> GET)"
httpstatus.io:
Tarayıcı tabanlı araç, yönlendirme zincirini görsel olarak gösterir. Her adımın durum kodunu, başlıklarını ve yanıt süresini listeler.
Redirect Checker (redirectchecker.net):
Toplu URL testine olanak tanır. CSV formatında URL listesi yükleyerek yüzlerce yönlendirmeyi aynı anda kontrol edebilirsiniz.
Google Search Console > URL Denetleme:
Belirli bir URL’nin Google tarafından nasıl görüldüğünü öğrenmek için “URL Denetleme” aracını kullanın. Bu araç, Googlebot’un yönlendirmeyi doğru takip edip etmediğini ve hedef sayfanın dizine eklenip eklenmediğini gösterir.
Ücretli/Gelişmiş Araçlar
Screaming Frog SEO Spider:
Sitenizin tamamını tarayarak yönlendirme zincirlerini, döngüleri ve yönlendirme hatalarını raporlar. “Response Codes” sekmesinde tüm 3xx yanıtlarını görebilirsiniz. “Redirects” sekmesi ise hangi URL’lerin nereye yönlendirildiğini gösterir.
Toplu yönlendirme testinde Screaming Frog’u şu şekilde kullanın:
- Mode: List Mode
- Upload: Test etmek istediğiniz URL listesi
- Rapordan 301, 302 ve zincir yönlendirmeleri filtreleyin
Ahrefs Site Audit:
Ahrefs’in site audit aracı, yönlendirme zincirlerini ve döngülerini otomatik olarak tespit eder. Özellikle “Redirect chains” ve “Redirect loops” uyarılarına odaklanın.
Semrush Site Audit:
Semrush de benzer bir tarama kapasitesi sunar. “3XX redirects” raporu, tüm yönlendirmeleri ve sorunlu zincirleri listeler.
Tarayıcı Geliştirici Araçları
Chrome DevTools > Network sekmesinde, URL’ye gidip “Preserve log” seçeneğini işaretleyin. Bu şekilde sayfanın yüklenme sürecindeki tüm yönlendirme adımlarını görebilirsiniz.
Status: 301 ornek.com/eski-sayfa
Status: 200 ornek.com/yeni-sayfa
SEO Açısından Yönlendirme Kararı: Hızlı Başvuru Tablosu
| Senaryo | Doğru Kod | Gerekçe |
|---|---|---|
| Alan adı taşıma | 301 | Kalıcı; link equity aktarılmalı |
| URL yapısı yenileme | 301 | Kalıcı değişiklik |
| HTTP > HTTPS | 301 | Kalıcı protokol geçişi |
| www > non-www (ya da tersi) | 301 | Kalıcı tercih |
| Silinen sayfa (alternatif var) | 301 | Kullanıcıyı ilgili sayfaya yönlendir |
| Silinen sayfa (alternatif yok) | 410 | ”Gone” — içerik kalıcı olarak kaldırıldı |
| A/B testi | 302 | Geçici; orijinal URL korunmalı |
| Coğrafi yönlendirme | 302 | Geçici; URL değişmeyecek |
| Bakım modu | 302 veya 307 | Geçici durum |
| Form sonrası teşekkür sayfası | 302 veya 303 | PRG (Post/Redirect/Get) deseni |
| API endpoint taşıma (POST koruma) | 308 | Kalıcı; HTTP metodu korunmalı |
Sık Yapılan Yönlendirme Hataları
Hata 1: Tüm Yönlendirmeleri 302 ile Yapmak
Özellikle Magento, Prestashop ve bazı WordPress eklentileri, varsayılan olarak 302 kullanır. Bunu denetlemeniz ve gerektiğinde 301’e değiştirmeniz şarttır.
Hata 2: Canonical ve Yönlendirmeyi Karıştırmak
Canonical etiket, birden fazla URL’nin aynı içeriği gösterdiği ama yönlendirme kurulamayan durumlarda kullanılır. Yönlendirme ile canonical aynı anda kullanılmamalıdır; çelişen sinyaller Googlebot’u karıştırır.
Hata 3: Sitemap’te Yönlendirilen URL’leri Bırakmak
Sitemap, yalnızca kanonik ve erişilebilir URL’leri içermelidir. Yönlendirilen URL’leri sitemap’ten kaldırın.
Hata 4: Robots.txt ile Yönlendirilen URL’leri Engellemek
Yönlendirilen URL’yi robots.txt ile engellerseniz Googlebot o yönlendirmeyi hiç takip etmez ve link equity aktarımı gerçekleşmez.
Hata 5: HTTPS’e Geçişte Mixed Content Bırakmak
HTTPS’e geçtikten sonra sayfanızdaki resimler, iframeler veya scriptler hâlâ HTTP üzerinden yükleniyorsa tarayıcı “güvenli değil” uyarısı gösterir. Bu, yönlendirmenin doğru olduğunu ama sayfanın güvenli olmadığını ifade eder.
Sık Sorulan Sorular
Doğru Yönlendirme Stratejisinin Uzun Vadeli Etkisi
Yönlendirmeler, teknik SEO’nun görünmez ama son derece etkili bir parçasıdır. Büyük bir site göçü, alan adı değişikliği veya HTTPS geçişi sırasında yanlış yönlendirme kararları, kısa sürede sıralama kayıplarına ve organik trafik düşüşlerine dönüşebilir.
Teknik SEO hizmetlerimiz kapsamında yönlendirme denetimi, crawl bütçesi optimizasyonu ve site göçü danışmanlığı sunmaktayız. Yönlendirme mimarinizin doğru kurulması, arama motorlarına açık ve temiz bir sinyal göndererek uzun vadede organik büyümenizi destekler.
Özetle:
- Kalıcı değişikliklerde 301; geçici durumlarda 302 kullanın.
- HTTP metodu korunması gerekiyorsa 307 (geçici) veya 308 (kalıcı) tercih edin.
- Yönlendirme zincirlerini kısaltın; tercihen tek adıma indirgeyin.
- Yönlendirme döngüsü oluşturursa kullanıcılar ve botlar sayfaya ulaşamaz.
- Testlerinizi curl ve Screaming Frog ile düzenli aralıklarla tekrarlayın.
- www/non-www ve HTTP/HTTPS tercihlerinizi Search Console’da netleştirin.
Doğru yönlendirme stratejisi, kısa vadede göze çarpmayabilir; ancak aylarca biriktirilen link equity’nin korunması ve crawl bütçesinin verimli kullanılması açısından web sitenizin temel sağlığını doğrudan etkiler.