Отслеживание ботов поисковых систем
Доброго времени суток!
Прежде всего хочу извиниться, что давно не писал, если ждал кто моего нового поста =)
Сегодня речь пойдёт о скрипте, с помощью которого вы сможете следить за посещениями посковых роботов(Crawler) вашего сайта.
Я создаю свои проекты только на собственном движке, так как знаю в нём кажду строчку и мне очень удобно с ним работать. Время от времени я нужнаюсь в каких-то новых модулях. И вот, этот момент настал. Я захотел отследить всех ботов, которые заходят на мой сайт.
Делать мы это будем благодаря переменной $_SERVER[`HTTP_USER_AGENT`]. Эта переменная содержит в себе имя браузера, в котором открыли ваш сайт. У поисковых ботов это не мозила, ИЕ или опера. Отсюда мы и будем отталкиваться.
Вот код скрипта:
function SpiderDetect($USER_AGENT){
$engines = array( //Задаём имена известных ботов
array(`Aport`, `Aport robot`),
array(`Google`, `Google`),
array(`msnbot`, `MSN`),
array(`Rambler`, `Rambler`),
array(`Yahoo`, `Yahoo`),
array(`AbachoBOT`, `AbachoBOT`),
array(`accoona`, `Accoona`),
array(`AcoiRobot`, `AcoiRobot`),
array(`ASPSeek`, `ASPSeek`),
array(`CrocCrawler`, `CrocCrawler`),
array(`Dumbot`, `Dumbot`),
array(`FAST-WebCrawler`, `FAST-WebCrawler`),
array(`GeonaBot`, `GeonaBot`),
array(`Gigabot`, `Gigabot`),
array(`Lycos`, `Lycos spider`),
array(`MSRBOT`, `MSRBOT`),
array(`Scooter`, `Altavista robot`),
array(`AltaVista`, `Altavista robot`),
array(`WebAlta`, `WebAlta`),
array(`IDBot`, `ID-Search Bot`),
array(`eStyle`, `eStyle Bot`),
array(`Mail.Ru`, `Mail.Ru Bot`),
array(`Scrubby`, `Scrubby robot`),
array(`Yandex`, `Yandex`),
array(`YaDirectBot`, `Yandex Direct`)
);
foreach ($engines as $engine) {
if (strstr($USER_AGENT, $engine[0])){
return($engine[1]);
}
}
return (false);
}
$detect = SpiderDetect($_SERVER[`HTTP_USER_AGENT`]); //вызываем функцию и передаём ей значение
if ($detect){ //Если бот обнаружен, то делаем то, что нам захочется
$date=date("d.m.Y H:i:s");
$url=$_SERVER["PHP_SELF"];
$ref=$_SERVER["HTTP_REFERER"];
//дальше вы можете сделать что угодно, лично я заношу полученные данные в БД, а в администрировании сайта имею фильтр по посещениям ботов(Дата/Имя). Очень удобно. А можно просто заносить всё в фай
}
Правда ведь легко?
сохраняем это всё как php скрипт, инклудим в сайт и радуемся, когда ваш сайт посещают боты.
Конец =)
PS: Друзья, если вы меня читаете, отпишите в комментах, может что не понятно, я всё объясню. Мне же приятно, когда вы комментите, даже если коммет будет отрецательный.