Накрутка поведенческих факторов (ПФ) — это распространённая проблема, с которой сталкиваются владельцы сайтов. Боты имитируют поведение пользователей, чтобы повысить или понизить позиции сайтов в поисковой выдаче. В этой статье я расскажу, как защитить сайт от накрутки ПФ, перегрузив сервер бота.
Я Григорий Мельников, создатель сервиса защиты сайта KillBot, расскажу как сделать так, чтобы бот обходил твой сайт стороной.
Идея блокировки бота
Как я неоднократно писал ранее, боты — это не разрозненные программы. Бот — это программное обеспечение, которое работает на одном сервере и имитирует сотни ботовских сессий.
Если бот зайдет на проблемный сайт — то сессия посещения сайта превратится в мертвый, ресурсозатратный процесс. Администратору ботовской программы будет проще исключить проблемный сайт из своего софта.
Однако нужно подождать, пока администратор обнаружит, что сервер работает некорректно. Это может занять до недели, так как ботовский софт обычно работает стабильно и не требует ежедневного контроля. Также потребуется квалификация администратора, чтобы он смог определить, что проблема связана именно с вашим сайтом.
Как в бот-софте прописываются сайты для накрутки?
В ботовском софте сайты для посещения и накрутки обычно задаются вручную. Там же существует список исключений — игнор-лист, куда добавляют сайты, на которые кликать нельзя. Вот пример настроек:
Поэтому, администратору софта исключить глючный сайт из цепи не составит труда.
Кто генерирует ботов и каким софтом?
Можно прочитать в моей другой статье
Пример блокировки бота на практике
На графике ниже видно резкое падение числа заходов бота после того, как его сервер начал испытывать нагрузку.
Этот эффект был достигнут за счёт перегрузки сервера бота, что сделало его дальнейшую работу нецелесообразной.
6 ноября: Включено зацикливание для основного бота. В результате трафик ботов упал в два раза — серверу стало сложнее обрабатывать заходы.
12 ноября: Второй скачок падения трафика. Вероятно, сайт был исключён из накрутки.
Не все боты были исключены, так как зацикливание было применено только для самого популярного бота.
Важно! ваш сайт — не единственный, который "крутит" бот. Если бы он был один, сервер бы полностью встал. Однако, отдельные нагруженные процессы будут копиться и тормозить сервер. Подвисшие процессы обычно завершаются по таймауту, если бот написан грамотно. Пока процесс не завершён, на него расходуются процессорное время и оперативная память.
Как реализована перегрузка бота в KillBot?
Чтобы включить зацикливание бота, нужно:
Найти слепок бота в интерфейсе KillBot.
Слева в меню действий выбрать «Зациклить».
Для проверки можно нажать на ссылку «Тест». В этом случае сайт ответит так, будто заход выполнен ботом с нужным слепком, и запустит процесс зацикливания.
Внимание! Зацикливание НЕ коснётся реальных пользователей. Зависнут только сессии бота.
Как работает скрипт зацикливания?
Скрипт использует HTML5 Canvas для создания нагрузки на процессор и оперативную память, что вызывает зависание браузера и делает дальнейшую работу бота невозможной.
<script>
function kbLoadScript(src) {
return new Promise((resolve, reject) => {
const script = document.createElement('script');
script.src = src;
script.onload = resolve;
script.onerror = reject;
document.head.appendChild(script);
});
}
async function init() {
try {
await kbLoadScript('https://data.killbot.ru/mu.js');
if (typeof Module !== 'undefined' && Module.onRuntimeInitialized) {
if (!Module.onRuntimeInitializedCalled) {
Module.onRuntimeInitializedCalled = true;
Module.onRuntimeInitialized = () => {
Module.ccall('main');
};
}
} else {
console.warn("Module not found or onRuntimeInitialized is missing.");
return false;
}
} catch (error) {
console.error(error);
return false;
}
return true;
}
function delay(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
document.addEventListener("DOMContentLoaded", async () => {
await delay(2000);
while(true){
ret = init();
if (ret==false) break;
}
});
</script>
Как протестировать скрипт?
Осознанно скопируйте ссылку для зависания вкладки: https://data.killbot.ru/cpu.html — и вставьте в поле браузера. Вкладка зависнет, можно так же посмотреть на потребление ОЗУ и процессора. Далее закройте вкладку.
В KillBot также есть альтернативный вариант для устройств с отключённой поддержкой Canvas — скрипт на нативном JavaScript, который создаёт высокую нагрузку на процессор и память.
Как отбелить бота, если вы сами крутите ПФ?
Для этого можно нажатьна ссылку «Изменить на пользователя». Все визиты этого бота будут расцениваться как визиты настоящих пользователей.
Работают ли поведенческие факторы сейчас?
Да, работают. Можете обзвонить SEO-студии и напрямую спросить, занимаются ли они накруткой. Зачастую они не признаются, но если предлагают тест с демонстрацией роста позиций, это значит что они используют ПФ.
Заказные клики. Кто кликает по рекламе в Яндексе за копейки?
Об этом есть пост в моём телеграм канале: https://t.me/KillBotRus/36. А в следующем посте я расскажу о методах обнаружения прокси и VPN, которые не загуглить. Поэтому подписывайтесь на канал, чтобы не пропустить этот интересный материал.