Merhaba arkadaşlar bunu google indexlemesi sorunu anlatan bi arkadaşımızın yazısı üzerine yazmak istedim.
İstisnasız bütün arkadaşların (Seo kasan Php coderlerin) Scriptlerinde bu hatayı gördüm.. bunu düzeltmenin yolunu ve önemini anlatmak istiyorum.
Öncelikle alışılagelmiş rewrite url tekniğini anlatıyorum. Gerçek Sayfamız /kategori.php?id=1
Anahtarları Azaltmak için Rewrite hali. /kategori_adi_1.html
Bunu Açabilmek için yazdığımız Rewrite url kuralı RewriteEngine On
RewriteRule ^(.*)_([0-9]+).html$ kategori.php?id=$1 [L,NC]
Aynı sayfaya ulaşmak için yazabileceğimiz adresler /kategori_adi_1.html
/Ne_yazarsan_yaz_1.html
/Bu_nasıl_seo_bu_ne_kopuk_kodlama_tarzi_1.html
n'oldu ? Google tabiriyle 200(aktif sayfa) Başlığı atılmış 404 (Bulunamadı) Sayfalar... kimi kandırıyoruz biz?
Peki Bu Ne kadar Önemli ? Öncelikle bunun google arama motorundaki önemini anlatayım.
1 den fazla Adres aynı Sayfaya gidiyorsa bunlar Kesinlikle Aynı Title. ve Aynı Description hatta yanı keywords ve aynı içeriğe sahip olacaktır.
Bunlar da google için kesinlikle eksi puan olarak değerlendirilir. hatta google webmaster araçlarında bu size uyarı olarak belirtilir. 404(Bulunamadı) Sayfalarınıza 200(aktif sayfa) Başlığı atılmış..!
Birde bunun arama sonuçları dışında itibar ve adsense için önemi var.
Yukarda da belirttiğim gibi
Aynı sayfaya ulaşmak için yazabileceğimiz adresler birden fazla hatta SONSUZ... /kategori_adi_1.html
/Ne_yazarsan_yaz_1.html
/Bu_nasıl_seo_bu_ne_kopuk_kodlama_tarzi_1.html
Bir de Şunu Düşünün.. /Ahlaksiz_kelimeler_kategorisi_var_mi_ki_1.html
bunun indexlendiğini düşünün.. boyle bir indexiniz varsa ***** bir kategoriniz varsa? google için ne kadar değerlisinz?.. ya da arama motorunu bilemicem de peki ya
Adsense ? bu durumda kesinlikle banlanacaksınız.
Bunu nasıl aşarım ? .htaccess dosyasındaki kurallamanın önemini belirteyim Bunu Açabilmek için yazdığımız Rewrite url kuralı RewriteEngine On
RewriteRule ^(.*)_([0-9]+).html$ kategori.php?id=$1 [L,NC]
Yukardeki örnek gibi. eğer bir ID rakam olarka giriliyorsa bu kesinlikle
([0-9]+) şeklinde girilmeli (.*) kullanımı
çok yanlış.
yok eğer kategori Rakam değil isim ile çağrılıyorsa ya da onu rakam yaptık bitti mi ? Şimdi sıra geldi Php scriptimizde de bunu kontrol ettirmeye (diğer diller için de bilen arakdaşlar yazarsa çok iyi olur. asp .net vs..)
Öncelikle Bulunulan sayfayı kontrol ettirmeliyiz..
<?
// Kategori Sayfası Farzedelim.
$oldugumuz_sayfa=$_SERVER['SCRTIP_NAME']; // bu bize " /kategori_adi_1.html olarak dönecektir.
//olmamız gereken sayfayı buluyoruz.
$id=$_GET['id'];
// Bu Kısımda İd ile Kategori adını çekiyoruz varsayalım mysql_query cart curt. girmek istremiorm. ben direk değişkene yazıorm \\
$kategoriadi="haberlerimiz";
//işte olunması gereken sayfa..
$olmamiz_gereken_sayfa="/".$kategoriadi."_".$id.".html";
//Eşit oLup olmadığını kontrol ediyoruz.
if ($oldugumuz_sayfa!=$olmamiz_gereken_sayfa) {
herader("location:".$kategoriadi."_".$id.".html");
}
?>Adremizi Doğruysa aynen devam eder..
sadece ID doğruysa o idin gerçek adresine yonlenir.. ikisi de yanlışsa kesinlikle NOT Found 404 sayfası goruntulenir.
ama yok değilse bunu direk doğru adrese yonlendirir.. ve bu birsuru beladan kurtarıcaktır sizi emin olun.
Hepinize Kolay geLsin