301 yönlendirme nedir sorusunun kısa cevabı şu: bir adresi kalıcı olarak başka bir adrese taşıdığını tarayıcıya ve arama motoruna bildiren HTTP durum kodudur. Ziyaretçi eski adresi açtığında sunucu "bu sayfa artık şurada" der ve ziyaretçiyi yeni adrese gönderir. Arama motoru da eski adresin yerine yenisini indeksler. Bu yazıda 301'in ne zaman kullanılacağını, 302'den farkını, SEO etkisini ve .htaccess, Nginx, Cloudflare ile kayıt firması panelinden nasıl kurulacağını bulacaksın.
301 nedir, ne zaman kullanılır
Bir web sayfasına istek geldiğinde sunucu bir durum kodu döndürür. 200 "sayfa burada", 404 "sayfa yok" demektir. 301 ise "Moved Permanently", yani kalıcı taşındı anlamına gelir ve cevabın içinde yeni adres de yer alır.
301'i adres kalıcı olarak değiştiğinde kullanırsın:
- Domain değiştirdiğinde, örneğin eski markadan yeni markaya geçerken.
- http'den https'e geçtiğinde.
- www ve www olmayan sürümlerden birini tek adres olarak seçtiğinde.
- Bir sayfanın URL'sini değiştirdiğinde ya da iki benzer sayfayı birleştirdiğinde.
- Başka bir domainin eski sayfalarını kendi sitene bağlarken. Bu, expired domain kullanımında sık görülür; ayrıntısı Expired Domain 301 Yönlendirme: İşe Yarar mı, Nasıl Yapılır? yazısında.
Adres geçici olarak değişiyorsa, örneğin bakım sırasında ya da kısa süreli bir kampanya için, 301 yerine 302 kullanırsın.
301 ile 302 arasındaki fark
İkisi de ziyaretçiyi başka bir adrese gönderir. Fark, arama motoruna verdikleri mesajdadır.
| 301 | 302 | |
|---|---|---|
| Anlamı | Kalıcı taşındı | Geçici olarak başka yerde |
| Arama motoru ne yapar | Yeni adresi indeksler, eskisinin yerine koyar | Eski adresi korumaya eğilimlidir |
| Ne zaman | Domain taşıma, URL değişikliği, birleştirme | Bakım, A/B testi, geçici kampanya |
Burada "eğilimlidir" diye yazmamın nedeni, Google'ın bu sinyalleri tek bir koda bakarak değil, birçok işarete bakarak yorumlamasıdır. Yine de doğru kodu seçmek sana iş yükü kazandırır. Kalıcı bir taşımayı 302 ile yaparsan, indeksin güncellenmesi gecikebilir. Geçici bir durumu 301 ile yaparsan, eski adres indeksten düşebilir.
Pratik kural basit: taşıma geri dönmeyecekse 301, dönecekse 302.
SEO etkisi: link gücü ve indeks
Bir sayfanın backlinkleri, o sayfanın adresine verilmiştir. Adres değişince bu linkler eski adrese gelmeye devam eder. 301 yönlendirmesi, o linklerin sağladığı değerin yeni adrese aktarılmasına yardım eder. Link gücü (link equity) bu şekilde taşınır.
İki noktayı ayır:
- İndeks: Google, 301'i gördükten sonra zamanla eski adresi indeksten çıkarır, yenisini ekler. Bu anında olmaz, Google'ın sayfayı yeniden taramasına bağlıdır.
- Link gücü: Aktarımın ne kadarının korunduğuna dair rakamlar tartışmalıdır. Güncel açıklama için Google Search Central belgelerine bak. Bu yazıda tek bir oran vermiyorum, çünkü doğrulanmış bir oran yok.
İşin en önemli kısmı alaka. Yönlendirdiğin sayfa, eski sayfanın konusuyla uyumluysa taşıma doğal olur. Alakasız bir sayfaya toplu yönlendirme, sinyali zayıflatabilir. Konu bağının neden önemli olduğunu Konu Uyumu: Alakasız Expired Domain Almak Neden Boşa Para? yazısında anlattım. Domain düşünce backlinklere ne olduğu için Expired Domain Backlink Gücü: Domain Düşünce Kalır mı? yazısına bak.
.htaccess ile kurulum
Apache sunucuda (çoğu paylaşımlı hosting) yönlendirmeyi .htaccess dosyasıyla yaparsın. Dosya sitenin ana dizinindedir. Değiştirmeden önce bir yedek al, çünkü tek satırlık hata siteyi 500 hatasına düşürebilir.
Tek bir sayfayı yönlendirmek için:
Redirect 301 /eski-sayfa https://www.ornek.com/yeni-sayfa
Tüm domaini başka bir domaine, yol korunacak biçimde taşımak için mod_rewrite kullan:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?eski\.com$ [NC]
RewriteRule ^(.*)$ https://yeni.com/$1 [R=301,L]
R=301 yönlendirme kodunu, L kuralın son kural olduğunu belirtir. $1 eski yolu yeni adrese ekler, yani eski.com/blog/yazi adresi yeni.com/blog/yazi olur. Hostingin mod_rewrite desteği olması gerekir. Emin değilsen kayıt firmasının ya da hostingin belgelerine bak.
Nginx ile kurulum
Nginx'te yönlendirme sunucu bloğunda yapılır. Eski domain için ayrı bir blok açarsın ve return 301 kullanırsın:
server {
listen 80;
server_name eski.com www.eski.com;
return 301 https://yeni.com$request_uri;
}
$request_uri değişkeni, yol ve sorgu dizesini yeni adrese taşır. Https dinleyen bir blok da varsa, onun için de aynı yönlendirmeyi ekle ve sertifikayı yapılandır. Aksi halde https ile gelen ziyaretçiler hata görür. Değişikliği kaydettikten sonra yapılandırmayı test edip (nginx -t) servisi yeniden yükle.
Cloudflare ve kayıt firması panelinden yönlendirme
Sunucu ayarlarına erişimin yoksa ya da kod yazmak istemiyorsan iki kolay yol var.
Cloudflare
Domain Cloudflare üzerindeyse panelde Rules bölümündeki Redirect Rules ile kural tanımlarsın. Kuralda eski adres koşulunu, hedef adresi ve durum kodunu (301) seçersin. Kuralın çalışması için eski domainin DNS kaydının Cloudflare üzerinden geçmesi (proxy açık) gerekir. Panelin arayüzü zamanla değişebilir, bu yüzden adım adım güncel yol için Cloudflare belgelerine bak.
Kayıt firması paneli
Birçok kayıt firması "URL yönlendirme" ya da "domain forwarding" özelliği sunar. Burada dikkat edeceğin iki şey var: yönlendirme türünün kalıcı (301) olarak seçilmesi ve yolun korunup korunmadığı. Bazı panellerde yönlendirme yalnızca ana sayfaya gider, yol korunmaz. Bu, sayfa sayfa taşıma için yetersizdir. Panelin seçeneklerini kayıt firmasının belgesinden kontrol et.
Domain taşırken sayfa sayfa eşleme
Domain taşırken en sık yapılan hata, tüm eski adresleri yeni sitenin ana sayfasına göndermektir. Arama motoru bunu çoğu zaman "yumuşak 404" gibi yorumlar, ziyaretçi de aradığı sayfayı bulamaz. Bunun yerine eşleme tablosu hazırla:
- Eski sitenin tüm URL'lerini çıkar. Sitemap, sunucu günlükleri ve Search Console bu listeyi verir.
- Her eski URL için konusuna en yakın yeni sayfayı seç.
- Karşılığı olmayan sayfaları, konusu yakın bir kategoriye ya da hedef içeriğe bağla. Karşılığı yoksa ve değerli bir backlinki de yoksa 404 ya da 410 bırakmak daha dürüst bir çözümdür.
- Eşlemeyi
.htaccessya da Nginx kuralına dönüştür. Çok sayıda URL varsa, kuralları bir harita dosyasından ya da betikle üret. - Yayına aldıktan sonra her eski adresi tek tek aç ve beklenen yere gittiğini doğrula.
Küçük bir örnek, eşlemenin nasıl görünmesi gerektiğini gösterir. Eski adres eski.com, yeni adres yeni.com olsun:
| Eski adres | Yeni adres | Not |
|---|---|---|
| eski.com/ | yeni.com/ | Ana sayfa ana sayfaya |
| eski.com/blog/yazi-1 | yeni.com/rehber/yazi-1 | Klasör adı değişti, sayfa aynı |
| eski.com/urunler/kategori-a | yeni.com/kategori-a | Yapı sadeleşti |
| eski.com/hakkimizda-eski | yeni.com/hakkimizda | Eski sayfa yenisiyle birleşti |
Bu tabloda her satır tek bir yönlendirme kuralıdır. Klasör adı değişen satırlar için genel bir RewriteRule yetmez, o satırlara ayrı kural yazman gerekir. Taşımadan sonra Search Console'da yeni domaini doğrula, sitemap'i gönder ve birkaç hafta boyunca tarama hatalarını izle. Eşlemede unuttuğun bir adres burada 404 olarak görünür.
Eski domainin içeriğini yeniden yayına almak istiyorsan, Expired Domain Canlandırma: Eski Siteyi Yeniden Kurmak yazısı yönlendirmeye alternatif bir yol anlatıyor.
Sık hatalar: zincir ve döngü
Yönlendirme zinciri. A adresi B'ye, B adresi C'ye gidiyorsa zincir oluşur. Her adım yükleme süresini uzatır ve arama motorunun takibini zorlaştırır. Çözüm: A'yı doğrudan C'ye yönlendir. Domain taşımalarında http, www ve yeni domain kuralları üst üste binince bu çok kolay olur.
Yönlendirme döngüsü. A, B'ye; B de A'ya gidiyorsa tarayıcı "çok fazla yönlendirme" hatası verir ve sayfa hiç açılmaz. Genelde iki ayrı kuralın (örneğin www ve https kuralı) birbirini tetiklemesinden olur. Kuralları tek tek devre dışı bırakarak hangisinin döngüye neden olduğunu bul.
Diğer sık hatalar:
- Yönlendirmeyi test etmeden yayına almak.
- Kalıcı bir taşımayı 302 ile yapmak.
- Eski domaini yönlendirmeyi bitirmeden süresinin dolmasına izin vermek. Domain düşerse yönlendirme de ortadan kalkar.
Yönlendirmeyi test etmek için tarayıcının geliştirici araçlarındaki Network sekmesine ya da curl -I komutuna bak. Cevapta 301 kodunu ve Location başlığındaki hedef adresi görmelisin.
Expired domain tarafında yönlendirmeyi düşünüyorsan, önce hedefe uyumlu domainleri bulman gerekir. hunter.domains günlük taramada domainleri Wayback Machine geçmişi ve link profiline göre eler. Nasıl çalıştığını filtreleme ve puanlama sayfasında okuyabilirsin. Yöntemin 2026'da ne kadar işe yaradığı için Expired Domain SEO: 2026'da Hâlâ İşe Yarıyor mu? yazısına bak.
Sık sorulan sorular
301 yönlendirme SEO'ya zarar verir mi?
Doğru kurulduğunda zarar vermez, taşıma için önerilen yöntemdir. Zarar, kötü kurulumdan gelir: alakasız sayfaya toplu yönlendirme, zincir, döngü ya da kalıcı taşımada yanlış kod kullanımı. Taşıma sonrası bir süre trafikte dalgalanma görebilirsin, çünkü Google'ın yeni adresleri işlemesi zaman alır.
301 ile 302 arasındaki fark nedir?
301 kalıcı taşımayı, 302 geçici yönlendirmeyi bildirir. 301'de arama motoru yeni adresi indeksler ve eskisinin yerine koyar. 302'de eski adres korunmaya daha eğilimlidir. Adres geri dönmeyecekse 301, dönecekse 302 kullan.
301 yönlendirme ne kadar süre açık kalmalı?
Sabit bir süre yok. Eski adresin backlinki ya da trafiği olduğu sürece yönlendirmeyi açık tut. Google'ın site taşıma belgesi bir alt süre öneriyor, güncel rakamı oradan kontrol et. Eski domaini yenilemeyi bırakırsan yönlendirme de çalışmaz, o yüzden uzun vadede domainin kaydını sürdürmen gerekir.