Определение захода поискового бота на сайт
Как определить, что страница была открыта поисковым ботом и отключить скрипты
Иногда поисковым ботам требуется отдавать контент, который может отличаться от контента для обычного человека. Либо же, например, отключать некоторые тяжелые скрипты, чтобы оптимизировать скорость загрузки страниц под Google Page Speed.
Идентифицировать, зашел ли на страницу бот-поисковик, можно через заголовок HTTP_USER_AGENT следующим образом:
<?php
function is_bot()
{
$bots = [
'rambler', 'googlebot', 'aport', 'yahoo', 'msnbot', 'turtle', 'mail.ru', 'omsktele',
'yetibot', 'picsearch', 'sape.bot', 'sape_context', 'gigabot', 'snapbot', 'alexa.com',
'megadownload.net', 'askpeter.info', 'igde.ru', 'ask.com', 'qwartabot', 'yanga.co.uk',
'scoutjet', 'similarpages', 'oozbot', 'shrinktheweb.com', 'aboutusbot', 'followsite.com',
'dataparksearch', 'google-sitemaps', 'appEngine-google', 'feedfetcher-google',
'liveinternet.ru', 'xml-sitemaps.com', 'agama', 'metadatalabs.com', 'h1.hrn.ru',
'googlealert.com', 'seo-rus.com', 'yaDirectBot', 'yandeG', 'yandex',
'yandexSomething', 'Copyscape.com', 'AdsBot-Google', 'domaintools.com',
'Nigma.ru', 'bing.com', 'dotnetdotcom', 'Chrome-Lighthouse',
];
foreach ($bots as $bot) {
if (stripos($_SERVER['HTTP_USER_AGENT'], $bot) !== false) {
return $bot;
}
}
return false;
}
В массиве перечислены многие поисковые боты. При желании можете дополнить его под себя.
Далее, например, можно использовать при проверке подключать или нет тот какой-нибудь скрипт:
<?php
use Bitrix\Main\Page\Asset;
if (!is_bot()) {
//если не бот, подключаем JS
Asset::getInstance()->addJs('main.js');
}
Оставьте комментарий
Если эта статья была полезной для вас, оставьте комментарий ниже или задайте интересующий Вас вопрос. Ваш опыт может помочь другим читателям!
Написать комментарий