Teknik Seo

301 Yönlendirmeleri İçin Regex Kullanımı: Toplu URL Yönlendirme

Web sitelerinde URL yapısı zamanla değişebilir. Blog klasörü güncellenebilir, kategori dizinleri kaldırılabilir, .html uzantıları temizlenebilir, eski ürün URL’leri yeni yapıya taşınabilir ya da site tamamen farklı bir alan adına geçebilir.

Bu tür değişikliklerde eski URL’leri yeni karşılıklarına yönlendirmek, teknik SEO’nun en önemli adımlarından biridir. Çünkü eski URL’ler hâlâ Google’da görünüyor, backlink alıyor veya kullanıcılar tarafından ziyaret ediliyor olabilir.

Az sayıda URL için tek tek 301 yönlendirme yapmak mümkündür. Fakat yüzlerce ya da binlerce URL varsa manuel işlem hem zaman kaybettirir hem de hata riskini artırır. İşte bu noktada Regex, yani düzenli ifadeler devreye girer.

Regex ile 301 yönlendirme, belirli bir URL kalıbına uyan çok sayıda adresi tek bir kuralla yeni yapıya taşımanızı sağlar.

Regex ile 301 Yönlendirme Nedir?

Regex ile 301 yönlendirme, belirli bir URL desenini yakalayarak bu desene uyan tüm sayfaları yeni bir adrese kalıcı olarak yönlendirme işlemidir.

Normal yönlendirme örneği:

/eski-sayfa → /yeni-sayfa

Regex yönlendirme örneği:

/eski-blog/seo-rehberi → /blog/seo-rehberi
/eski-blog/site-tasima → /blog/site-tasima
/eski-blog/regex-yonlendirme → /blog/regex-yonlendirme

Bunun için tek tek üç ayrı yönlendirme yazmak yerine tek bir kural kullanılabilir:

RewriteRule ^eski-blog/(.*)$ /blog/$1 [R=301,L]

Burada (.*) eski URL’deki değişken kısmı yakalar. $1 ise yakalanan bu kısmı yeni URL’ye taşır.

301 Yönlendirme İçin Regex Ne Zaman Kullanılır?

Regex, özellikle URL’ler ortak bir yapıya sahipse çok işe yarar. Her URL farklı ve özel bir karşılığa sahipse manuel yönlendirme daha güvenli olabilir.

SenaryoRegex Kullanılır mı?Örnek
Alan adı değişikliğiEvetolddomain.com/*newdomain.com/*
Klasör taşımaEvet/old-folder/page/new-folder/page
Blog URL yapısı değişimiEvet/blog/2024/yazi/blog/yazi
.html uzantısı kaldırmaEvet/sayfa.html/sayfa
Kategori dizini kaldırmaEvet/category/urun/urun
Tek sayfa değişimiGenelde gerekmez/hakkimizda/kurumsal
Alakasız eski sayfalarDikkatli olunmalıHepsini ana sayfaya göndermek doğru değildir

Regex yönlendirme en çok site taşıma, CMS değişikliği, URL sadeleştirme, kategori yapısı güncelleme ve toplu URL düzenleme işlemlerinde kullanılır.

301 Yönlendirme SEO İçin Neden Önemlidir?

301 yönlendirme, bir URL’nin kalıcı olarak başka bir adrese taşındığını bildirir. SEO açısından doğru kullanıldığında eski sayfanın sahip olduğu otorite, backlink değeri ve kullanıcı trafiği yeni sayfaya aktarılabilir.

Doğru yapılandırılmış 301 yönlendirme sayesinde eski URL’lere gelen kullanıcılar 404 hatasıyla karşılaşmaz, backlinklerden gelen değer korunur, Google yeni URL yapısını daha hızlı anlayabilir ve site taşıma sürecinde organik trafik kaybı azaltılabilir.

Ancak burada önemli nokta şudur: Eski URL, mümkün olduğunca en alakalı yeni URL’ye yönlendirilmelidir. Tüm eski sayfaları ana sayfaya yönlendirmek sağlıklı bir SEO stratejisi değildir.

Regex Mantığını Anlamak İçin Temel Karakterler

Regex ilk bakışta karmaşık görünebilir. Fakat 301 yönlendirmelerde en çok kullanılan birkaç karakteri bilmek çoğu senaryo için yeterlidir.

RegexAnlamıÖrnek
^URL başlangıcı^blog
$URL sonuhtml$
(.*)Her şeyi yakalarold/(.*)
([^/]+)Slash hariç bir bölümü yakalar/blog/([^/]+)
$1İlk yakalanan grubu hedefte kullanır/yeni/$1
[0-9]{4}4 haneli yıl yakalar2024
\.Gerçek nokta karakterini yakalar.html

Örneğin aşağıdaki desen, tarihli blog URL’lerini yakalamak için kullanılabilir:

^blog/[0-9]{4}/([^/]+)/?$

Bu desen şu URL’leri yakalayabilir:

/blog/2024/seo-rehberi
/blog/2025/regex-yonlendirme/

Apache .htaccess ile Regex 301 Yönlendirme Örnekleri

Apache sunucularda yönlendirmeler genellikle .htaccess dosyası üzerinden yapılır. Kuralları eklemeden önce dosyanın yedeğini almak önemlidir. Hatalı bir kural site genelinde 500 hatasına neden olabilir.

Eski Klasörü Yeni Klasöre Taşıma

RewriteEngine On
RewriteRule ^old-folder/(.*)$ /new-folder/$1 [R=301,L]

Bu kural şu şekilde çalışır:

/old-folder/page-1 → /new-folder/page-1
/old-folder/urun/test → /new-folder/urun/test

Blog, kategori, ürün ya da rehber klasörü değişikliklerinde bu yapı kullanılabilir.

Blog URL’lerinden Yıl Bilgisini Kaldırma

RewriteEngine On
RewriteRule ^blog/[0-9]{4}/([^/]+)/?$ /blog/$1/ [R=301,L]

Bu kural:

/blog/2024/teknik-seo

adresini:

/blog/teknik-seo/

adresine yönlendirir. Tarihli blog URL’lerinden daha sade ve evergreen URL yapısına geçmek isteyen siteler için uygundur.

.html Uzantısını Kaldırma

RewriteEngine On
RewriteRule ^(.+)\.html$ /$1 [R=301,L]

Bu kural şu dönüşümü yapar:

/hakkimizda.html → /hakkimizda
/blog/seo.html → /blog/seo

Buradaki \. önemlidir. Çünkü Regex’te nokta özel bir karakterdir. Gerçek nokta karakterini yakalamak için \. şeklinde yazılır.

Kategori Dizinini Kaldırma

RewriteEngine On
RewriteRule ^category/(.*)$ /$1 [R=301,L]

Örnek:

/category/elbise → /elbise
/category/blog/seo → /blog/seo

Bu yöntem WordPress kategori tabanı kaldırma, e-ticaret kategori yapısı sadeleştirme veya eski CMS dizinlerini temizleme işlemlerinde kullanılabilir.

Sondaki Slash Eklemek

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\.[a-zA-Z0-9]{2,5}$
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.+)$ /$1/ [R=301,L]

Bu kural dosya olmayan ve uzantı içermeyen URL’lerin sonuna slash ekler:

/blog/seo → /blog/seo/
/kategori → /kategori/

Sitenizin canonical URL yapısı slash’lı mı, slash’sız mı önce buna karar verilmelidir. İki yapı aynı anda çalışırsa kopya URL ve yönlendirme karmaşası oluşabilir.

Alan Adı Değişikliği

RewriteEngine On

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

Bu kural eski alan adındaki tüm URL’leri aynı path yapısını koruyarak yeni domaine taşır:

https://olddomain.com/blog/seo

https://www.newdomain.com/blog/seo

Alan adı değişimlerinde sadece yönlendirme yapmak yeterli değildir. Aynı zamanda iç linkler, canonical etiketleri, sitemap dosyası ve Search Console ayarları da güncellenmelidir.

Nginx ile Regex 301 Yönlendirme Örnekleri

Nginx sunucularda yönlendirmeler genellikle sunucu yapılandırma dosyası içinde yapılır. Apache’deki .htaccess mantığından farklıdır.

Eski Alan Adını Yeni Alan Adına Taşıma

server {
listen 80;
server_name olddomain.com www.olddomain.com;

return 301 https://www.newdomain.com$request_uri;
}

Bu yapı, eski domain üzerindeki tüm URL’leri yeni domaine aynı path ile taşır.

/urun/keten-elbise

https://www.newdomain.com/urun/keten-elbise

Eski Klasörü Yeni Klasöre Taşıma

location ~ ^/old-folder/(.*)$ {
return 301 /new-folder/$1;
}

Örnek:

/old-folder/page → /new-folder/page

.html Uzantısını Kaldırma

rewrite ^/(.*)\.html$ /$1 permanent;

Örnek:

/sayfa.html → /sayfa

Nginx’te yanlış yapılandırmalar tüm siteyi etkileyebileceği için canlıya almadan önce mutlaka test edilmelidir.

WordPress’te Regex ile 301 Yönlendirme

WordPress sitelerde Regex yönlendirme için üç farklı yöntem kullanılabilir: .htaccess dosyası, sunucu yapılandırması veya SEO/redirect eklentileri.

Kod yazmak istemeyen kullanıcılar için Redirection, Rank Math veya SEOPress gibi eklentiler daha kolay bir çözüm sunar.

Redirection Eklentisi Örneği

Kaynak URL:

^/eski-kategori/(.*)

Hedef URL:

/yeni-kategori/$1

Sonuç:

/eski-kategori/urun-adi → /yeni-kategori/urun-adi

Bu işlem yapılırken eklenti içinde Regex seçeneğinin aktif olduğundan emin olunmalıdır.

Rank Math Regex Redirect Örneği

Kaynak:

^/blog/([0-9]{4})/(.*)

Hedef:

/blog/$2

Sonuç:

/blog/2024/teknik-seo → /blog/teknik-seo

Burada $2, ikinci yakalama grubunu temsil eder. İlk grup yıl bilgisidir, ikinci grup ise yazı slug’ıdır.

En Sık Kullanılan Regex 301 Senaryoları

Aşağıdaki tablo, en çok kullanılan toplu yönlendirme örneklerini özetler.

SenaryoKaynak RegexHedef
Klasör taşıma^old-folder/(.*)$/new-folder/$1
Blog yılını kaldırma^blog/[0-9]{4}/([^/]+)/?$/blog/$1/
.html kaldırma^(.+)\.html$/$1
Kategori tabanı kaldırma^category/(.*)$/$1
Ürün dizini değiştirme^product/(.*)$/urun/$1
Dil klasörü kaldırma^tr/(.*)$/$1
Slash ekleme^(.+)$/$1/
Tek seviyeli slug taşıma^eski-blog/([^/]+)/?$/blog/$1/

Bu kurallar doğrudan kopyalanmadan önce sitenin URL yapısına göre uyarlanmalıdır. Çünkü her CMS, her sunucu ve her permalink yapısı farklı çalışabilir.

Regex ile 301 Yönlendirme Yaparken SEO Kuralları

Regex ile 301 yönlendirme, teknik SEO açısından güçlü bir yöntemdir. Ancak yönlendirme kurallarının genişliği, hedef URL seçimi ve test süreci doğru planlanmazsa SEO performansını olumsuz etkileyebilir.

Kalıcı Değişikliklerde 301 Kullanın

URL değişikliği kalıcıysa 301 yönlendirme kullanılmalıdır. 302 geçici yönlendirmedir. Site taşıma, kategori değişimi, URL sadeleştirme ve alan adı geçişlerinde 301 daha doğru tercihtir.

Eski URL’yi En Alakalı Yeni URL’ye Gönderin

Yanlış kullanım:

/eski-blog/teknik-seo → /

Doğru kullanım:

/eski-blog/teknik-seo → /blog/teknik-seo/

Tüm eski sayfaları ana sayfaya yönlendirmek SEO açısından sağlıklı değildir. Bu durum kullanıcı deneyimini bozar ve arama motorları tarafından alakasız yönlendirme gibi algılanabilir.

Redirect Chain Oluşturmayın

Yanlış yapı:

/eski-url → /orta-url → /yeni-url

Doğru yapı:

/eski-url → /yeni-url

Yönlendirme zincirleri sayfa açılışını yavaşlatır, tarama verimliliğini düşürür ve teknik SEO sorunlarına neden olabilir.

Redirect Loop’a Dikkat Edin

Redirect loop, bir URL’nin sürekli başka bir URL’ye, ardından tekrar ilk URL’ye yönlenmesi durumudur.

/sayfa → /sayfa/
→ /sayfa
→ /sayfa/

Bu genellikle slash ekleme/kaldırma kurallarının yanlış yazılmasından kaynaklanır. Tarayıcıda “too many redirects” hatası oluşur.

Regex Kurallarını Fazla Geniş Yazmayın

Riskli desen:

^(.*)$

Daha güvenli kullanım:

^eski-blog/([^/]+)/?$

Regex ne kadar dar ve net yazılırsa hata riski o kadar azalır.

Query String Davranışını Kontrol Edin

Eski URL şu şekilde olabilir:

/urun.php?id=123

Yeni yapı şöyle olabilir:

/urun/123

Apache örneği:

RewriteEngine On

RewriteCond %{QUERY_STRING} ^id=([0-9]+)$
RewriteRule ^urun\.php$ /urun/%1? [R=301,L]

Burada %1, query string içindeki ID değerini yakalar. En sondaki ?, eski parametrenin yeni URL’ye taşınmasını engeller.

Görsel, CSS ve JS Dosyalarını Yanlışlıkla Yönlendirmeyin

Çok genel yazılan kurallar şu dosyaları bozabilir:

.css
.js
.jpg
.png
.webp
.svg
.pdf
.xml

Bu nedenle slash ekleme, uzantı kaldırma veya genel yönlendirme kuralları yazılırken statik dosyalar hariç tutulmalıdır.

Canlıya Almadan Önce Test Listesi

Regex yönlendirme mutlaka test edilmelidir. Küçük bir hata binlerce URL’yi etkileyebilir.

KontrolNeden Önemli?
Regex test aracıyla kontrolDesenin doğru URL’leri yakalayıp yakalamadığını görürsünüz
10-20 örnek URL testiGerçek senaryoda kuralı doğrularsınız
Staging ortamında denemeCanlı siteyi riske atmadan test edersiniz
Crawl testi301, 404, 500, loop ve chain hatalarını bulursunuz
Query string testiParametrelerin doğru taşındığını kontrol edersiniz
Canonical kontrolüYeni URL’nin kendisini canonical gösterdiğinden emin olursunuz
Sitemap güncellemesiArama motorlarına yeni URL yapısını bildirirsiniz
Search Console takibiTarama ve dizinleme sorunlarını izlersiniz

Regex 301 Yönlendirmede En Yaygın Hatalar

Regex yönlendirmede yapılan hatalar genellikle küçük görünür; ancak etkisi site geneline yayılabilir. Bu nedenle özellikle toplu yönlendirme kuralları yayınlanmadan önce aşağıdaki hatalara dikkat edilmelidir.

Tüm Eski URL’leri Ana Sayfaya Yönlendirmek

Bu en sık yapılan hatalardan biridir. Eski sayfanın yeni sitede alakalı bir karşılığı varsa oraya yönlendirilmelidir. Karşılığı yoksa en yakın kategoriye yönlendirmek düşünülebilir. Hiçbir alakalı sayfa yoksa 404 veya 410 daha doğru olabilir.

Yeni URL’nin de Aynı Kurala Yakalanması

Eski klasörü yeni klasöre taşırken yeni URL de aynı Regex desenine takılıyorsa sonsuz yönlendirme oluşabilir. Bu yüzden kaynak desen mümkün olduğunca net yazılmalıdır.

Dahili Linkleri Güncellememek

301 yönlendirme kurmak tek başına yeterli değildir. Site içindeki linkler hâlâ eski URL’lere gidiyorsa kullanıcı ve bot gereksiz yere yönlendirmeye maruz kalır.

Doğru yapı şöyle olmalıdır:

Eski URL → 301 → Yeni URL
Dahili linkler → Yeni URL
Canonical → Yeni URL
Sitemap → Yeni URL

Yönlendirme Kurallarını Yanlış Sıraya Koymak

Genel kurallar üstte, özel kurallar altta olursa özel URL’ler daha genel kurala yakalanabilir. Bu yüzden genellikle önce spesifik kurallar, sonra genel kurallar yazılmalıdır.

Önerilen sıra:

1. Kritik tekil URL yönlendirmeleri
2. Klasör/kategori yönlendirmeleri
3. Uzantı kaldırma kuralları
4. Slash normalizasyonu
5. Domain / www / HTTPS kuralları
6. En genel catch-all kurallar

Örnek Site Taşıma Planı

Regex ile 301 yönlendirme yapılacaksa süreç planlı ilerlemelidir.

AşamaYapılacak İşlem
1Eski URL listesini çıkarın
2URL’leri blog, kategori, ürün, etiket, medya gibi gruplara ayırın
3Regex ile çözülebilecek URL kalıplarını belirleyin
4Kritik sayfalar için birebir yönlendirme planı hazırlayın
5Kuralları test ortamında deneyin
6Canlıya aldıktan sonra crawl yapın
7404, 500, chain ve loop hatalarını düzeltin
8Sitemap ve canonical yapılarını güncelleyin
9Search Console üzerinden süreci takip edin
10Yönlendirmeleri uzun süre aktif tutun

301 Yönlendirme ve Regex Hakkında Sık Sorulan Sorular

Regex ile 301 yönlendirme nedir?

Regex ile 301 yönlendirme, belirli bir URL kalıbına uyan birden fazla adresi tek bir kuralla kalıcı olarak yeni URL yapısına taşıma işlemidir. Özellikle yüzlerce veya binlerce URL’nin aynı mantıkla yönlendirilmesi gereken site taşıma, CMS değişikliği ve URL sadeleştirme süreçlerinde kullanılır.

301 yönlendirmelerinde Regex ne zaman kullanılmalı?

Regex, URL’ler ortak bir yapıya sahipse kullanılmalıdır. Örneğin eski bir klasörün yeni klasöre taşınması, .html uzantılarının kaldırılması, blog URL’lerinden yıl bilgisinin çıkarılması veya kategori dizinlerinin sadeleştirilmesi gibi durumlarda Regex yönlendirme oldukça kullanışlıdır.

301 yönlendirme SEO’ya zarar verir mi?

Doğru yapılandırılmış 301 yönlendirme SEO’ya zarar vermez; aksine eski URL’lerin değerini yeni URL’lere aktarmaya yardımcı olur. Ancak eski sayfaları alakasız hedeflere yönlendirmek, tüm URL’leri ana sayfaya göndermek, yönlendirme zinciri veya yönlendirme döngüsü oluşturmak SEO performansını olumsuz etkileyebilir.

301 mi 302 mi kullanılmalı?

URL değişikliği kalıcıysa 301 yönlendirme kullanılmalıdır. 302 yönlendirme geçici durumlar için uygundur. Site taşıma, alan adı değişikliği, kategori yapısı güncelleme veya kalıcı URL değişikliklerinde 301 yönlendirme daha doğru bir teknik SEO tercihidir.

Regex yönlendirme canlıya alınmadan önce nasıl test edilmeli?

Regex yönlendirme canlıya alınmadan önce mutlaka test edilmelidir. Önce Regex test aracıyla desen kontrol edilmeli, ardından staging ortamında örnek URL’ler denenmelidir. Canlıya aldıktan sonra 301, 404, 500, redirect chain ve redirect loop kontrolleri yapılmalı; Search Console üzerinden tarama hataları takip edilmelidir.

İlgili Makaleler
Bir yanıt yazın

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

Başa dön tuşu