PHP: Arama Motorlarına Sitemap Submit Etmek (Sitemap Pinging)

submit your sitemap to search engines Önceki yazıda bahsettiğim gibi, pingsitemap() fonksiyonunu ve Yahoo, Bing, Google arama motorlarına ping atarak  yeni içeriklerinizi tanıtmayı inceleyeceğiz.

Bu fonksiyonlar aracılığıyla, dinamik üretilen sitemap dosyaları, saniyeler içinde arama motorlarına submit edilir ve yeni içeriklerinizin daha hızlı submit edilmesini sağlar.

Sadece sitemap olmasına gerek yok aslında. Yeni açtığınız herhangi bir websitenin url’sini arama motorlarına tanıtmak için de kullanılabilir.

Kısaca fonksiyon isimlerinden ve içeriklerin bahsettikten sonra, kodlara geçeceğim;

pingsitemap() : XML Sitemap adresini parametre olarak alır ve Google, Bing, Yahoo için ayrı yazılan fonksiyonları çalıştırır.
GoogleSitemaps() : XML Sitemap adresini parametre olarak alır ve fsockopen ile “google.com/webmasters/sitemaps/ping?sitemap=xml_adresimiz” adresine bağlantı kurar.

BingSitemaps() : XML Sitemap adresini parametre olarak alır ve fsockopen ile “bing.com//webmaster/ping.aspx?siteMap=xml_adresimiz” adresine bağlantı kurar.

Birkaç yıldır kullandığım bu yöntem dahilinde Yahoo içinde bir fonksiyon kullanıyordum. Ama Yahoo webmaster tools artık Bing altyapısına entegre olmuş durumda. Bu yüzden YahooSitemaps() metodunu paylaşmıyorum.

Geçelim Kodlara


function pingsitemap($xml){
if(GoogleSitemaps($xml)==200){
echo "Sitemap <strong>Google Arama motoruna</strong> gönderildi. <br />";
}
if(BingSitemaps($xml)==200){
echo "Sitemap <strong>Bing Arama motoruna</strong> gönderildi.<br />";
}
}

function GoogleSitemaps( $url_xml )
{
$status = 0;
$google = 'www.google.com';
if( $fp=@fsockopen($google, 80) )
{
$req = 'GET /webmasters/sitemaps/ping?sitemap=' .
urlencode( $url_xml ) . " HTTP/1.1\r\n" .
"Host: $google\r\n" .
"User-Agent: Mozilla/5.0 (compatible; " .
PHP_OS . ") PHP/" . PHP_VERSION . "\r\n" .
"Connection: Close\r\n\r\n";
fwrite( $fp, $req );
while( !feof($fp) )
{
if( @preg_match('~^HTTP/\d\.\d (\d+)~i', fgets($fp, 128), $m) )
{
$status = intval( $m[1] );
break;
}
}
fclose( $fp );
}
return( $status );
}

function BingSitemaps($xml){
$status=0;
$bing="www.bing.com";
if( $fp=@fsockopen($bing, 80) )
{
$req = 'GET /webmaster/ping.aspx?siteMap=' .
urlencode( $xml ) . " HTTP/1.1\r\n" .
"Host: $bing\r\n" .
"User-Agent: Mozilla/5.0 (compatible; " .
PHP_OS . ") PHP/" . PHP_VERSION . "\r\n" .
"Connection: Close\r\n\r\n";
fwrite( $fp, $req );
while( !feof($fp) )
{
if( @preg_match('~^HTTP/\d\.\d (\d+)~i', fgets($fp, 128), $m) )
{
$status = intval( $m[1] );
break;
}
}
fclose( $fp );
}
return( $status );
}

Not; Bu fonksiyonlarda bağlantı kurulan Google ve Bing submission URL değerlerinin hiç bir garantisi yoktur. Ancak ikisi de en az 3 yıldır ikisi de sağ salim çalışmaktadır.

One thought on “PHP: Arama Motorlarına Sitemap Submit Etmek (Sitemap Pinging)

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir