PHP ile Botlara (Arama motorlarına) özel içerik oluşturmak

Bir sitenin ziyaretçisi arama motoru yani bir bot olduğunda bota özel içerik oluşturmak isteyebilirsiniz. Bunları basit bir kaç satır kodla ayırt etmek mümkün. Arama motorlarına (botlara) özel içerik oluşturmak bazen SEO açısından gerekli olabilir. PHP ile Regular Expression kullanarak botlara özel içerik göstereceğiz.

Arama motorları sitenizi ziyaret ettiğinde kimliğini gizlemezler. Bu yüzden önce ziyaretçinin kimliğini tespit etmemiz gerek. PHP ile bunu yapmak oldukça basit. PHP otomatik olarak $_SERVER dizi değişkeninde ziyaretçinin her sayfaya özel kimlik, ip , istek yaptığı adresler v.b. gibi önemli bilgiler içerir. Bizim burada tek ilgileneceğimiz kimliği olduğu için sadece $_SERVER['HTTP_USER_AGENT'] değeri ziyaretçinin bot olup olmadığını anlamamız için yeterli.

Kodumuzda bunun için ziyaretçinin arama motoru / bot olup olmadığını anlamamıza yaracak ve 'true' ya da 'false' döndürecek basit bir fonksiyon yazacağız. Daha sonra bu fonksiyonu kullanarak içerik göstermeyi özelleştireceğiz. Fakat arama motorlarına sitenizin her sayfasını gerçeğinden çok farklı gösterirseniz sitenizin arama motorları gözündeki değeri düşecektir. İçeriği arama motorlarına farklı göstermenizdeki amaç botları yanıltmak değil içeriği botların daha rahat anlayabileceği, puan arttırıcı, görsel olarak farklı şekilde göstermek olmalı. Aksi taktirde sitenizin değerini arttırmaya çalışırken dibe vurdurabilirsiniz. PHP kodumuz :

<?php
function isBot()
{
    // arama motorların isimlerini string olarak tutuyoruz    
    $botAgents ="/google|hakia|msn|yahoo|altavista|crawler|findlinks|bing|Cuil|Excite|Go.com|HotBot|AllTheWeb|search.aol|Lycos|Alexa|ask|baidu|cuil|kosmix|sogou|yodao|yandex|infoseek|yebol|aol/i";
    // sunucu değişkenlerinden 'HTTP_USER_AGENT' ile 
    // istemcinin kimliğini alıyoruz.
    $agent  = $_SERVER['HTTP_USER_AGENT'];
    
    // Regular Expression kullanarak match ediyoruz
    if ( preg_match($botAgents,$agent))
        return true;
    else
        return  false;
}

if ( isBot() )
{
    // Bot olduğunda görüntülenecek içeriği buraya yazıyoruz.
}
else
{
    // Bot olmadığında (organik ise) görüntülenecek içeriği buraya yazıyoruz.
}
?>
Popüler arama motorların isimlerine buradan bakabilirsiniz.

Yararlandığım kaynak : Uzmanlar İçin PHP (by Mehmet Şamlı)
yazan Zülküf Küçüközer tarih   16th April 2010
primary key words  Bot | Özel içerik | Php | Arama motorları okunma  26792
secondary key words  Kimlik | Ziyaretçi
writing Kemal writing 13th July 2011
Faydalı makale ellerinize sağlık :)
writing Onur writing 30th September 2011
http://prntscr.com/39jwi
writing ?afak SARAÇO?LU writing 11th September 2012
Teşekkür ederim harika bir paylaşım olmuş
writing serdar writing 10th October 2012
Bunların bir de aspx olanı olsa çok harika olacak. Teşekkürler faydalı yazı için.
writing Serif writing 8th October 2014
Çok sagolun, isime yaradi !
writing Özgür writing 25th June 2015
Oldukça yararli bir paylasim olmus. Tesekkürler.