SEO

301 Yönlendirmesi Nasıl Yapılır? Adım Adım Rehber

301 yönlendirmesi, bir sayfanın adresi kalıcı olarak değiştiğinde ziyaretçileri ve arama motorlarını eski URL’den yeni URL’ye otomatik olarak gönderen sunucu yanıtıdır. Apache ve LiteSpeed sunucularda .htaccess dosyasına tek satır ekleyerek, WordPress’te bir eklentiyle, Nginx’te return 301 komutuyla ya da Cloudflare panelinden kurulabilir. Doğru kurulduğunda eski sayfanın sıralaması ve aldığı bağlantıların değeri yeni adrese aktarılır.

Kısaca

  • Tek sayfa için (.htaccess): Redirect 301 /eski-sayfa https://www.siteniz.com/yeni-sayfa
  • Kalıcı taşımada 301 (veya 308), geçici durumlarda 302 (veya 307) kullanılır.
  • Her eski URL, içeriği en yakın yeni URL’ye yönlenmeli; toplu olarak ana sayfaya yönlendirmek hatadır.
  • Yönlendirmeler en az 1 yıl, mümkünse süresiz kalmalıdır.
  • Kurulumdan sonra curl -I veya Search Console URL Denetleme ile test edin.

301 Yönlendirmesi Nedir?

301, HTTP’nin “Moved Permanently” (kalıcı olarak taşındı) durum kodudur. Tarayıcı ya da Googlebot eski adrese geldiğinde sunucu sayfa yerine 301 kodunu ve yeni adresi (Location başlığı) döndürür. Tarayıcı kullanıcıyı fark ettirmeden yeni adrese götürür. Google ise zamanla eski URL’yi dizinden çıkarıp yerine yeni URL’yi gösterir.

Bir 301 yanıtı sunucuda şöyle görünür:

HTTP/1.1 301 Moved Permanently
Location: https://www.siteniz.com/yeni-sayfa

301 yönlendirmesi nasıl çalışır: tarayıcı eski adresi ister, sunucu 301 ve yeni adresi döndürür, tarayıcı yeni sayfayı açar

301 Yönlendirmesi Ne Zaman Yapılır, Ne Zaman Yapılmaz?

301 gereken durumlar:

  • Sayfanın URL’si (slug) değişti.
  • Site yeni bir alan adına taşındı.
  • HTTP’den HTTPS’e geçildi ya da www’lü ve www’süz sürümler tek adreste birleştirildi.
  • Aynı konuyu anlatan iki yazı birleştirildi (anahtar kelime yamyamlığı çözümü).
  • Altyapı değişti (ör. hazır e-ticaret paketinden WordPress/WooCommerce’e geçildi) ve URL yapısı farklılaştı.
  • Satıştan kalkan bir ürünün yerine geçen yeni model veya aynı kategori sayfası var.

301 gerekmeyen durumlar:

  • Sayfanın sadece içeriği ya da görselleri değişti; adres aynı kaldı.
  • İçerik geçici olarak kaldırıldı (kampanya bitti, bakım var). Bu durumda 302 veya 307 kullanılır.
  • Sayfa tamamen silindi ve yerine geçecek benzer bir sayfa yok. Bu durumda 410 (Gone) ya da 404 döndürmek daha doğrudur.
  • İki sayfa da yayında kalacak ama Google’ın birini tercih etmesi isteniyor. Bu durumda canonical etiketi kullanılır.

301, 302, 410 ve canonical arasında seçim yapmak için karar ağacı

301, 302, 307, 308 ve Diğer Yönlendirmeler: Hangisini Seçmeli?

Tür Anlamı Google nasıl yorumlar? Ne zaman kullanılır?
301 Kalıcı taşındı Kalıcı. Yeni URL dizine alınır. URL değişikliği, site taşıma, HTTPS geçişi
308 Kalıcı taşındı (istek yöntemi korunur) Kalıcı. 301 ile aynı. Form/API gibi POST isteklerinin de taşınması gerektiğinde
302 Geçici olarak bulundu Geçici. Eski URL dizinde kalır. Kampanya, A/B testi, kısa süreli bakım
307 Geçici yönlendirme (yöntem korunur) Geçici. 302 ile aynı. Geçici durumlar; tarayıcılar HSTS için de 307 gösterir
Meta refresh (0 sn) HTML içinden yönlendirme Kalıcı kabul edilir. Sunucuya erişim yoksa son çare
JavaScript window.location ile yönlendirme Kalıcı kabul edilir ama JS işlenmezse görülmeyebilir. Sunucu ve meta refresh mümkün değilse

Google’ın önerisi açıktır: kalıcı değişikliklerde mümkün olan her durumda sunucu tarafında 301 veya 308 kullanın. Kaynak: Google Search Central, Yönlendirmeler ve Google Arama.
Affiliate bağlantılarını /git/urun-adi gibi kısa adreslerle yönetmek için genellikle 302 kullanılır. Bu yöntemin doğru ve yanlış kullanımlarını bağlantı maskeleme yazısında anlattım.

Başlamadan Önce: Yönlendirme Haritası Hazırlayın

Yönlendirme işlerinin çoğu kod yazarken değil, hazırlıksız yapılan taşımalarda bozulur. Kod yazmadan önce her eski URL’nin nereye gideceğini gösteren bir tablo hazırlayın:

Eski URL Yeni URL Kod Not
/urun/kirmizi-elbise-123 /kirmizi-elbise 301 Birebir karşılık
/kategori/elbise /elbiseler 301 Kategori adı değişti
/urun/eski-sezon-ceket /montlar 301 Ürün kalktı, en yakın kategori
/kampanya-2024 (yok) 410 Karşılığı yok

Eski URL’leri toplamanın yolları:

  1. Site haritası: Taşımadan önce mevcut sitemap.xml dosyasını indirin.
  2. Search Console: Performans raporunda “Sayfalar” sekmesini dışa aktarın. Trafik alan URL’ler önceliklidir.
  3. Tarama aracı: Screaming Frog gibi bir araçla siteyi tarayın (ücretsiz sürüm 500 URL’ye kadar tarar).
  4. Backlink listesi: Dış sitelerden bağlantı alan URL’leri mutlaka haritaya ekleyin; yönlendirilmezse bağlantı değeri boşa gider. E-ticaret altyapısı değiştirirken taşıma planının nasıl kurulduğunu e-ticaret danışmanlığı sayfasında anlattım.
  5. Taşımayı çoktan yaptıysanız: Wayback Machine ile sitenin geçmişine bakabilir veya Google’da site:eskisite.com araması yapabilirsiniz.

.htaccess ile 301 Yönlendirmesi (Apache ve LiteSpeed)

.htaccess, sitenizin kök dizininde (genellikle public_html) bulunan bir sunucu ayar dosyasıdır. cPanel’de Dosya Yöneticisi‘ni açın, sağ üstteki Ayarlar‘dan “Gizli dosyaları göster” seçeneğini işaretleyin. Dosya yoksa .htaccess adıyla yeni bir dosya oluşturabilirsiniz.

Düzenlemeden önce dosyanın bir kopyasını bilgisayarınıza indirin. Tek bir hatalı karakter siteyi “500 Internal Server Error” ile kapatabilir; bu durumda yedeği geri yüklemeniz yeterlidir.

Tek sayfayı yönlendirmek

Redirect 301 /eski-sayfa https://www.siteniz.com/yeni-sayfa

Soldaki yol alan adı olmadan, sağdaki hedef tam adresle yazılır. Redirect komutu alt yolları da taşır: /eski-sayfa/alt adresi /yeni-sayfa/alt adresine gider.

Klasörü veya kategoriyi yönlendirmek

RewriteEngine On
RewriteRule ^blog/(.*)$ https://www.siteniz.com/makaleler/$1 [R=301,L]

/blog/ altındaki tüm sayfalar aynı adla /makaleler/ altına taşınır.

URL’den bir ön eki kaldırmak (e-ticaret örneği)

Eski sitede /kategori/alt-kategori/urun-adi olan ürün adresleri, yeni sitede /urun-adi olarak açılıyorsa:

RewriteEngine On
RewriteRule ^kategori/alt-kategori/(.*)$ https://www.siteniz.com/$1 [R=301,L]

HTTP’den HTTPS’e ve www’ye tek adımda yönlendirmek

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.siteniz.com/$1 [R=301,L]

Bu kural tüm varyasyonları (http, www’süz) tek bir yönlendirmeyle son adrese gönderir ve zincir oluşmasını engeller.

Site Cloudflare veya başka bir proxy arkasındaysa sunucu bağlantıyı her zaman HTTP olarak görebilir ve bu kural sonsuz döngüye girer. Bu durumda HTTPS yönlendirmesini Cloudflare’de “Always Use HTTPS” ayarıyla yapın.

Alan adı değişikliğinde tüm siteyi taşımak

Eski alan adının .htaccess dosyasına eklenir. Her sayfa yeni alan adındaki aynı yola gider:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?eskisite\.com$ [NC]
RewriteRule ^(.*)$ https://www.yenisite.com/$1 [R=301,L]

Bazı URL’ler yeni sitede farklı olacaksa, onlara özel kuralları bu genel kuralın üstüne yazın. Apache kuralları yukarıdan aşağıya okur ve L bayrağı eşleşen ilk kuralda durmasını sağlar.

WordPress kullanıyorsanız kodun yeri önemli

WordPress .htaccess dosyasına kendi kurallarını # BEGIN WordPress ile # END WordPress arasına yazar ve bu bölümü zaman zaman yeniden oluşturur. Kendi yönlendirmelerinizi her zaman bu bloğun üstüne ekleyin:

# Yönlendirmeler
Redirect 301 /eski-sayfa https://www.siteniz.com/yeni-sayfa

# BEGIN WordPress
...
# END WordPress

WordPress .htaccess dosyasında 301 yönlendirme kurallarının BEGIN WordPress bloğunun üstüne yazılması

WordPress’te Eklentiyle 301 Yönlendirmesi

Sunucu dosyasıyla uğraşmak istemiyorsanız eklenti en güvenli yoldur.

Redirection eklentisi (ücretsiz)

  1. Eklentiler > Yeni Ekle menüsünde “Redirection” aratın. John Godley’nin geliştirdiği eklentiyi kurup etkinleştirin.
  2. Araçlar > Redirection menüsüne gidin ve kurulum sihirbazını varsayılan ayarlarla tamamlayın.
  3. Kaynak URL alanına eski adresi alan adı olmadan yazın (ör. /eski-sayfa).
  4. Hedef URL alanına yeni adresi yazın ve Yönlendirme Ekle‘ye tıklayın.

Eklentinin 404’ler sekmesi, sitede hata veren adresleri kaydeder. Taşımadan sonraki haftalarda bu listeyi kontrol ederek gözden kaçan URL’leri yakalayabilirsiniz. CSV ile toplu içe aktarma da destekler.

SEO eklentilerinin yönlendirme modülleri

  • Rank Math: Ücretsiz sürümde Yönlendirmeler modülü vardır. Panelden açıp aynı şekilde kaynak ve hedef girebilirsiniz.
  • Yoast SEO Premium: Bir yazının adresini değiştirdiğinizde ya da yazıyı sildiğinizde yönlendirme oluşturmayı otomatik olarak önerir. Ücretsiz Yoast sürümünde bu özellik yoktur.

Aynı adres için birden fazla eklentide yönlendirme tanımlamayın; çakışan kurallar döngüye neden olur.

Nginx’te 301 Yönlendirmesi

Nginx .htaccess dosyasını okumaz. Kurallar sunucu yapılandırmasına (genellikle /etc/nginx/sites-available/) yazılır.

Tek sayfa

location = /eski-sayfa {
    return 301 https://www.siteniz.com/yeni-sayfa;
}

Alan adı değişikliği

server {
    listen 80;
    listen 443 ssl;
    server_name eskisite.com www.eskisite.com;
    # ssl_certificate ve ssl_certificate_key satırları eski alan adının sertifikasını göstermeli
    return 301 https://www.yenisite.com$request_uri;
}

$request_uri, yolu ve sorgu parametrelerini olduğu gibi taşır. Değişiklikten sonra yapılandırmayı test edip yeniden yükleyin:

sudo nginx -t && sudo systemctl reload nginx

cPanel ve Cloudflare ile 301 Yönlendirmesi

cPanel

Alan Adları > Yönlendirmeler (Redirects) menüsünde türü Kalıcı (301) seçin, alan adını ve eski yolu girin, hedef adresi yazıp Ekle‘ye tıklayın. cPanel bu kuralı arka planda .htaccess dosyasına yazar.

