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