Формы заявок без спама: защита без убийства конверсии
Защита формы заявок — баланс: менеджеры не должны разбирать сотни ботов в CRM, а клиент не должен проходить три капчи, чтобы оставить телефон. Honeypot — это скрытое поле, которое человек не видит и не заполняет, а автоматический скрипт заполняет всё подряд; ограничение частоты (rate limit) не даёт отправить с одного адреса больше нескольких заявок в час.
Ниже разложены слои защиты от мягкого к жёсткому и порядок внедрения, при котором конверсия формы не падает. Связанные темы: разработка сайта, контент и формы на посадочной странице.
Откуда в заявках берётся спам
Форма отправляет данные на публичный адрес, и найти его можно прямо в коде страницы. Как только сайт попадает в рекламу, этот адрес оказывается в базах рассыльщиков, и утром менеджер видит в CRM сорок обращений вида «продвижение дёшево, пишите в мессенджер». Ломается не только настроение отдела продаж: цели в Метрике считают ботов как заявки, поэтому стоимость обращения в отчёте выглядит вдвое ниже реальной, и решения по бюджету принимают по неверным цифрам.
Слои защиты: что включать первым
- Honeypot — скрытое поле и таймер отправки: слишком быстрая отправка = бот.
- Rate limit по IP и fingerprint — не больше N заявок в час с одного источника.
- Server-side валидация: формат телефона, длина полей, запрет HTML в имени.
- Невидимая reCAPTCHA / hCaptcha — только при подозрительном score.
- CRM-фильтры — последний рубеж, не замена серверной проверки.
Что каждый слой стоит клиенту
| Слой | Что видит клиент | Что отсекает |
|---|---|---|
| Скрытое поле и таймер | Ничего: поле спрятано от человека | Простые скрипты, которые заполняют все поля подряд |
| Ограничение частоты | Ничего, пока отправляет одну заявку | Пакетную рассылку с одного адреса и устройства |
| Проверка на сервере | Подсказку, если телефон введён не полностью | Битые номера, теги и ссылки в поле «Имя» |
| Невидимая капча | Обычно ничего, иногда одну галочку | Ботов, которых сервис считает подозрительными |
| Фильтры в CRM | Ничего: работа идёт после отправки | То, что прошло сайт: дубли телефонов и мусорные тексты |
Мобильная форма: где теряют живых
На телефоне тяжёлая капча закрывает клавиатуру и уводит картинки автобусов. Проверьте: кнопка «Отправить» видна при открытой клавиатуре, поля с autocomplete, маска телефона без лишних символов. Защиту переносят на сервер — пользователь не должен доказывать, что он человек, если ведёт себя нормально.
Признаки бота в одной заявке
CRM-фильтры и метрики
- Доля «мусорных» лидов до/после — главная метрика, не «сколько заблокировали».
- Выборочная проверка отфильтрованных — раз в неделю первый месяц.
- Цели Метрики считают только прошедшие в CRM валидные заявки.
- Алерт, если спам пробился пакетом — пересмотр правил.
Порядок запуска без A/B-хаоса
Сначала включите honeypot и rate limit на staging, прогоните тестовые заявки с телефона и десктопа. Потом CRM-правила. Капчу добавляйте только если спам остаётся — и замерьте конверсию формы до и после на одной неделе трафика.
ПроверкаЕсли после защиты конверсия упала больше чем на 10–15% — ослабьте капчу и усильте серверные проверки. Спам можно резать и без трёх экранов «выберите светофор».
Частые вопросы
Почему форма начинает получать спам?
Публичный endpoint без проверки, утечка URL формы в базы ботов, отсутствие rate limit. После запуска рекламы спам часто растёт — форма видна в коде и в логах.
Honeypot — что это и хватит ли одного?
Скрытое поле, которое заполняют только боты. Простых ботов отсекает, но не заменяет rate limit и проверку на стороне сервера. Обычно комбинируют с другими слоями.
Капча всегда убивает конверсию?
Тяжёлая капча на каждом шаге — да, особенно на мобиле. Невидимая или по score после подозрительного поведения — компромисс. Сначала мягкие методы, капчу включают точечно.
Как фильтровать спам уже в CRM?
Правила по ключевым словам, дубликатам телефона, пустым полям, стране IP. Важно не удалять молча — помечать и смотреть выборку, чтобы не резать живые заявки.