Время последней индексации страниц поисковиками
Среда, 23 сентября 2009 г.
Просмотров: 406
Подписаться на комментарии по RSS
Почитывая однажды сайт www.rukv.ru обнаружил в самом низу страницы интересную статистику,
а именно время проверки страницы поисковыми ботами.
Весьма полезно и удобно анализировать в таком наглядном виде статистику захода поисковых ботов.
Обозначив интерес в разговоре с fof и описав полезность и удобство такого подхода,
буквально на следующий день я получил простенький и удобный скрипт,
который просто подключается на всех страницах.
Теперь на многих моих сайтах в самом низу выводятся идентификаторы поисковых ботов и время их захода на страницу.
Очень интересно наблюдать эти цифры на страницах блога,
т.к. после пинга поисковые боты приходят довольно быстро и можно делать ставки какой придет раньше.
Конечно на первом месте практически всегда оказывается googlebot, потом приходит Yandex,
но в последнее время что-то он стал лениться.
Ниже представлен скрипт, который очень просто реализует такую
статистику.
К описанным идентификаторам ботов можно достаточно просто добавлять
свои.
Количество имен поисковых ботов ограничено только размером оперативной
памяти.
Можно еще более усложнить систему и сохранять не только время
последнего захода,
но и все заходы за время существования сайта (правда в таком случае
лучше использовать MySQL). Информация сохраняется в одном файле,
статистика отображается на каждой странице сайта (точнее на тех, в
которые вы подключите этот скрипт).
<?php
$logfile = "botlog.txt";
if (!file_exists ( $logfile ) ) {
$log = array ( );
file_put_contents ( $logfile, serialize ( $log ) );
}
else $log = unserialize ( file_get_contents ( $logfile ) );$uri = $_SERVER [ 'REQUEST_URI' ];$remap_agents = array (
'googlebot' => 'Google',
'yahoo' => 'Yahoo',
'msnbot' => 'MSN',
'yandex' => 'Yandex',
'stackrambler' => 'Rambler',
'aport' => 'Aport'
);$agent=@$_SERVER [ 'HTTP_USER_AGENT' ];
if ( preg_match('/(googlebot|yahoo|msnbot|yandex|stackrambler|aport)/i',
$agent, $match ) ) {
$match = strtolower ( $match [ 1 ] );
$agent = $remap_agents [ $match ];
$date = date ( "d.m-H:i", time ( ) );
$log[$uri][$agent] = $date;
file_put_contents ( $logfile, serialize ( $log ) );
}printf ( "Google:%s Yahoo:%s Msn:%s Yandex:%s Rambler:%s Aport:%s",
@$log[$uri]['Google'],
@$log[$uri]['Yahoo'],
@$log[$uri]['MSN'],
@$log[$uri]['Yandex'],
@$log[$uri]['Rambler'],
@$log[$uri]['Aport']
);printf ( "G:%s Y:%s M:%s Y:%s R:%s A:%s",
@$log[$uri]['Google'],
@$log[$uri]['Yahoo'],
@$log[$uri]['MSN'],
@$log[$uri]['Yandex'],
@$log[$uri]['Rambler'],
@$log[$uri]['Aport']
);/*
function file_put_contents ( $n, $d )
{
$f = @fopen ( $n, "w" );
if ( !$f )
return false;
else
{
fwrite ( $f, $d );
fclose ( $f );
return true;
}
}
*/?>
Если вы используете PHP четвертой версии, а не пятой, то вам будет нужна функция file_put_contents,
которая в данном примере закрыта комментариями, раскомментируйте ее.
Комментариев: 1
Спасибо попользуюсь