Самая неприятная поломка на сайте — та, которую никто не замечает. Форма на месте, кнопка нажимается, тестовая заявка доходит. Менеджеры просто говорят, что обращений стало меньше, и это списывают на сезон, конкурентов или рекламу.
У одного из клиентов мы сверили три источника за один и тот же период: 76 визитов на странице с формой, 187 срабатываний цели «нажатие кнопки Отправить» в Яндекс.Метрике и 53 заявки в базе. Цифры не сходятся дважды. Нажатий втрое больше, чем визитов, а до базы доходит меньше половины нажатий.
Считали мы не по одному источнику. В Яндекс.Метрике параллельно работали автоматические цели — те, что Метрика заводит сама и отмечает ими нажатия на кнопки отправки, — и наша собственная цель, повешенная на JS-событие в момент успешной отправки формы. Автоцель считает сам факт нажатия, а цель на JS-событии срабатывает только тогда, когда форма действительно ушла на сервер. Разница конверсий между этими двумя целями и стала поводом искать поломку: будь дело в неудобной форме или в передумавших посетителях, оба счётчика падали бы одинаково.
Оба расхождения объясняются одним и тем же. Человек заполняет форму, получает «Произошла ошибка, попробуйте позже», жмёт ещё раз, потом ещё — отсюда лишние срабатывания цели. А заявка не доходит, потому что её отбивает невидимая reCAPTCHA v3.
Третья версия капчи Google не показывает картинки и ничего не спрашивает. Она выставляет каждому посетителю оценку от 0 до 1 — вероятность того, что перед ней человек. Порог по умолчанию 0.5: всё, что ниже, форма молча отклоняет.
Проблема в том, на чём эта оценка строится. Мы прогнали одну и ту же форму на одной и той же странице через разные браузеры, меняя по одному условию за раз, и записали оценку каждой проверки:
| Условие проверки | Оценка | Результат |
|---|---|---|
| Мобильные устройства, две разные сети | 0.7 и 0.9 | ◆ проходит |
| Chrome с активным профилем и входом в Google-аккаунт | 0.7 | ◆ проходит |
| Яндекс.Браузер с активным Google-аккаунтом | 0.9 | ◆ проходит |
| Яндекс.Браузер без Google-аккаунта, переход из поиска Яндекса | 0.1 | ✕ отказ |
| Firefox с активным Google-аккаунтом | 0.1 | ✕ отказ |
| Chrome со свежим профилем | 0.1 | ✕ отказ |
| Chrome с профилем, которым давно не пользовались | 0.3 | ✕ отказ |
За всеми этими проверками сидел живой человек и вручную заполнял одну и ту же форму. Оценку 0.1 получали не боты, а пользователи Firefox и владельцы чистых браузерных профилей.
Похоже, что reCAPTCHA v3 оценивает не поведение человека на странице, а то, сколько накопленных сигналов Google о нём есть: сторонние cookies, история активного аккаунта, возраст профиля. Firefox по умолчанию режет межсайтовое отслеживание — и его пользователь автоматически выглядит для капчи как робот.
Первое, что приходит в голову, — опустить порог с 0.5 до чего-нибудь помягче. Не поможет. Отказы приходятся на оценку 0.1, а это нижняя граница шкалы: чтобы их пропустить, порог надо опустить ровно туда, куда попадают и настоящие боты. Это уже не настройка капчи, а её отключение окольным путём.
Вторая ловушка — незаметность. Оценка каждой проверки нигде не хранится. Владелец сайта видит только то, что форма «работает», а отказ выглядит как случайный технический сбой на стороне посетителя. Без сверки аналитики с реальной базой заявок такую потерю можно не замечать месяцами.
Порядок одинаковый для любой CMS — Битрикс, WordPress, самописный движок:
Мы перевели формы на невидимую Yandex SmartCaptcha. Она бесплатна до 10 000 проверок в месяц, не требует у посетителя ни картинок, ни аккаунта, и не зависит от сигналов Google. После замены форма из Firefox проходит молча, а автоматический браузер получает задание с картинками — то есть защита работает именно в ту сторону, в которую должна.
Два момента, о которых стоит знать заранее. Виджет сам создаёт внутри своего контейнера скрытое поле с токеном — своё поле с тем же именем добавлять не нужно, иначе на сервер уйдёт дубль и проверка не пройдёт. А если вы прячете фирменный значок капчи, условия сервиса обязывают уведомить пользователя иначе: достаточно строчки со ссылкой под формой.
Капча — единственный элемент сайта, который по своей задаче кому-то отказывает. Поэтому её нельзя поставить и забыть: она обязана быть под тем же наблюдением, что и остальная воронка.
Если на вашем сайте стоит reCAPTCHA v3 и вы никогда не сверяли аналитику с базой заявок — начните с этой сверки. Мы проводим такую проверку форм в рамках технического аудита сайта: смотрим, доходит ли до вас всё, за что вы уже заплатили рекламой и позициями в поиске.