Yönlendirmeler İçin Teknik SEO Rehberi

Yönlendirmeler İçin Teknik SEO Rehberi

SEO Yönlendirme Rehberi

Web sitelerimizde ya da müşterilerimizin web sitelerinde silinen, değişen veya kaldırılan sayfalar sürekli olarak bulunur. Bu sayfalar nedeniyle sıralama kaybetmek ya da daha değerli sayfaların arka planda kalması gibi durumlar ortaya çıkabilir. Bu nedenle bu sayfaları optimize etmek yani daha doğru bir tabirle yönlendirmek gerekebilir.

Yönlendirmeler farklı durum kodlarına sahiptir. Ancak yukarıdaki gibi bir durumla karşılaşırsak genel olarak 3XX durum koduna sahip yönlendirmeleri kullanırız.

Bu SEO rehberi nitelikli yazımızda, SEO ile alakalı 3XX yönlendirmeleri konusunu ele alacağız.

301: Kalıcı Olarak Yönlendirildi

Web sitesi ve SEO ile ilgilenen hemen herkes tarafından bilinen 301 yönlendirmesi, bir kaynağın başka bir kaynağı kalıcı olarak yönlendirilmesini sağlar. Arama motorları da bu yönlendirmeyi tespit ettiğinde belirli bir süre sonra eski URL’i ile yenisine kalıcı olarak yönlendirir.

301 yönlendirmesini kullanmadan önce dikkatli olmanızda fayda var. Çünkü daha sonra ihtiyaç duyar, eski URL’i kullanmaya ve 301 yönlendirmesini kaldırmaya karar verirseniz, eski URL’nizin artık sıralanamayabilir.

Değişiklik yapmadan önce, 301 yönlendirmesini kullanmaya karar verirken dikkatli olmanız gerekir. Bunun nedeni fikrinizi daha sonra değiştirir ve 301 yönlendirmesini kaldırmaya karar verirseniz, eski URL’nizin artık sıralanamayabileceğidir. Yönlendirmeleri iptal edip eski haline getirseniz bile, eski sayfanın eski sıralama konumuna geri dönmesi zordur. Hatırlanması gereken en önemli şey, 301 yönlendirmesini geri almanın bir yolu olmadığıdır.

307: Geçici Yönlendirme

307 yönlendirmesi bir tür tarayıcı yönlendirmesidir. Yönlendirme sunucuda değil, tarayıcı üzerinde gerçekleşir.

302: Geçici Yönlendirme

Bir URL’in farklı bir URL’e geçici olarak yönlendirilmesini ifade eder. Genel olarak 301 yönlendirmesi kullanmadığımız durumlarda 302 yönlendirmesi kullanır ve bu şekilde önlem alırız.

302 – 307 Yönlendirmeleri Arasındaki Fark

302 durum kodunun aksine, 307 durum kodu, istek yönteminin değiştirilmeyeceğini garanti eder. Örneğin, GET isteği GET ve POST – POST işlemlerine devam etmelidir.

Geçici yönlendirmeler için 302 veya 307’yi kullanabilirsiniz. Ancak 307’yi tercih ederim.

Rutin yönlendirme görevleri için, web sitenizde ne tür bir değişiklik yaptığınıza bağlı olarak 301 (kalıcı yönlendirme) ve 307 (geçici olarak yönlendirme) durum kodları kullanılmalıdır.

Yeniden yönlendirmeyi Apache’deki sunucu yapılandırma dosyaları .htaccess, Nginx’teki example.conf dosyası veya WordPress kullanıyorsanız eklentiler aracılığıyla işleyebilirsiniz.

Her durumda, yönlendirme kuralları yazmak için aynı söz dizimine sahiptir. Yalnızca yapılandırma dosyalarında kullanılan komutlarla farklılık gösterirler. 

Örneğin, Apache‘deki yönlendirme şu şekilde görünecektir:

Options +FollowSymlinks
RewriteEngine on
RedirectMatch 301 ^/oldfolder/ /newfolder/

Nginx sunucularında şöyle görünecektir:

