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.comEn riskli migration türü. Tüm URL'ler değişir.
2. Protokol Değişikliği
http://example.com → https://example.comNispeten 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/baslik4. CMS/Platform Değişikliği
WordPress → Next.js
Shopify → WooCommerce5. 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-adi3. Öncelikli Sayfaları Belirleyin
- En çok trafik alan sayfalar
- En çok backlink alan sayfalar
- En çok dönüşüm sağlayan sayfalar
- Önemli landing page'ler
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ı
- Yeni siteyi staging'de kurun
- Tüm içerikleri migrate edin
- URL mapping'i test edin
- 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.csvAdım 3: Google Search Console
- Yeni siteyi Search Console'a ekleyin
- Domain değişikliği için "Change of Address" kullanın
- Yeni sitemap'i gönderin
- Eski sitemap'i kaldırın
Adım 4: Go-Live
- DNS değişikliğini yapın
- SSL sertifikasını aktifleştirin
- Redirect'leri aktif edin
- Robots.txt'i kontrol edin
Migration Sonrası İzleme
İlk 24-48 Saat
- 404 hatalarını izleyin
- Crawl hatalarını kontrol edin
- Critical sayfaların erişilebilirliğini doğrulayın
İlk Hafta
- Organik trafiği karşılaştırın
- Indexleme durumunu kontrol edin
- Önemli anahtar kelimelerin sıralamalarını izleyin
İlk Ay
- Backlink profilini karşılaştırın
- Core Web Vitals'ı izleyin
- Dönüşüm oranlarını analiz edin
Yaygın Hatalar
1. Redirect Zincirleri
# YANLIŞ
A → B → C → D
# DOĞRU
A → D
B → D
C → D2. 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 Found3. 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
- Mevcut URL'lerin tam listesi
- URL mapping dosyası
- Backlink analizi
- Trafik ve sıralama baseline'ı
- Staging ortamı hazır
- Redirect kuralları test edildi
Geçiş Sırasında
- DNS değişikliği yapıldı
- SSL aktif
- Redirect'ler çalışıyor
- robots.txt doğru
- Search Console güncellendi
- Sitemap gönderildi
Sonrası
- 404 izleme aktif
- Crawl hataları kontrol edildi
- Trafik izleniyor
- Sıralamalar izleniyor
- Backlink'ler kontrol edildi
Araçlar
- Screaming Frog: URL crawling ve redirect testi
- Google Search Console: Indexleme ve hata takibi
- Ahrefs/SEMrush: Sıralama ve backlink izleme
- redirect-checker.org: Redirect zinciri testi
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.