Как маскировать лендинг под бота так, чтобы не палиться по разметке и ответам
Первое правило: бот — не отдельная «страница», а отдельная логика выдачи. Если меняешь только текст, а HTML, заголовки, цепочки редиректов и тайминги остаются одинаковыми, детект прилетит быстро. Делай расхождение по нескольким слоям сразу: user-agent, Accept-Language, IP/ASN, JS-поведение, cookie-цепочка.
На сервере режь по сигнатуре UA и сверяй её с окружением запроса. Нормальный бот-запрос обычно палится по:
— пустому или редкому набору заголовков;
— отсутствию cookie и реферера;
— нестабильному порядку/набору Accept-*;
— несовпадению UA с IP-репутацией и гео.
Если совпадений мало — отдавай нейтральный кэшируемый HTML, а не «боевой» лендинг.
Не делай грубую подмену через один if по строке user-agent. Это детектится на раз. Нужна связка: серверный фильтр, client-side проверка поведения и отдельный шаблон ответа. Для бота убирай трекинг, тяжёлые скрипты, формы, пиксели и любые ссылки, которые могут спалить живую воронку. Для человека — полный стек, но только после прохождения фильтра.
Логи смотри не по факту конверсий, а по расхождениям: кто получил один HTML, а выполнил другой сценарий; где бот пришёл с одного IP, а потом «гуляет» по ссылкам как человек; какие UA повторяются слишком ровно. Анализ логов не врет, в отличие от техподдержки.
Если маскировка строится не на одном триггере, а на связке сигнатур и поведения, лендинг живёт дольше и палится реже. Оптимизируй под алгоритм, конвертируй под человека.
SERP-клоакинг
@serp_cloak_zone_ubt
Как маскировать лендинг под бота так, чтобы не палиться по разметке и ответам
Этот пост опубликован в Telegram-канале SERP-клоакинг. Подписаться можно по ссылке: @serp_cloak_zone_ubt.