Web sitesinde URL yapısını değiştirdiğinizde, içerikleri başka klasöre taşıdığınızda ya da tamamen yeni bir alan adına geçtiğinizde, eski adreslere gelen ziyaretçiler ve arama motoru botları bir anda “boşluğa” düşer. İşte 301 yönlendirme burada devreye girer: kalıcı bir şekilde “artık buradayım” mesajı verir ve eski sayfanın otoritesini, backlink gücünü ve trafiğini yeni adrese taşır.
Doğru uygulanan bir 301 yönlendirmesi, ziyaretçinin fark etmeden yeni sayfaya geçmesini sağlar, Google ise bu sinyali “bu URL artık kalıcı olarak taşındı” şeklinde yorumlar. Böylece hem kullanıcı deneyimi hem de SEO performansı korunur. Ancak yanlış yapılan 301’ler —örneğin zincirler, döngüler veya gereksiz ana sayfa yönlendirmeleri— sitenizin organik trafiğini ciddi şekilde düşürebilir.
Bu rehberde sadece “301 yönlendirme nedir?” demekle kalmayacağız.
- Ne zaman 301 kullanılmalı, ne zaman kullanılmamalı?
- Hangi yöntem daha uygun: .htaccess, PHP, CMS eklentisi, Cloudflare?
- SEO açısından en güvenli yönlendirme adımları neler?
Ayrıca her yöntemin uygulama adımlarını örnek kodlar ve ekran görüntüsü mantığıyla anlatacağız. Böylece “301 yönlendirme nedir nasıl yapılır?” sorusunun hem teknik hem stratejik tarafını net şekilde öğreneceksin.
İçindekiler
Toggle301 Yönlendirmesi Nedir?
301 yönlendirme, bir web sayfasının kalıcı olarak başka bir URL’ye taşındığını bildiren bir HTTP durum kodudur. Eski adrese gelen ziyaretçiler ve arama motoru botları otomatik olarak yeni adrese yönlendirilir. Böylece sayfanın SEO gücü, backlink otoritesi ve trafiği boşa gitmez.
Burada “kalıcı” ifadesi kritik. Çünkü 301, Google’a “bu sayfa artık burada, eski adresi dizinden çıkarabilirsin” mesajı verir. Geçici yönlendirmeler olan 302’lerde ise durum farklıdır; Google, eski sayfayı indekslemeye devam eder ve SEO değerini yeni adrese aktarmayabilir. Bu nedenle uzun vadeli değişikliklerde daima 301 kullanılır.
SEO açısından doğru uygulanan bir 301 yönlendirmesi:
- Backlink değerini korur
- Trafik kaybını önler
- Sıralamalarda istikrar sağlar
- Tarama bütçesini optimize eder
Yanlış uygulandığında ise redirect zincirleri, döngüler ve gereksiz ana sayfa yönlendirmeleri hem kullanıcı deneyimine hem de sıralamalara zarar verir.
301 Yönlendirmesi Ne Zaman Kullanılır?
301 yönlendirme, her URL değişikliğinde otomatik olarak yapılması gereken bir işlem değildir. Bazen 302 gibi geçici yönlendirmeler ya da tamamen farklı çözümler daha doğru olabilir. Ancak kalıcı taşımaların söz konusu olduğu senaryolarda 301 kullanmak hem kullanıcı deneyimini hem de SEO değerini korumak açısından kritik rol oynar.
Aşağıda 301 yönlendirmesinin özellikle gerekli olduğu durumları adım adım ele alacağız. Her başlıkta hem neden bu yöntemi tercih etmeniz gerektiğini hem de olası riskleri göreceksiniz.
- SEO otoritesini koruma ve link değerini aktarma: Yıllar içinde kazanılmış backlink gücünü yeni sayfaya taşımak için, birebir içerik eşleşmesi olan sayfalarda 301 kullanılır.
- Kırık link (404) hatalarını önleme: Silinen veya taşınan sayfaları alakalı yeni URL’lere yönlendirerek hem kullanıcı hem bot deneyimini korursunuz.
- Site taşıma ve domain değişikliği senaryoları: Domain değiştirdiğinizde veya site yapısını kökten yenilediğinizde tüm sayfalar birebir yeni adreslerine yönlendirilmelidir.
- Tarama bütçesini optimize etme: Botların gereksiz yere 404 veya eski URL’lere takılmasını engelleyerek tarama kaynaklarını doğru sayfalara yönlendirebilirsiniz.
301 Yönlendirmesi Nasıl Yapılır?
301 yönlendirme uygulamanın birden fazla yolu vardır ve doğru yöntem, kullandığınız altyapıya, sunucu tipine ve teknik erişim seviyenize göre değişir. Apache sunucularda .htaccess dosyası ile kod yazarak, PHP tabanlı sitelerde header fonksiyonu kullanarak, WordPress gibi CMS’lerde eklentilerle ya da Cloudflare gibi CDN/platform servisleri üzerinden kolayca yapılabilir.
Bu bölümde her yöntemi adım adım ele alacak, örnek kod ve ayar mantıklarıyla beraber olası hatalara karşı dikkat edilmesi gereken noktaları göstereceğiz.
.htaccess ile 301 yönlendirmesi (Apache)
Apache sunucularda 301 yönlendirmesi yapmanın en yaygın yolu .htaccess dosyası üzerinden kural tanımlamaktır. Bu dosya, sunucuya gelen istekleri nasıl yönlendireceğinizi kontrol eder ve teknik SEO açısından en güvenli sonuçları verir. Doğru kural yazımı sayesinde tek bir sayfayı, bir klasörü, tüm domain’i veya sadece HTTP/HTTPS – www/non-www gibi yapı değişikliklerini yönetebilirsiniz.
Aşağıda, farklı senaryolara uygun 301 yönlendirme örneklerini bulacaksınız. Her örnek, tek adımda, SEO dostu ve parametre kaybı olmadan çalışacak şekilde hazırlanmıştır. Kodları kendi sitenize uyarlarken eski ve yeni URL’leri kendi adreslerinizle değiştirmeyi unutmayın.
1) Tek bir sayfayı yeni adrese yönlendir
# /eski-urun -> /yeni-urun
Redirect 301 /eski-urun https://www.site.com/yeni-urun
2) Bir klasörü birebir yeni klasöre taşı
# /blog/alt-klasor/* -> /icerik/alt-klasor/* (yol sonu korunur)
RedirectMatch 301 ^/blog/alt-klasor/(.*)$ https://www.site.com/icerik/alt-klasor/$1
3) Tüm domain’i başka bir domaine taşı (URL yolu ve query string korunur)
RewriteEngine On
RewriteCond %{HTTP_HOST} ^eski-site\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.eski-site\.com$
RewriteRule ^(.*)$ https://www.yeni-site.com/$1 [R=301,L,NE]
4) HTTP → HTTPS zorunlu et (www fark etmeksizin)
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
5) non-www → www (ya da tam tersi)
# non-www -> www
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
# Alternatif: www -> non-www
# RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
# RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
6) Tüm siteyi ana sayfaya değil, birebir eşleşen yeni yapıya taşı (kanonik 1:1)
# /eski-yapi/… -> /yeni-yapi/…
RewriteEngine On
RewriteRule ^eski-yapi/(.*)$ https://www.site.com/yeni-yapi/$1 [R=301,L,NE]
7) .php uzantılarını kaldır (temiz URL’ye kalıcı geçiş)
# /ornek.php -> /ornek
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.+)$ $1.php [L] # dahili rewrite (çalıştırmak için)
RewriteRule ^(.+)\.php$ /$1 [R=301,L] # dışarıya 301 (kanonik)
8) Parametreleri kesinlikle koru (güvenli domain taşıma)
# Tüm istekleri yeni domaine, yol ve query ile aktar
RewriteEngine On
RewriteRule ^(.*)$ https://www.yeni-site.com/$1?%{QUERY_STRING} [R=301,L]
Hızlı kontrol listesi (Apache tarafında en yaygın hataları önlemek için)
- Sıra/öncelik: Genel kuralları (domain/HTTPS) üste, spesifik kuralı (tekil sayfa/klasör) onların altına yaz.
- Tek sıçrama: A → B tek adım olsun; A → C → B zincirini yaratma.
- Döngü: Aynı URL’yi tekrar kendine yönlendirme (koşulları doğru koy).
- İç linkler ve sitemap: Yönlendirmeden sonra iç linkleri güncelle, yeni URL’ler sitemap’te olsun.
- Test: curl -I https://… ile HTTP/1.1 301 ve Location: başlığını doğrula; tarayıcı önbelleğini temizleyip dene.
PHP ile 301 yönlendirme yöntemi
Sunucu yapılandırmasına erişiminiz yoksa veya yalnızca belirli bir sayfa için yönlendirme yapmanız gerekiyorsa, PHP ile 301 yönlendirme pratik bir çözümdür. Bu yöntem, özellikle paylaşımlı hostinglerde .htaccess dosyasına erişim olmadığında tercih edilir. PHP yönlendirmesi, HTTP başlık bilgilerini göndererek tarayıcıya ve arama motorlarına “bu sayfa kalıcı olarak taşındı” bilgisini verir.
Aşağıdaki örneklerde, hem basit yönlendirme hem de koşullu yönlendirme senaryolarını görebilirsiniz:
1) Basit 301 yönlendirme
<?php
header(“HTTP/1.1 301 Moved Permanently”);
header(“Location: https://www.yeni-site.com/yeni-sayfa”);
exit();
?>
2) Koşullu yönlendirme (ör. mobil cihazları farklı sayfaya yönlendirme)
<?php
$user_agent = $_SERVER[‘HTTP_USER_AGENT’];
if (preg_match(‘/Mobile|Android|iPhone/’, $user_agent)) {
header(“HTTP/1.1 301 Moved Permanently”);
header(“Location: https://m.site.com/”);
exit();
}
?>
3) Parametre koruyarak yönlendirme
<?php
$parametreler = $_SERVER[‘QUERY_STRING’];
header(“HTTP/1.1 301 Moved Permanently”);
header(“Location: https://www.yeni-site.com/yeni-sayfa?” . $parametreler);
exit();
?>
💡 Dikkat edilmesi gerekenler:
- PHP kodu, sayfanın en üstünde (HTML çıktısından önce) yer almalıdır.
- Yönlendirme yaptıktan sonra exit() eklemek, gereksiz kod çalışmasını engeller.
- Parametreleri korumak istiyorsanız $_SERVER[‘QUERY_STRING’] değerini yeni URL’ye eklemeyi unutmayın.
HTML meta refresh ile yönlendirme
HTML meta refresh, sayfa içeriğine eklenen bir meta etiketi ile yönlendirme yapma yöntemidir. Teknik olarak bu da bir yönlendirme sağlar, ancak 301 gibi sunucu tabanlı yöntemlere kıyasla hem SEO açısından hem de kullanıcı deneyimi bakımından daha zayıf kabul edilir. Genellikle kısa süreli geçişlerde veya sunucu/uygulama tarafında yönlendirme yapılamayan durumlarda kullanılır.
Bu yöntemde tarayıcıya, belirtilen süre sonunda yeni sayfaya gitmesi talimatı verilir. Süreyi 0 olarak ayarlarsanız yönlendirme anında gerçekleşir.
Örnek: Anında meta refresh yönlendirmesi
<meta http-equiv=”refresh” content=”0;url=https://www.yeni-site.com/yeni-sayfa”>
💡 Notlar:
- Arama motorları bu yöntemi destekler ama 301 kadar güçlü bir sinyal vermez.
- Kullanıcılar, tarayıcıda yönlendirme öncesi kısa bir “yanıp sönme” görebilir.
- Mümkünse .htaccess veya PHP gibi sunucu tabanlı yönlendirmeler tercih edin.
WordPress ve diğer CMS’lerde 301 yönlendirme
Kod dosyalarına müdahale etmek istemeyenler veya teknik bilgisi sınırlı olanlar için, CMS tabanlı sitelerde 301 yönlendirme yapmak çok daha kolaydır. WordPress’te bu işlem genellikle eklentiler aracılığıyla birkaç tıklamayla yapılabilir. Drupal, Joomla, Shopify gibi diğer içerik yönetim sistemlerinde de benzer çözümler mevcuttur.
CMS tabanlı yönlendirmeler, .htaccess veya PHP yöntemi kadar performanslı olabilir; ancak yönlendirme kuralları veritabanında saklandığı için yüksek trafikli sitelerde sunucu yükünü artırma ihtimali vardır.
1) WordPress eklentileri ile 301 yönlendirme
- Redirection: En popüler ücretsiz çözümlerden biridir. Eski URL ve yeni URL girerek kolayca yönlendirme oluşturabilirsiniz.
- Yoast SEO Premium: SEO optimizasyon araçlarının yanında gelişmiş yönlendirme yöneticisi sunar.
- Simple 301 Redirects: Minimal arayüzü ile sadece yönlendirme yapar, ek özellik yoktur.
2) functions.php ile yönlendirme (kod yazmak isteyenler için)
add_action(‘template_redirect’, function() {
if (is_page(‘eski-sayfa’)) {
wp_redirect(home_url(‘/yeni-sayfa’), 301);
exit();
}
});
💡 Öneri:
- CMS eklentilerinde çok sayıda yönlendirme varsa, performans için bu yönlendirmeleri sunucu tarafına (.htaccess veya Nginx config) taşımak daha sağlıklıdır.
- Yönlendirme yaptıktan sonra iç linkleri ve site haritasını mutlaka güncelleyin.
Cloudflare 301 yönlendirmesi
Cloudflare, DNS yönetimi ve CDN hizmeti sunmasının yanı sıra, Page Rules veya Redirect Rules özelliği ile 301 yönlendirme yapmanıza olanak tanır. Bu yöntem, özellikle .htaccess erişimi olmayan kullanıcılar, farklı altyapılarda çalışan siteler veya domain seviyesinde yönlendirme yapmak isteyenler için oldukça pratiktir. Avantajı, yönlendirme işleminin Cloudflare ağı üzerinde gerçekleşmesi ve böylece web sunucunuza ek yük bindirmemesidir.
1) Cloudflare Page Rules ile 301 yönlendirme
- Cloudflare hesabınıza giriş yapın ve ilgili domain’i seçin.
- Rules → Page Rules bölümüne gidin.
- Create Page Rule butonuna tıklayın.
- Yönlendirmek istediğiniz URL desenini yazın (ör. example.com/eski-sayfa*).
- Forwarding URL seçin ve 301 – Permanent Redirect tipini belirleyin.
- Yeni URL’yi girin ve kaydedin.
2) Cloudflare Redirect Rules ile 301 yönlendirme (yeni sürüm)
Cloudflare’ın yeni “Redirect Rules” özelliği, Page Rules’a kıyasla daha esnek eşleşme seçenekleri sunar:
- URL Path veya Hostname bazlı kurallar
- Regex (düzenli ifade) desteği
- Toplu yönlendirme listeleri
Örnek:
- ^/blog/(.*)$ → https://example.com/yazi/$1
Bu sayede blog altındaki tüm yazılar yeni yapıya tek kural ile taşınabilir.
💡 Dikkat Edilecekler:
- Page Rules limitlidir (ücretsiz planda 3 adet), Redirect Rules ise daha geniştir.
- HTTPS yönlendirmeleri için Cloudflare SSL/TLS ayarlarının doğru yapılandırıldığından emin olun.
- Yönlendirmeler Cloudflare üzerinden çalıştığı için DNS kayıtlarınızın Cloudflare proxied (turuncu bulut) durumda olması gerekir.
301 yönlendirmesi yaparken dikkat edilmesi gerekenler
301 yönlendirme teknik olarak basit görünse de yanlış yapılandırıldığında hem kullanıcı deneyimine hem de SEO performansına ciddi zarar verebilir. Özellikle büyük sitelerde veya toplu yönlendirmelerde yapılacak hatalar, organik trafiğin kısa sürede düşmesine neden olabilir. Doğru bir yönlendirme için aşağıdaki noktalara dikkat etmek gerekir:
- Redirect zincirlerini önleyin: Yönlendirmeler tek adımda olmalı. A → B → C yerine, A doğrudan C’ye gitmeli.
- Döngülerden kaçının: A sayfasının tekrar kendisine veya birbirine dönen URL’lere yönlendirilmesi erişimi engeller.
- Alakasız sayfalara yönlendirme yapmayın: Kullanıcıyı konu açısından ilgili olmayan sayfalara göndermek hem memnuniyeti hem sıralamayı bozar.
- İç linkleri ve site haritasını güncelleyin: Yönlendirme sonrası eski URL’lere giden tüm bağlantılar yenileriyle değiştirilmelidir.
- Test araçları kullanın: Screaming Frog, Ahrefs, Sitebulb veya curl -I komutu ile yönlendirme kodunu (301) ve hedef URL’yi doğrulayın.
- Google Search Console ile kontrol edin: “URL Denetleme” aracıyla yönlendirmenin doğru çalıştığını ve Google’ın yeni URL’yi indekslediğini teyit edin.
Sıkça Sorulan Sorular – 301 Yönlendirme
301 yönlendirme ne zaman etkisini gösterir?
Google genellikle yönlendirmeyi birkaç gün içinde fark eder, ancak eski URL’nin tamamen dizinden çıkması ve yenisinin otoriteyi devralması birkaç haftayı bulabilir. Bu süre, sitenizin büyüklüğüne ve botların tarama sıklığına bağlı olarak değişir. Küçük sitelerde bu süreç daha hızlı tamamlanırken, büyük ve çok bağlantılı sitelerde daha uzun sürebilir. Yönlendirme sonrasında Search Console üzerinden durumu takip etmek faydalıdır.
Backlinkler yönlendirme ile korunur mu?
Evet, 301 yönlendirme ile eski URL’nin backlink değeri büyük oranda yeni URL’ye aktarılır. Ancak bu aktarımın verimli olması için eski ve yeni sayfanın içerik açısından yüksek oranda benzer olması gerekir. İlgisiz sayfalara yönlendirme yapmak hem kullanıcı memnuniyetini hem de otorite aktarımını olumsuz etkiler. Doğru yapılan bir 301 ile backlinklerden gelen SEO gücü kaybolmaz.
301 yönlendirme SEO’ya zarar verir mi?
Doğru yapılandırıldığında 301 yönlendirme SEO açısından olumsuz değil, aksine faydalıdır. Kalıcı taşınma sinyali gönderdiği için Google yeni URL’yi eski sayfanın yerine geçirir ve otoriteyi korur. Ancak zincirler, döngüler ve alakasız hedefler SEO performansını düşürebilir. Bu nedenle her yönlendirme planlı ve test edilmiş olmalıdır.
Hangi yöntemi ne zaman tercih etmeliyim?
Apache tabanlı sunucularda .htaccess yöntemi, toplu ve performanslı yönlendirmeler için idealdir. Sunucu yapılandırmasına erişiminiz yoksa PHP yönlendirmesi, tekil veya koşullu yönlendirmelerde kullanılabilir. WordPress gibi CMS’lerde eklentiler pratik çözümler sunarken, Cloudflare ise altyapıya dokunmadan domain veya alt alan yönlendirmelerinde avantaj sağlar. Hangi yöntemi seçeceğiniz, teknik imkanlarınıza ve yönlendirme senaryonuza bağlıdır.
301 yönlendirme, doğru uygulandığında hem kullanıcı deneyimini hem de SEO performansını koruyan en önemli teknik SEO adımlarından biridir. Kalıcı taşınma sinyali göndererek eski URL’nin otoritesini ve backlink gücünü yeni adrese taşır; yanlış uygulandığında ise zincirler, döngüler ve alakasız yönlendirmelerle ciddi sıralama kayıplarına yol açabilir. Bu nedenle hangi yöntemi kullanırsanız kullanın, yönlendirmeleri planlı, test edilmiş ve tek adımda çalışacak şekilde yapılandırmanız gerekir.
Brandaft olarak teknik SEO alanındaki uzmanlığımızla, 301 yönlendirmeleri gibi karmaşık süreçleri en verimli şekilde yönetiyor, sitenizin arama motoru görünürlüğünü koruyor ve güçlendiriyoruz. Brandaft SEO ajansı olarak, hem stratejik hem teknik tüm SEO adımlarında yanınızda oluyor, projenizin arama sonuçlarında hak ettiği yeri almasını sağlıyoruz.
Kaynak : https://developers.google.com/search/docs/crawling-indexing/301-redirects?hl=tr