Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the rocket domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/simurorg/public_html/seo-blog/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the molongui-authorship domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/simurorg/public_html/seo-blog/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the ninja-forms domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/simurorg/public_html/seo-blog/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wpforms domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/simurorg/public_html/seo-blog/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wpforms-lite domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/simurorg/public_html/seo-blog/wp-includes/functions.php on line 6114
SEO Uyumlu URL | Simur Digital A.Ş.

SEO Uyumlu URL

seo uyumlu url nedir
İçindekiler

SEO Uyumlu URL Nasıl Yapılır?

SEO uyumlu URL yapısı;

siteadi.com/sayfa-adi şeklinde oluşan bir yapıdır. Yani arama motorlarına ve kullanıcılara sayfa içeriği ile ilgili olarak doğrudan url üzerinden bilgi veren yapıya SEO uyumlu url yapısı diyoruz.

Özellikle wordpress alt yapısını kullanan sitelerde çok rahat optimize edilmektedir. Fakat php altyapısına sahip sitelerde bu optimizasyon nasıl yapılır merak ediyorsanız çok doğru yerdesiniz.

Gelin hep birlikte SEO uyumlu URL nasıl yapılır inceleyelim.


Normal bir php dosyasında istediğimiz içeriği bildiğiniz gibi id ile alıp veritabanından bu ıd ye göre içerik çekeriz.

