Быстрый и надёжный хостинг на SSD-дисках от 165р в месяц   •   Реклама
1 720 просм
1 комм
Поделиться:

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

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

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

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

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

$botname = "";

function is_Bot() {

	if(!isset($_SERVER["HTTP_USER_AGENT"])) {

		$_SERVER["HTTP_USER_AGENT"] = "";

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

			return true;
			
		}
		
	}
	
	return false;

}

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

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

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

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

1
комментарий
Форма комментирования этой статьи скрыта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
    • 0
    830
      •  Администратор
    27 мар в 14:40

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

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

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