Супербыстрый хостинг на SSD от 115р в месяц   •   Реклама
971 просм
1 комм
Поделиться:

Как определить, что посетитель вашего сайта поисковый робот, а не человек на PHP?

Почти каждое устройство в сети Интернет при посещении того или иного сайта посылает так называемых «User Agent», некую информацию в виде названия операционной системы, языка, IP-адреса и прочих параметров.

Некоторые из этих данных динамичны (меняются с течением времени), а некоторые – статичны, то есть не изменяются. По заголовку, посылаемому браузером посетителя к вашему веб-сайту, мы можем определить, является ли он человеком или же поисковым роботом.

Для такого определения мы воспользуемся PHP и готовой для него функцией определения популярных поисковых ботов.

Сама функция выглядит так:

$botname = "";

function isBot() {
	
	$bots = array(
		"Google", "Yandex", "Baiduspider", "Lycos", "Genieo", "Slurp", "WebAlta", "facebook",
		"Mail.Ru", "ia_archiver", "Teoma", "Yahoo", "Slurp", "Rambler", "crawler4j", "MJ12",
		"Seznam", "WebAlta", "Bot", "cURL",
	);
	
	foreach($bots as $bot) {
	
		if(stripos($_SERVER["HTTP_USER_AGENT"], $bot) !== false) {
		
			$botname = $bot; // Если это бот - его идентификатор

			return true;
			
		}
		
	}
	
	return false;

}

И вот пример ее использования:

if(isBot()) { // Условие, если это бот

	// Делаем действие
   
}

Функция содержит в себе идентификаторы всех популярных поисковых роботов. По желанию вы можете дополнить их своим списком или, например, ограничиться только определенными ботами.

1
комментарий
Гостям запрещено участвовать в обсуждениях сайта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.

Инструкция обновлена.

Изменен код и расширена база ботов.

  • 0
Подняться наверх
«Pandoge» - помощник веб-мастера