Код проверки прихода бота на сайт

Боты Яндекса

Ботов у Яндекса много. Нас интересует главный бот и быстробот. Быстробот отдельно не представляется. Выглядят в логах сервера они так:

Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)

Mozilla/5.0 (iPhone; CPU iPhone OS 8_1 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12B411 Safari/600.1.4 (compatible; YandexBot/3.0; +http://yandex.com/bots)

Mozilla/5.0 (compatible; YandexNewslinks; +http://yandex.com/bots)

Кроме них роботы у Яндекса на любой вкус: картинок, пиктограмм, фавикон, видео, микроразметки, новостей, рекламы, сервисов... Полный список в справке яндекса ищите.

Когда пришел бот на сайт и что смотрел

Задача:

Отследить появление роботов Яндекса и Гугла на сайте. После появления снять с них информацию где и когда были. Записать эти данные файл.

Основу кода взял где-то в интернете и чуть-чуть допилил. Получилось:

<?PHP

$bot = 'Unknown'; 

if (stristr($_SERVER['HTTP_USER_AGENT'], 'Yandex')){ $bot='Yandex';} 
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'YandexBot')){ $bot='YandexBot';} 
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'Yandex')){ $bot='Yandex';} 
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'YandexDirect')){ $bot='Yandex Direct';} 
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'Googlebot')){$bot='Googlebot';} 
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'Google')){$bot='Google';} 
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'Mediapartners-Google')){$bot='Mediapartners-Google (Adsense)';} 

if($bot != 'Unknown')
{
$file = $_SERVER['REQUEST_URI'];

$dt=date('Y-m-d [H:i:s]'); 
$fp = fopen('botlogs.html',a); 
fwrite($fp,'<br>'.$bot.' | '.$dt.$file); 
fclose($fp); 
}
?>

Как использовать. Вставляем php фрагмент на каждую страницу. Теперь при её посещении роботом появится запись в лог файле. Анализировать удобно введя в адресную строку /botlogs.html к адресу сайта.

Метод не защищен никак и может любой посмотреть эту информацию. Конечно, если догадается как.

Результат будет примерно таким:

andex | 2015-09-17 [18:29:13]/content/otkrytost-indeksacii
Google | 2015-09-17 [18:32:13]/content/kod-proverki-prihoda-bota-na-sayt?_utl_t=tw
Google | 2015-09-17 [18:32:13]/content/kod-proverki-prihoda-bota-na-sayt?_utl_t=tw
Yandex | 2015-09-17 [18:33:17]/
Googlebot | 2015-09-17 [18:37:46]/content/poluchit-domen
Googlebot | 2015-09-17 [18:37:55]/content/otzyv-userclicksu
Yandex | 2015-09-17 [18:51:51]/content/chto-takoe-dns
Yandex | 2015-09-17 [18:51:51]/content/kak-nayti-upominaniya-o-cheloveke
Yandex | 2015-09-17 [19:11:00]/blogs/drboglav
Yandex | 2015-09-17 [19:11:02]/content/osobennost-indeksacii-sayta-yandeksom

 

В принципе нам никто не мешает доработать код и получить свою альтернативную метрику сайта. Убираем проверку и теперь кто бы на страницу с кодом не зашел у нас появится запись об этом в лог файле. Чтобы не путаться записываем и юзерагента в лог.

Предупреждение! Файл может очень быстро расти. Периодически нужно его удалять. Лог файл создается автоматически при выполнении кода.

Если лог файл существует, то запись новая производится в конец.

При открытии лога обязательно обновите страницу (F5) и перейдите в конец файла.

Автор статьи: 
Рейтинг: 
Средняя: 5 (1 оценка)

Добавить комментарий

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
7 + 0 =
Решите эту простую математическую задачу и введите результат. Например, для 1+3, введите 4.

Поделитесь статьей в социальных сетях.
На главную вернуться.