$id = $_GET[“id”];
$sorgu = mysql_query(“SELECT * FROM veriler Where id=’$id'”);
Bu yapımızda verdiğimiz linklerde eğer bir SEO optimizasyonu yapılmamışsa icerik.php?id=40 gibi bir url ile çalışacaktır.Fakat biz verilerimizi daha anlaşılır bir url ile çekmek istiyoruz.

Örnek vermek gerekirse siteurl.com/yeni-web-sayfamiz-yayinda

Yapmamız Gerekenler

Yazılarımızın başlıklarını özel karakterlerden arındırarak SEO uyumlu url formatına uygun bir hale getirmek
.htaccess dosyasında gerekli yönlendirmeleri yapmak
Linklerimizi SEO uyumlu bir hale getirmek
Öncelikle ilk adımımızı yani seo url ye dönüştürülecek fonksiyonumuzu yazıyoruz.Bunu sayfamızda çoğu yerde kullanacağımız için sitenizin heryerine çağrılan bir php dosyasına yazarsanız istediğiniz zaman kullanabilirsiniz. Örn (config.php veya header.php)

Gerekli SEO Fonksiyonumuz

Bu fonksiyon benim işimi çoğu zaman gördü;

function seo($s) {
$tr = array(‘ş’,’Ş’,’ı’,’I’,’İ’,’ğ’,’Ğ’,’ü’,’Ü’,’ö’,’Ö’,’Ç’,’ç’,'(‘,’)’,’/’,’:’,’,’);
$eng = array(‘s’,’s’,’i’,’i’,’i’,’g’,’g’,’u’,’u’,’o’,’o’,’c’,’c’,”,”,’-‘,’-‘,”);
$s = str_replace($tr,$eng,$s);
$s = strtolower($s);
$s = preg_replace(‘/&.+?;/’, ”, $s);
$s = preg_replace(‘/\s+/’, ‘-‘, $s);
$s = preg_replace(‘|-+|’, ‘-‘, $s);
$s = preg_replace(‘/#/’, ”, $s);
$s = str_replace(‘.’, ”, $s);
$s = trim($s, ‘-‘);
return $s;
}
Bu fonksiyon türkçe karakterleri normal karakterlere , özel karakterleride url formatında çevirmektedir örnek vermek gerekirse

$baslik = “İsteğe Bağlı Asil Listede Yer Alan Öğrencilerimiz için Dilekçe Duyurusu”;
echo seo($baslik);

// Çıktı : istege-bagli-asil-listede-yer-alan-ogrencilerimiz-icin-dilekce-duyurusu
İstediğimiz url yapısını oluşturmayı başardık , şimdi sıra geldi yönlendirmeleri yapmaya.
Php dosyamızda içeriği yine id ile çağıracağız tek yapmamız gereken tek şey htaccessde doğru yönlendirme yapmak.

Htaccess Yönlendirmesi

.htacces dosyamızı açıyoruz yok ise yeni bir .htaccess oluşturuyoruz php dosyalarının olduğu dizine ekliyoruz.
Dosyamızın içine girdikten sonra

# Yönlendirmeleri aktif eder
RewriteEngine on

# Yeni bir yönlendirme kuralı ekliyoruz
RewriteRule ^([0-9a-zA-Z-_]+)/([0-9]+)$ posts.php?sef=$1&id=$2 [L,QSA]

Açıklamalar

posts.php = içerikleri id ye göre aldığımız php dosyamız
sef = seo uyumlu url link yapımızın geldiği ara değişken
id = posts.php de veri çektiğimiz id parametresi

([0-9a-zA-Z-_]+) = seo linkimiz bu kısma yerleşecek a-z arası 0-9 arası ve – karakterleri (sef)
([0-9]+) = post.php de kullandığımız id değeri buraya gelicek

[L] = url uyuştuğu an keser bunun anlamı şu örneğin siteurl.com/merhaba burada merhaba bizim url miz fakat [L] koymaz isek merhabaads gibi bir url yide aynı sayfaya yönlendirecek bazen hatalar olabilir o yüzden [L ] koyuoruz uyuştuğu an kesiyor devam ettirmiyor

[QSA] = Bu GET ile gösterilen verilerin aktif olmasını sağlar yani örnekte sef=$1&id=$2
Bazı configlerde koymaya gerek yokken bazı web server configlerinde koymayı gerektir biz öncelik olarak ekleyelim

Linkleri Yeniden Oluşturalım

Örnek olarak anasayfaya bir duyuru listesi çekeceksiniz mysql_query ve fetch kullanarak bir diziye aktardınız
Dizi adımız $veri olsun

Örnek link yapımız

<a href=”<?=seo($veri[“yazi_baslik”]).’/’.$veri[“yazi_id”]?>”> <?=$veri[“yazi_baslik”]?> </a>

// Örnek Çıktısı yazi-basligi/1
// Örnek Çıktısı yazi-basligi/1
Örnek Bir Yazı başlığı ve çevrilmiş url yapısı :

href=”https://www.atalaysidar.com/seo-uyumlu-url”

Diğer Htaccess Ayarları

.html ile biten url ler: rewriterule mizde sol kısımdaki $ dan önce .html koymamız yeterli

Kategoriye göre getirmek : rewriteruleye bir parametre daha vermelisiniz ,

RewriteRule ^([0-9a-zA-Z-_]+)/([0-9a-zA-Z-_]+)/([0-9]+)$ posts.php?kat=$1&sef=$2&id=$3 [L,QSA]

Farklı tablolardan farklı veriler için;

Örneğin:
haberler tablosundan , haberler/haber1/1
fotogaleri tablosundan , fotogaleri/fotohaber1/1

RewriteRule ^haberler/([0-9a-zA-Z-_]+)/([0-9]+)$ haber.php?sef=$1&id=$2 [L,QSA]
RewriteRule ^galeriler/([0-9a-zA-Z-_]+)/([0-9]+)$ galeri.php?sef=$1&id=$2 [L,QSA]

Olası Bozukluk ve Hatalar

En önemli sorunlardan biri sitenizin statik dosyalarının yönlendirmeden etkilenmesi (css,js,img gibi dosyalar)

1.Çözüm : Sitenizin head tagları arasına base href ekleyin

<base href=”siteurl.com/” />
2.Çözüm : Htaccess yapılandırması Rewrite kuralızdan hemen önce bu kodu ekleyin

RewriteCond %{REQUEST_FILENAME} !-f
3.Çözüm : Htaccess şartlandırması belirli klasörlere dokunulmasın

RewriteCond $1 !^(css|js|images|inc|lang)
Birden fazla rewriteruleniz varsa bazen çakışma yaşanabilir bunun için katmanlı bir yapı kullanabilirsiniz
Örneğin :

sayfalar/iletisim-sayfasi/2
yazilar/gunun-yazisi/2

Tamamen SEO uyumlu bir web site için SEO uyumlu url yapısı oldukça önemlidir. Bu site içi SEO kriterlerini değerlendirdiğimizde oldukça kritik bir durumdur.

 

Bir yanıt yazın

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

SEO Teklifi Alın
Size özel hazırlayacağımız SEO çözümleri ile sektörünüzde rakiplerinizi geride bırakın, işletmenizi başka bir seviyeye taşıyın.