Скрипт защиты Яндекс метрики - 1 накрутчиков пф и их ботов - 2 от прямых переходов ботов
Поиск по блогу:

Скрипт защиты метрики от ботов (от прямых переходов, накрутчиков пф) 👇

В формате видео, скринкаст:

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

до того как мы сняли метрику и поставили скрипт для блокировки

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

Вот метрика сам JavaScript скрипт, который не показывает Яндекс-метрику, если у бота/человека нет referer-а, короче режет все прямые переходы ботов и очень просто. Еще можно исключить страницу, на которой вообще можно не показывать метрику абсолютно всем. Вместо 33333333 — подставляем свой ID метрики.

<!-- Yandex.Metrika counter -->
<script type="text/javascript">
// Функция, которая проверяет текущую страницу на соответствие условию
function isNotSpecificPage() {
// Указываем URL страницы, которую нужно исключить
var excludedPageUrl = 'https://33333333.рф/wp-admin/';

// Получаем URL текущей страницы
var currentPageUrl = window.location.href;

// Проверяем, соответствует ли текущая страница исключаемой странице
if (currentPageUrl !== excludedPageUrl) {
// Проверяем наличие document.referrer и параметра ?utm_referrer
if (document.referrer !== '' && !getParameterByName('utm_referrer')) {
return true;
} else {
return false;
}
} else {
return false;
}
}

// Функция для получения значения GET параметра из URL
function getParameterByName(name) {
name = name.replace(/[\[\]]/g, «\\$&»);
var regex = new RegExp([?&]"" + name + «(=([^&#]*)|&|#|$)»),
results = regex.exec(window.location.href);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, « „));
}

// Если текущая страница не исключена и нет пустых данных в document.referrer или ?utm_referrer, выводим счетчик метрики
if (isNotSpecificPage()) {
(function(m,e,t,r,i,k,a){m[i]=m[i]function(){(m[i].a=m[i].a[]).push(arguments)};m[i].l=1*new Date();for(var j=0;j<document.scripts.length;j++){if(document.scripts[j].src===r){return;}}k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})(window,document,“script»,"https://mc.yandex.ru/metrika/tag.js","ym");ym(33333333,"init",{clickmap:true,trackLinks:true,accurateTrackBounce:true,webvisor:true,ecommerce:"dataLayer"});
}
</script>
<!-- /Yandex.Metrika counter -->

Вот второй вариант решения, которое будет работать в случае если вы не чем не кэшируете html код ваших страниц, PHP версия =

<?php
function should_include_metrika() {
// Исключаемая страница
$excluded_page = '/wp-admin/';

// Текущий URL
$current_url = $_SERVER['REQUEST_URI'];

// Проверяем, исключена ли текущая страница
if (strpos($current_url, $excluded_page) !== false) {
return false;
}

// Проверяем наличие HTTP_REFERER
$referrer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER ['HTTP_REFERER']: '';

// Проверяем наличие параметра utm_referrer
$utm_referrer = isset($_GET['utm_referrer']) ? $_GET ['utm_referrer']: null;

// Условие: есть HTTP_REFERER и нет utm_referrer
return !empty($referrer) && empty($utm_referrer);
}

// Вставляем метрику, если условия выполнены
if (should_include_metrika()) :
?>
<!-- Yandex.Metrika counter -->
<script type="text/javascript" >
(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
m[i].l=1*new Date();
for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }}
k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
(window, document, «script», «https://mc.yandex.ru/metrika/tag.js», «ym»);

ym(114010, «init», {
clickmap:true,
trackLinks:true,
accurateTrackBounce:true,
webvisor:true,
ecommerce:"dataLayer"
});
</script>
<noscript><div><img src="https://mc.yandex.ru/watch/3333" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->
<?php
endif;
?>

Ещё я бы хотел отметить, не стоит руками отлавливать всякие грязные IP-адреса и намертво блокировать прямой переход, очень часто с плохих IP могут заходить нормальные люди, и когда вы их заблокировали, собственно, они не смогут попасть на ваш сайт, и тем самым ваш сайт начнёт приседать в поиске.

Перед тем, как написать свой скрипт, я пробовал все, что мог найти в поиске Яндекса по таким запросам, как «скрипт защиты от прямых переходов ботов, которые накручивают ПФ». Ну и любым другим, все в этом контексте, и все, мне попадалось, это какие-то непонятные скрипты, которые откладывают загрузку метрике после каких-то там действия мышкой или скролла, и собственно, в статистике потом после таких скриптов нет никаких данных, откуда с Яндекса пришли или с Гугла, но собственно, зачем вообще такие решения и ну, типа, непонятно.

Изначально в этом скрипте уже включён вебвизор метрики. Интересный такой факт: я написал в техподдержку Яндекса в панеле вебмастера о том, что мы сняли с сайта метку, вообще её убрали, и через три недели сайт начал очень сильно расти по всем запросам, выросла видимость, позиции, трафик, и как только мы вернули Метрику обратно, сайт сразу же провалился по всем запросам, и стало ещё хуже, даже чем до того, как мы снимали метрику.

Вероятность, что с этим скриптом для метрики ранжирование вашего сайта может улучшиться, но стоит тоже учитывать, он не сможет отсекать всех остальных ботов, которые маскируются под переходы с Яндекса и по переходам по ссылкам, якобы это с рекламы. Снижение бортового плохого трафика срабатывает сразу, а вот позитивный SEO эффект уже от трёх недель.

Ну и собственно, если вам нужен фрилансер, который умеет в SEO, то вы знаете, куда писать.

Все статьи и новости → Подписаться на Telegram

Понравилась статья? Зашарить инфу в социальных сетях ↓
мой софт, техническая оптимизация, эксперименты
Именно твой/ваш комментарий для автора украсит сегодняшний вечер.

Комментарии к посту: Скрипт защиты метрики от ботов (от прямых переходов, накрутчиков пф)