Как определить поисковых ботов средствами php?

Пользователь

от marc_zboncak , в категории: PHP , 8 месяцев назад

Как определить поисковых ботов средствами php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от brooklyn , 8 месяцев назад

@marc_zboncak 

Для определения поисковых ботов средствами PHP можно использовать User Agent строки, которая обычно содержится в заголовке HTTP запроса.


Вот пример кода, который демонстрирует, как определить поисковых ботов:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function isBot() {
    $bots = array(
        'Googlebot',
        'Bingbot',
        'Slurp',
        'DuckDuckBot',
        'Baiduspider',
        'YandexBot'
    );

    foreach($bots as $bot) {
        if(stripos($_SERVER['HTTP_USER_AGENT'], $bot) !== false) {
            return true;
        }
    }
    return false;
}

if(isBot()) {
    echo "Это поисковый бот";
} else {
    echo "Это не поисковый бот";
}


В этом примере мы создали функцию isBot(), которая проверяет, содержит ли User Agent строка значение, соответствующее одному из поисковых ботов (в нашем случае включены Googlebot, Bingbot, Slurp, DuckDuckBot, Baiduspider и YandexBot). Если User Agent строка содержит одну из указанных значений, функция возвращает true, в противном случае возвращает false.


Затем мы вызываем эту функцию и выводим сообщение, в зависимости от результата проверки. Если isBot() возвращает true, мы выводим "Это поисковый бот", в противном случае выводим "Это не поисковый бот".