rewrite ^/oldfolder/ /newfolder/ permanent;

Sunuculara yönlendirme durum kodunu ve eylem komutunu söylemek için kullanılan komutlar farklıdır. Örneğin:

  • Sunucuların yönlendirme durum kodu: “301” ve “kalıcı
  • Eylem komutu: “RedirectMatch” ve “rewrite”.

Ancak yönlendirmenin sözdizimi (^ / oldfolder / / newfolder /) her ikisi için de aynıdır.

Apache’de, sunucunuzda mod_rewrite ve mod_alias modüllerinin (yönlendirmeleri işlemekten sorumlu olan) etkinleştirildiğinden emin olmalısınız.

En yaygın sunucu türleri Apache olduğundan, .htaccess dosyalarına örnekler verilmiştir. .Htaccess dosyasının şu iki satıra sahip olduğundan emin olun:

Options +FollowSymlinks
RewriteEngine on

yönlendirme kurallarının ayarlarını değiştirin.

Aşağıdaki örnekleri anlamak için RegExp temelleri ile ilgili olarak aşağıdaki tabloya bakabilirsiniz.

*zero or more times
+One or more times
.any single character
?Zero or one time
^Start of the string
$End of the string
a|bOR operadn “|” a or b
(z)remembers the match to be used when calling $1

Tek Bir URL’yi Yönlendirme

Örneğin bir sayfanın URL’ini değiştirdik ve yönlendirme yapmak istiyoruz. /eski-url – /yeni-url olarak değişiklik gerçekleştirdik. Bunun yönlendirme kuralı şu şekildedir;

1. yöntem

RewriteRule ^old-page(/?|/.)$ /new-page/ [R=301,L] 

2. yöntem

RedirectMatch 301 ^/old-page(/?|/.)$ /new-page/

İki yöntem arasındaki tek fark, birincisinin Apache mod_rewrite modülünü, ikincisinin mod_alias’ı kullanmasıdır. Her iki yöntem kullanılarak da yönlendirme işlemi yapılabilir.

Düzenli ifade “^”, URL’nin “/eski-sayfa” ile başlaması gerektiği anlamına gelirken (/?|/.*)$, “/” eğik çizgi veya tam eşleşme olmadan “/eski-sayfa/” ifadesini “/yeni-sayfa/” olarak her şeyin yeniden yönlendirilmesi gerektiğini gösterir.

Aşağıdaki URL’ler eşleşecek ve yeni bir sayfaya yönlendirilecektir:

/eski-sayfa//yeni-sayfa/
/eski-sayfa/yeni-sayfa/
/eski-sayfa/?utm_source=facebook.com/yeni-sayfa/?utm_source=facebook.com
/eski-sayfa/alt-sayfa//yeni-sayfa/

Sayfa URL’sindeki herhangi bir varyasyonu yenisine yönlendirecektir. Yönlendirmeyi aşağıdaki biçimde kullanırsak:

Redirect 301 /eski-sayfa/ /yeni-sayfa/

Normal ifadeler olmadan UTM sorgu dizesi olan tüm URL’ler ( ör. /eski-sayfa?utm_source=facebook.com (URL’ler sosyal ağ üzerinden paylaşılmak için kullanıldığı için yaygındır) 404s olur). Sonunda “/” olmadan da /eski sayfa bile 404 olur.

Hariç Tutulanların Tümünü Yönlendir

Diyelim ki şöyle bir yapımız var;

/category/old-subcategory-1/, /category/old-subcategory-2/, /category/final-subcategory/ gibi tüm URL’ler /category/final-subcategory/ ile birleştirmek istiyoruz. Burada farklı bir kurala ihtiyacımız var.

RewriteCond %{REQUEST_URI} !/category/final-subcategory/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(category/). /category/final-subcategory/ [R=301,L]

Burada üçüncü satırdaki /category/ altındaki tüm yönlendirmeleri yapmak istiyoruz. İkinci satırda ayrıca resimler, CSS veya javascript dosyaları gibi dosyaları yok saymak anlamına gelen “! -f” kuralımız var.

Aksi takdirde, “/category/image.jpg” gibi bazı dosyalarımız varsa “/final-subcategory/” dizinine de yönlendirilir ve bir görüntü hatasına neden olur.

Dizin Değişikliği

Bir dosya yolunu yeniden yapılandırdınız ve eski dizinin altındaki her şeyi yeni dosya yoluna taşımak istiyorsanız. Bu durumda aşağıdaki kuralı kullanabilirsiniz.

RewriteRule ^old-directory$ /new-directory/ [R=301,NC,L]
RewriteRule ^old-directory/(.*)$ /new-directory/$1 [R=301,NC,L]

Sonuç olarak, bu yapı /old-directory/ dizinini /new-directory/subdirectory/ dizinine yönlendirecektir.

İki kural kullandım: bir ucunda eğik çizgi ve diğerinde izleyen eğik çizgi.

Canonical

SEO’nun en önemli noktalarından biri kaliteli ve sade URL’e yani kalıcı bağlantıya sahip olmaktır. Olası kural dışı URL’ler sorun teşkil edebilir.

Web sitenizi “www” sürümüyle çalıştırmak istiyorsanız, bu kuralı kullanın:

RewriteCond %{HTTP_HOST} ^yourwebsite\.com [NC]
RewriteRule ^(.*)$ http://www.siteadresi.com/$1 [L,R=301]

Non www versiyon için bu kuralı kullanabilirsiniz;

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

Sonunda eğik çizgi olan veya olmayan eğik çizgiler içeren URL’ler de farklı şekilde işlendiğinden, sondaki eğik çizgi de kanonikleştirmenin bir parçasıdır. Bunun için aşağıdaki kuralı kullanabilirsiniz;

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*[^/])$ /$1/ [L,R=301]

HTTP’den HTTPS Yönlendirmesi

Google’ın web sitesi sahiplerini SSL kullanmaya teşvik etme girişiminden sonra HTTPS’ye geçiş , hemen hemen her web sitesinin sahip olduğu yaygın olarak kullanılan yönlendirmelerden biridir. Bu yönlendirmenin birçok farklı versiyonu vardır. Ancak .htaccess veya diğer komut dosyalarıyla bunu basit bir şekilde çözebilirsiniz.

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

Temel olarak, www veya www olan olmayan sürüm yönlendirmesini tek bir HTTPS yönlendirme kuralında birleştirebilirsiniz.

Eski Alan Adını Yeni Alan Adına Yönlendirme

Oldukça ekstrem bir durum olsa bazen marka ve kurumsal kimlik değişikliği ile birlikte web site adresimiz de değişir. Bu gibi durumlarda eski web sitemizi kaybetmek istemeyiz. Eski alan adını yeni alan adına yönlenmek için aşağıdaki kuralı uygulayabiliriz.

RewriteCond %{HTTP_HOST} ^eskiadres.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.eskiadres.com$
RewriteRule (.*)$ http://www.yeniadres.com/$1 [R=301,L]

WordPress sitelerde bu durumu .htaccess yerine bir eklenti yardımıyla çözebilirsiniz. WordPress’te yönlendirme için en çok kullanılan ve ücretsiz olan Redirection adlı eklentiyi linkten bulabilirsiniz.

Sonuç

Kalıcı bir yönlendirme yaptığınızda, yönlendirme kaldırılarak kolayca geri döndürülemez. Bunun nedeni, Google böyle bir yönlendirmeyi algıladıktan sonra, belirli bir süre geçer ve Google eski URL’leri yenisiyle değiştirir.

Onbinlerce sayfalık büyük bir web sitesini eski bir alandan yenisine veya HTTP’den HTTPS’ye geçiriyorsanız, önce 302’yi geçici olarak yeniden yönlendirmeniz ve tüm yönlendirme kurallarının düzgün çalıştığından ve Google’a baktığınızdan emin olmalısınız.

Ayrıca zincirleme yönlendirmelerden de kaçınmalısınız.

Onur Eroğlu

SEO Uzmanı, Python öğrenicisi, İktisatçı ve kendini gelişmeye adamış bir birey.

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.