Bu yazımızda PHP programlama dilini kullanarak SEO uyumlu bir sistemi nasıl kodlayacaksınız konusundan bahsedeceğiz. Bunu örnekleyerek inceleyeceğiz.
Php ile SEO İlişkisi Kurma
PHP ile SEO uyumlu bir websitesini kodlarken temel 3 başlıktan bahsedeceğiz.
- Arama motoru dostu URL adresleri (SEF URL)
- Her sayfaya özgü meta tanımlama
- Site haritası oluşturma
Arama Motoru Dostu URL Adresleri (SEF URL)
Bu betikte yazılar ve sayfalar için farklı URL adresleri oluşturmanız önemlidir.
Yazı URL adresi: www.seoteknikleri.com/yazi.html
Sayfa URL adresi : www.seoteknikleri.com/sayfa(
Bu örnek farklı şekillerde de geliştirilebilir. Örneğin içeriklerinizi bir dizinde sayfalarınızı farklı bir dizinde tutabilirsiniz.
Yazı URL adresi: www.seoteknikleri.com/icerik/yazi.html
Sayfa URL adresi : www.seoteknikleri.com/sayfa/sayfaadi/
PHP ile bu adresleri üretirken dikkat edeceğiniz bir başka konuda sayfa URL adreslerinin ismi genel tanımlar içermemelidir. yazi1.html yazi2.html gibi adresler yerine yazının başlık kısmını alıp URL üretmeniz en doğrusu olacaktır. seo-nedir.html gibi.
Yazı adreslerinin sonunda .html uzantısının olması sitenin ftp dosyalarında bu dosyaların üretildiği anlamına gelmez. Bunu betiği üreten kısım PHP.
Her Sayfaya Özgü Meta Tanımlama
Bu betik için her yazı ya da sayfa için veritabanına title, description, keywords meta etiketlerini yazdırmanız gerekir. Arama motoru botları sitenizde kaynak kodları tararken sıralama faktörlerinde bu 3 etiketi önem derecelerine göre kullanır.
Sitenin arkaplanında PHP ile her sayfa ve yazı için 3 meta tanımlamanız gerekiyor. Bu temalar site yöneticisi tarafından her sayfa için özel yazılmalıdır. Meta description tanımlarken “Eğer boş ise ilk 150 karakteri (boşluksuz) bu alana yazdır” gibi bir fonksiyon kullanmanız sizin için yararlı olacaktır.
Site Haritası Oluşturma
Site haritası arama motoru botlarının sayfalarınıza daha hızlı ulaşmasını sağlar. Site yöneticisi araçları bölümünde eklenen bir siteharitasi.xml dosyası otomatik olarak belirli periyotlarla güncellenir. dolayısıyla bu betiği yazarken site içeriği arttıkça ya da azaldıkça güncellenen bir site haritası nasıl oluşturacaksınız ile ilgili detaylara da dikkat ettik.
Adreslerin çalışma mantığı Php SEO Veritabanı
$tr = array(‘ş’,’Ş’,’ı’,’İ’,’ğ’,’Ğ’,’ü’,’Ü’,’ö’,’Ö’,’Ç’,’ç’);
$eng = array(‘s’,’s’,’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(‘/[^%a-z0-9 _-]/’, ”, $s);
$s = preg_replace(‘/\s+/’, ‘-’, $s);
$s = preg_replace(‘|-+|’, ‘-’, $s);
$s = trim($s, ‘-’);
return $s;
}[/php]
Veritabanına adresi girdikten sonra sitenin .htaccess dosyasını ayarlamak kalıyor.
Daha önce yukarda bahsettiğimiz www.seoteknikleri.com/yazi-adi.html şeklinde URL üretmenizi sağlayacak bu adım.
www.seoteknikleri.com/yazi-adi.html şeklindeki adresi
http://www.siteniz.com/yazi.php?yazi=yazi-adi şeklindeki adrese yönlendirmemizi sağlıyor.
Bunun için .htaccess dosyasını şu şekilde düzenliyoruz
RewriteEngine On
RewriteRule ^anasayfa/ index.php [L] ReWriteRule ^(.*).html yazi.php?yazi=$1 [L,NC] ReWriteRule ^sayfa/(.*)/ sayfa.php?sayfa=$1 [L,NC] ReWriteRule ^sitemap.xml sitemap.php
Metaların Çalışma Mantığı
Yukarıdaki başlıkta vermiş olduğum veritabanı tablosuna bakarsanız her yazıyı girerken ayrıca açıklama (description) ve anahtar kelime (keywords) hanelerinin de girildiğini anlayabilirsiniz. Böylece bir yazı görüntülenirken sitenin meta description ve meta keywords etiketlerini bu alanlardan alabiliriz.
Otomatik güncellenen sitemap.xml mantığı
Arama motorlarının özellikle istediği site haritası dosyası (sitemap.xml) aslında betikte yok fakat oluşturmuş olduğum ve çalışır durumdaki sitemap.php dosyasını .htaccess dosyasındaki ayarla sitemap.xml olarak gösteriyoruz. Böylece hem Php’nin gücü ile direk veritabanından bilgileri alabiliyoruz, hem de bu dosyayı .xml dosyası şeklinde arama motorlarına tanıtabiliyoruz.
Bu konuda farklı örnekleri dosyaları ile beraber internette araştırarak da bulabilirsiniz.
View Comments (5)
cvp için öncelkle tşkler. 1. yöntemi şuan kullanıyorum. dediğiniz doğru şuan tüm veriler benzersiz olduğu için sorun yok ancak veri artınca risk artacak.
2. yol ile ilgili örnek makale yada paylaşımınız var mı?
Merhaba yakupzz,
Öncelikle güzel temennilerin nedeniyle teşekkür ederiz. Soruna gelecek olursak bunun aslında birkaç farklı yöntemi mevcut. Şu şekilde ki ;
1 - İd değeri göndermeyerek
İlgili sorgu ve isteklerde id değeri yerine sadece başlık gönderiminde bulunursun fakat bu sistemde ki içerikler arttıkça başını ağrıtabilir çünkü aynı başlıkta olabilme ihtimali olacaktır, bu kısmi bir çözümdür.
2 - Htaccess değer gizleme
Bu bölümde ise verileri gönderip sorgularını oluşturduğun alanlarda aslında başlık ve id değerini gönderir ilgili cevapları döndürürsün fakat htaccess de id değerini işlemezsin bu şekilde daha sağlamacı bir yol izlemiş olursun, htaccess de sadece başlık verisini kullanırsın.
keşke 2. yol için ufak bir örnek verseydiniz..
güzel anlatım olmuş tşkler. faydalı paylaşımlarınıza devam etmeniz dileğiyle.
bir sorum olacak ben örneklerinize bakarak deneler yaptım ancak id değerini adres satırında nasıl gizleye bilirim bu kısmı çözemedim.
http://sitedomain.com/kategori/baslik/id şeklinde oluyor hep id değerini gizlemek için php kısmında nasıl bir düzenleme yapmam gerekir örnek verirseniz evinirim
Sorunuzu uzman arkadaşımız cevaplayacaktır.