Защита форм на сайте от спама: насколько эффективны reCAPTCHA, hCaptcha и honeypot
Сначала посчитаем: отсекать спам и отпугивать клиентов — это одно и то же
Те, кто занимается защитой форм от спама, чаще всего впадают в одну крайность: стало больше спама — значит, надо ставить капчу построже. В итоге ботов действительно меньше, но и реальных заявок тоже — зарубежные B2B-покупатели и так не любят заполнять длинные формы, а если перед отправкой заставить их выбрать восемь картинок со светофорами, они, скорее всего, просто закроют страницу. Строгость капчи и отказ от заполнения связаны напрямую: каждая проверка, требующая действий от пользователя, снижает конверсию.
Контринтуитивный вывод здесь такой:Для большинства форм заявок потери конверсии из-за капчи могут быть больше, чем потери от спама, который она отсекает. B2B-сайт получает 100 заявок в месяц, из них 20 — спам. Если ради этих 20 вы роняете конверсию на 10%, вы теряете ещё 10 реальных заявок — чистый убыток. Правильный подход — уровни: сначала нулевые по стоимости honeypot и незаметная оценка отсекают большинство ботов, и только при подозрении требовать проверку от реального человека, а не у всех подряд. О связи полей формы и конверсии читайте в Проектирование полей формы заявки и конверсия.
| Подход | Что делает пользователь | Эффективность отсечения | Влияние на конверсию |
|---|---|---|---|
| reCAPTCHA v2, галочка | Ставит галочку «Я не робот» | Отсекает около 90% ботов | Отказ от заполнения растёт на 3–5% |
| reCAPTCHA v2, картинки | Выбирает указанные картинки | Отсекает около 95% | Отказ от заполнения растёт на 5–10% |
| reCAPTCHA v3 | Ничего не делает | Оценивает и отсекает низкие баллы | Почти нулевое влияние |
| hCaptcha | Иногда выбирает картинки | Сопоставимо с v2 | Лучше с приватностью, влияние похожее |
| Honeypot | Ни о чём не догадывается | Отсекает примитивных ботов | Нулевое влияние |
Как работает каждый из четырёх способов и когда его применять
Принцип honeypot — самый простой и изящный: в форму прячут скрытое поле, которое человек не видит, а бот заполняет. Боты по умолчанию заполняют все input подряд, и если это поле заполнено, заявка сразу помечается как спам и молча удаляется — письмо даже не отправляется. Плюс в том, что пользователь ничего не замечает, минус — работает только против примитивных ботов, которые тупо заполняют все поля; против продвинутых скриптов, читающих структуру страницы, он бесполезен.
reCAPTCHA v3 — незаметное решение от Google: в фоне она фиксирует движение мыши, время на странице и маршрут просмотра, а затем ставит каждой сессии оценку от 0.0 до 1.0. Вы задаёте порог (например, 0.5), и заявки ниже порога не отклоняются сразу, а попадают в очередь на ручную проверку. Цена — время на разбор подозрительных заявок, плюс данные уходят в Google, а для европейских сайтов нужно решать вопрос с согласием. Подход hCaptcha похож на v2, но она больше заботится о приватности: данные не так сильно концентрируются у Google, что подходит сайтам с высокими требованиями к GDPR и большой долей европейских посетителей. Общая диагностика доставки и надёжности — см.Надёжность формы запроса.
| Измерение | Honeypot | reCAPTCHA v3 | hCaptcha |
|---|---|---|---|
| Пользовательский опыт | Совсем незаметно | Совсем незаметно | Иногда нужно выбрать картинки |
| Степень защиты | Слабая, только от примитивных ботов | Средняя, за счёт оценки | Сильная, проверка как у человека |
| Приватность и соответствие требованиям | Без внешних данных, самый чистый вариант | Данные уходят в Google, нужно согласие | Приватнее, чем у Google |
| Стоимость поддержки | ноль | Нужно регулярно просматривать очередь низких оценок | Низкая |
| Для чего подходит | Базовый минимум | Основной сайт для глобальной аудитории | Основной сайт для европейской аудитории |
III. Как настроить: трёхуровневая система защиты
Не выбирайте что-то одно — правильно выстраивать три уровня. Первый уровень всегда honeypot: он ничего не стоит и ни на что не влияет, но отсекает больше 60% примитивных ботов-сканеров. Второй уровень — незаметная оценка (v3 или незаметный режим hCaptcha), которая ставит балл каждой заявке. И только третий уровень — это проверка по картинкам для заявок с низким баллом или аномалиями либо сразу ручная проверка. Так обычные пользователи проходят всё незаметно, и только подозрительные действия требуют доказать, что ты человек.
Главное — правильно задать порог. Когда v3 только запущена, сначала ставьте «порог блокировки» очень мягко: только наблюдайте, не блокируйте по-настоящему, и одну-две недели смотрите распределение оценок обычных пользователей. Если у реальных пользователей оценки в основном выше 0.6, ставьте линию блокировки на 0.4 — ниже неё заявка уходит на проверку.Сценарий первый: сайт получает 200 заявок в месяц, из них две десятых — спам. После подключения honeypot и v3 сначала настройте v3 в режим «только записывать, не блокировать», неделю понаблюдайте и увидите, что у реальных пользователей оценки выше 0.5, а затем заявки ниже 0.4 переводите в папку спама, а не отклоняйте сразу.Сценарий второй: половина посетителей сайта — из Европы. Замените решение Google на hCaptcha и уберите лишнее окно согласия «мы используем сервисы Google» — с точки зрения соответствия требованиям так проще. Как настроить оповещения об аномалиях — см.Мониторинг сайта и оповещения.
| Доля спама | Рекомендуемая настройка | Нужна ли ручная проверка |
|---|---|---|
| Меньше 10% | Достаточно honeypot, капчу не добавляем | Не нужно |
| 10–30% | Honeypot + незаметная оценка v3 | Раз в неделю проверять очередь низких оценок |
| 30–50% | Добавить капчу, показывать только при подозрении | Проверять раз в день |
| Более 50% | Проверить, нет ли целевой атаки | Добавить ограничение по частоте запросов с IP |
Четыре: самые частые ошибки в настройке
Первая ошибка — считать, что v3 «поставил и всё в порядке», задать порог и больше не смотреть в очередь. v3 не блокирует, а только оценивает: низкие оценки проходят дальше, и если не проверять очередь на ручную модерацию, толку от установки не будет. Вторая ошибка — слишком жёсткий порог, из-за которого страдают обычные пользователи. Особенно в сетях Азии и Латинской Америки, где один IP делят много людей: оценки там систематически занижены, и жёсткий порог отсекает реальные заявки.
Третья ошибка — забыть про мобильные устройства и доступность. Капча с картинками неудобна и для тех, кто путается в символах, и для пользователей скринридеров, а это противоречит только что сделанной адаптации под доступность. Четвёртая ошибка — защищать только форму, но не админку: боты сканируют и wp-login, а это уже другая история. Настоящий критерий — «чистые потери»: после каждого усиления проверки сравните за две недели, не упало ли число реальных заявок. Если падение больше 5%, значит вы перегнули. О связи скорости первого ответа с конверсией читайте в SLA первого ответа на запрос и конверсия.
| Частая ошибка | Последствия | Как исправить |
|---|---|---|
| Поставили v3 и не смотрите очередь модерации | Спам с низкими оценками попадает во входящие | Раз в неделю проверять очередь |
| Слишком жёсткий порог | Отсекает реальных пользователей с общим IP | Сначала мягче, потом строже, следить за распределением |
| Капча с картинками на первом экране | Заметно растёт доля отказов от заполнения | Показывать только при подозрительных отправках |
| Смотреть только на объём спама, а не на конверсию | Чем больше защиты, тем меньше людей заполняют форму | При каждой правке сравнивать реальные заявки |
| Игнорировать доступность | Пользователи скринридеров не могут отправить форму | Выбирать незаметные для пользователя решения |
FAQ: частые вопросы
reCAPTCHA v2 или v3: что выбрать?
Что такое honeypot и работает ли он?
Чем hCaptcha лучше reCAPTCHA?
Какой порог оценки у reCAPTCHA v3 ставить?
У нас на сайте мало спама — стоит ли вообще ставить капчу?
Не навредит ли антиспам реальным клиентам? Как это определить?
В заключение
Цель антиспама в формах — не «ноль спама», а «держать спам в пределах, которые sales успевает обработать, не отпугивая реальных клиентов». Ставить самую жёсткую капчу ради нуля спама — это по сути обменивать реальные заявки на чистый почтовый ящик, и такой расчёт чаще всего оказывается в убыток. Запомните принцип слоёв: honeypot как основа, незаметная оценка для решения, и повышение проверки только для подозрительного поведения.
Три шага на практике. Первый: поставьте honeypot — он бесплатно отсекает примитивных ботов. Второй: добавьте reCAPTCHA v3 или hCaptcha с невидимой оценкой, но первые две недели только наблюдайте, не блокируйте. Третий: задайте порог по распределению оценок реальных пользователей, а заявки с низким баллом отправляйте на ручную проверку. Раз в две недели сверяйте, не отсекли ли вы случайно настоящие заявки. Форма — это последний шаг до обращения, и защита от спама работает только тогда, когда пользователь её не замечает.
Запомните одну вещь: лучшая защита от спама — та, о существовании которой пользователь не догадывается. Если вы видите во всех потенциальных клиентов, вы первым делом закрываете дверь перед реальными.
