Анализ логов показывает: ошибки начинаются там, где любой редкий IP считают «модером», а любой Googlebot — «поиском». Разберем техническую составляющую реализации.
Первый слой проверки — сетевой: reverse DNS, ASN, диапазоны IP и согласованность цепочки прокси. У легитимного краулера обычно совпадают PTR, исходный диапазон и поведение по заголовкам. У модераторов и ручной проверки картина чаще рваная: нестандартный UA, отсутствие предсказуемого паттерна обхода, заход через обычные consumer-сети. Проверка цепочки прохождения запроса здесь важнее догадок.
Второй слой — поведенческий. Бот поисковой системы ходит по страницам с рваной частотой, уважает robots, быстро вычитывает HTML без JS-следов и редко трогает формы. Модератор или антифрод-ручник, наоборот, часто триггерит сценарии: клик по CTA, открытие нескольких URL подряд, проверка редиректов, сверка контента на мобиле и десктопе. Если у вас в логах есть последовательность «лендинг → форма → thank you» с коротким интервалом, это уже не индексатор.
Третий слой — fingerprinting: canvas, WebGL, часовой пояс, язык, размер viewport, наличие cookies и скорость загрузки ресурсов. Краулер обычно не тянет тяжёлый фронт так, как обычный браузер; модератор — наоборот, оставляет полноценный браузерный отпечаток. Конфиг готов, можно деплоить, если вы сравнили эти признаки в одной таблице и не полагаетесь на один заголовок User-Agent.
Вывод простой: детект строится не по одному сигналу, а по корреляции сети, поведения и отпечатка. Если хотя бы два слоя расходятся, запрос надо считать подозрительным и отправлять в ручную верификацию.
Клоакинг: разборы
@cloaking_lab_arb
Детекция ботов поисковиков и модераторов: как не спутать краулер с живым трафиком
Этот пост опубликован в Telegram-канале Клоакинг: разборы. Подписаться можно по ссылке: @cloaking_lab_arb.