URL Migration Rehberi: Site Taşırken SEO Kaybını Önleme

Site taşıma ve URL değişikliklerinde SEO performansınızı koruyun. Adım adım migration planı, yönlendirme stratejileri ve kontrol listesi.

URL migration, web sitelerinin en riskli operasyonlarından biridir. Yanlış yapıldığında yıllarca biriktirdiğiniz SEO değerini kaybedebilirsiniz. Bu rehberde güvenli migration stratejilerini ve adım adım süreci inceliyoruz.

Migration Türleri

1. Domain Değişikliği

eskidomain.com → yenidomain.com

En riskli migration türü. Tüm URL'ler değişir.

2. Protokol Değişikliği

http://example.com → https://example.com

Nispeten güvenli, ancak yine de dikkat gerektirir.

3. URL Yapısı Değişikliği

/urunler.php?id=123 → /urun/urun-adi
/blog/2024/01/baslik → /blog/baslik

4. CMS/Platform Değişikliği

WordPress → Next.js
Shopify → WooCommerce

5. Subdomain Değişikliği

blog.example.com → example.com/blog
m.example.com → example.com (responsive)

Migration Öncesi Hazırlık

1. Mevcut Durumu Belgeleyin

# Tüm URL'lerin listesini çıkarın
- Sitemap'ten
- Google Search Console'dan
- Crawl araçlarıyla (Screaming Frog)

# Önemli metrikleri kaydedin
- Organik trafik
- Anahtar kelime sıralamaları
- Backlink profili
- Core Web Vitals skorları

2. URL Mapping Oluşturun

# CSV formatında mapping dosyası
eski_url,yeni_url
/eski-sayfa,/yeni-sayfa
/kategori/eski,/kategori/yeni
/urun?id=123,/urun/urun-adi

3. Öncelikli Sayfaları Belirleyin

301 Redirect Stratejisi

Nginx Konfigürasyonu

# Tek sayfa yönlendirme
location = /eski-sayfa {
    return 301 /yeni-sayfa;
}

# Pattern-based yönlendirme
location ~ ^/blog/(\d{4})/(\d{2})/(.*)$ {
    return 301 /blog/$3;
}

# Domain değişikliği
server {
    server_name eskidomain.com www.eskidomain.com;
    return 301 https://yenidomain.com$request_uri;
}

# Map ile toplu yönlendirme
map $uri $new_uri {
    include /etc/nginx/redirects.map;
}

server {
    if ($new_uri) {
        return 301 $new_uri;
    }
}

Apache .htaccess

# Domain değişikliği
RewriteEngine On
RewriteCond %{HTTP_HOST} ^eskidomain\.com$ [NC]
RewriteRule ^(.*)$ https://yenidomain.com/$1 [R=301,L]

# URL yapısı değişikliği
RewriteRule ^urunler\.php\?id=([0-9]+)$ /urun/$1 [R=301,L]

# Toplu yönlendirme dosyasından
RewriteMap redirects txt:/path/to/redirects.txt
RewriteCond ${redirects:$1} !=""
RewriteRule ^(.*)$ ${redirects:$1} [R=301,L]

Laravel/PHP

// routes/web.php
Route::redirect('/eski-sayfa', '/yeni-sayfa', 301);

// Middleware ile
class RedirectMiddleware
{
    private $redirects = [
        '/eski-sayfa' => '/yeni-sayfa',
        '/kategori/eski' => '/kategori/yeni',
    ];
    
    public function handle($request, $next)
    {
        $path = $request->getPathInfo();
        
        if (isset($this->redirects[$path])) {
            return redirect($this->redirects[$path], 301);
        }
        
        return $next($request);
    }
}

Migration Adımları

Adım 1: Staging Ortamı

  1. Yeni siteyi staging'de kurun
  2. Tüm içerikleri migrate edin
  3. URL mapping'i test edin
  4. Internal linkleri güncelleyin

Adım 2: Redirect Testleri

# Redirect'leri test edin
curl -I https://eskidomain.com/test-sayfa

# Beklenen response:
HTTP/1.1 301 Moved Permanently
Location: https://yenidomain.com/test-sayfa

# Toplu test scripti
while read line; do
    old=$(echo $line | cut -d',' -f1)
    new=$(echo $line | cut -d',' -f2)
    response=$(curl -s -o /dev/null -w "%{http_code}" "$old")
    location=$(curl -s -I "$old" | grep -i location | cut -d' ' -f2)
    echo "$old -> $response -> $location"
done < redirects.csv

Adım 3: Google Search Console

  1. Yeni siteyi Search Console'a ekleyin
  2. Domain değişikliği için "Change of Address" kullanın
  3. Yeni sitemap'i gönderin
  4. Eski sitemap'i kaldırın

Adım 4: Go-Live

  1. DNS değişikliğini yapın
  2. SSL sertifikasını aktifleştirin
  3. Redirect'leri aktif edin
  4. Robots.txt'i kontrol edin

Migration Sonrası İzleme

İlk 24-48 Saat

İlk Hafta

İlk Ay

Yaygın Hatalar

1. Redirect Zincirleri

# YANLIŞ
A → B → C → D

# DOĞRU
A → D
B → D
C → D

2. Soft 404'ler

# YANLIŞ - 200 dönen ama 404 içerikli sayfa
HTTP/1.1 200 OK
<h1>Sayfa bulunamadı</h1>

# DOĞRU
HTTP/1.1 404 Not Found

3. Internal Link Güncellememek

# Eski internal linkler redirect'e düşer
<a href="/eski-url">Link</a>  → 301 → /yeni-url

# Doğrudan yeni URL'ye link verin
<a href="/yeni-url">Link</a>

4. Canonical Tag Unutmak

<!-- Yeni sayfada canonical -->
<link rel="canonical" href="https://yenidomain.com/sayfa" />

5. Sitemap Güncellememek

<!-- Yeni sitemap sadece yeni URL'leri içermeli -->
<url>
  <loc>https://yenidomain.com/yeni-sayfa</loc>
</url>

Migration Kontrol Listesi

Öncesi

Geçiş Sırasında

Sonrası

Araçlar

Sonuç

URL migration, dikkatli planlama ve uygulama gerektiren kritik bir süreçtir. Kapsamlı bir URL mapping, doğru 301 redirect'ler ve sürekli izleme ile SEO değerinizi koruyabilirsiniz. SlugURL ile oluşturduğunuz SEO-dostu URL'ler, migration sonrasında da arama motoru performansınızı destekler.