Cloudflare

Sitenizin DNS’i Cloudflare’deyse sunucuya dokunmadan yönlendirme yapabilirsiniz:

  • Rules > Redirect Rules: Tek tek ya da desen tabanlı yönlendirmeler (ör. eski alan adının tamamı) için. Durum kodu olarak 301’i seçin ve “Preserve query string” seçeneğini açık bırakın.
  • Bulk Redirects: Yüzlerce birebir eşleşmeyi CSV listesiyle yüklemek için.

Eski alan adı başka bir sunucuda barınmıyorsa, yönlendirmenin çalışması için Cloudflare’de bu alan adına proxy’li (turuncu bulut) bir DNS kaydı bulunmalıdır.

Hazır E-Ticaret Altyapılarında 301

IdeaSoft, Ticimax, ikas, T-Soft ve Shopify gibi altyapılarda sunucu dosyasına erişiminiz olmaz. Bu altyapıların yönetim panellerinde “URL yönlendirme” veya “301 yönlendirme” adıyla bir bölüm bulunur ve çoğu Excel/CSV ile toplu yükleme kabul eder. Taşıma öncesinde hazırladığınız yönlendirme haritasını bu formata çevirip yüklemeniz yeterlidir. Shopify’da bu bölüm Online Mağaza > Navigasyon > URL Yönlendirmeleri altındadır ve ürün adresi değiştiğinde yönlendirme otomatik önerilir.
İki ayrı siteyi tek sitede birleştirirken 301 ve 410 kodlarını birlikte nasıl kullandığımı gerçek bir projeden anlattığım ALB Yatırım SEO başarı hikayesi yazısında bulabilirsiniz.

Alan Adı Değiştirdiyseniz: Google’a Bildirin

Yalnızca alan adı (veya alt alan adı) değiştiğinde Search Console’daki Adres Değişikliği aracını kullanın. HTTP’den HTTPS’e geçiş veya site içi URL değişikliklerinde bu araca gerek yoktur.

  1. Eski ve yeni alan adının Search Console mülklerinde aynı Google hesabıyla sahip yetkisine sahip olun.
  2. Eski mülkte Ayarlar > Adres değişikliği menüsünü açın.
  3. Yeni mülkü seçin ve doğrulamayı başlatın. Araç, ana sayfa ve örnek sayfalardaki 301’leri kontrol eder.
  4. Yeni alan adının site haritasını gönderin. Eski site haritasını bir süre tutmak, eski URL’lerin daha hızlı yeniden taranmasına yardım eder.

Ayrıntılar için: Google, URL değişikliği olan site taşımaları.

301 Yönlendirmesi Nasıl Test Edilir?

Komut satırıyla (en güvenilir yol)

Windows’ta Komut İstemi’ni, macOS ve Linux’ta Terminal’i açıp yazın:

curl -sIL https://www.siteniz.com/eski-sayfa

Çıktıda ilk satır HTTP/1.1 301 (ya da HTTP/2 301), location: satırı yeni adres, son yanıt ise 200 olmalıdır. Arada birden fazla 301 görüyorsanız zincir var demektir.
curl komutuyla 301 yönlendirme testi: 301 Moved Permanently, Location ve 200 OK satırları

Tarayıcıyla

Chrome’da F12 ile Geliştirici Araçları’nı açın, Ağ (Network) sekmesinde “Preserve log” kutusunu işaretleyin ve eski adresi açın. İlk satırda 301 durum kodunu ve hedefi görürsünüz. Tarayıcı 301’leri önbelleğe aldığı için testleri gizli pencerede yapın.

Search Console ile

URL Denetleme aracına eski adresi yazın. “Sayfa yönlendirmeli” ifadesi ve hedef URL görünüyorsa Google yönlendirmeyi algılamıştır. Taşımadan sonraki haftalarda Sayfalar raporundaki “Yönlendirmeli sayfa” ve “Bulunamadı (404)” sayılarını izleyin.

En Sık Yapılan 301 Hataları

  • Yönlendirme zinciri: A’dan B’ye, B’den C’ye. Her yönlendirmeyi doğrudan son adrese yazın. Google bir noktadan sonra zinciri takip etmeyi bırakır.
  • Yönlendirme döngüsü: A, B’ye; B de A’ya gidiyor. Tarayıcı “çok fazla yönlendirme” hatası verir. Eklenti, .htaccess ve Cloudflare’deki kuralları birlikte kontrol edin.
  • Her şeyi ana sayfaya yönlendirmek: Google bunu “soft 404” sayar ve eski sayfanın değeri aktarılmaz. Her URL’yi en yakın içeriğe gönderin.
  • Kalıcı taşımada 302 kullanmak: Google eski URL’yi dizinde tutmaya devam eder.
  • Hedef sayfayı robots.txt veya noindex ile engellemek: Değer aktarılacak yer kapalı olur.
  • İç bağlantıları güncellememek: Menü, yazı içi linkler ve site haritası hala eski adresleri gösterirse her tıklama gereksiz bir yönlendirmeden geçer. Bağlantıları yeni adreslerle güncelleyin.
  • Yönlendirmeleri erken kaldırmak: Birkaç ay sonra silinen kurallar, eski bağlantılardan gelen trafiği 404’e düşürür.

301 Yönlendirmesi Ne Kadar Süre Kalmalı? Nasıl İptal Edilir?

Google, yönlendirmelerin mümkün olduğunca uzun, genellikle en az 1 yıl tutulmasını önerir. Eski adrese başka sitelerden bağlantı geliyorsa yönlendirmeyi hiç kaldırmamak en doğrusudur. Ayrıntılı rehber: 301 yönlendirmesi ne zaman kaldırılmalıdır?

Yanlış bir yönlendirme yaptıysanız, kuralı eklediğiniz yerden (.htaccess, eklenti, Cloudflare) silmeniz yeterlidir. Ancak:

  • Tarayıcılar 301’i önbelleğe aldığı için daha önce adresi ziyaret eden kullanıcılar bir süre daha yönlendirilebilir.
  • Google yeni adresi çoktan dizine aldıysa, eski adrese dönmek için bu kez ters yönde 301 kurmanız gerekir.

Sıkça Sorulan Sorular

301 yönlendirmesi SEO değerini kaybettirir mi?

Hayır. Google, 301 ve 308 yönlendirmelerinde sıralama sinyallerinin yeni adrese aktarıldığını belirtir. Değer kaybı genellikle yönlendirmeden değil; alakasız sayfaya yönlendirme, zincirler veya yeni sayfanın daha zayıf içerikli olmasından kaynaklanır.

301 mi 302 mi kullanmalıyım?

Adres bir daha eskisine dönmeyecekse 301 kullanın. Kampanya, bakım veya test gibi geçici durumlarda 302 kullanın. Emin değilseniz kendinize şunu sorun: “Google eski adresi göstermeye devam etsin mi?” Cevap hayırsa 301 doğru seçimdir.

Silinen ürün veya sayfa nereye yönlendirilmeli?

Yerini alan bir ürün veya çok benzer bir sayfa varsa oraya 301 ile yönlendirin. Yoksa ürünün bulunduğu kategoriye yönlendirebilirsiniz. Benzer hiçbir sayfa yoksa 410 veya 404 döndürmek, ana sayfaya yönlendirmekten daha doğrudur.

Çok sayıda 301 siteyi yavaşlatır mı?

Birkaç yüz, hatta birkaç bin kural genellikle hissedilir bir yavaşlık yaratmaz. Yavaşlığın asıl nedeni zincirlerdir: her ek adım yeni bir istek demektir. Binlerce kuralı tek tek yazmak yerine düzenli ifadeyle (RewriteRule) toplu kural kurmak hem dosyayı sade tutar hem de daha hızlı çalışır.

301 yönlendirmesinin Google’a yansıması ne kadar sürer?

Google’ın eski URL’yi yeniden taraması gerekir. Sık taranan sayfalarda birkaç gün, az ziyaret edilen sayfalarda birkaç hafta sürebilir. Search Console’daki URL Denetleme aracından yeni adres için dizine eklenme isteği göndererek süreci hızlandırabilirsiniz.

.htaccess dosyası olmadan 301 yapılabilir mi?

Evet. Nginx’te sunucu yapılandırması, WordPress’te eklenti, cPanel’de Yönlendirmeler menüsü, Cloudflare’de Redirect Rules veya hazır e-ticaret altyapısının panelindeki yönlendirme bölümü kullanılabilir.

Benzer İçerikler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu