Я Максим, веб-разработчик. На большинстве сайтов формы защищают гугловской reCAPTCHA по привычке. Но в российском проекте это спорное решение: reCAPTCHA — сервис Google, она грузит сторонние скрипты, отправляет данные за рубеж и нестабильно работает у части аудитории. При этом спам в формах никуда не девается. Разбираю, чем заменить reCAPTCHA и как защитить формы так, чтобы и боты не лезли, и живые клиенты не страдали.
Чем плоха reCAPTCHA на российском сайте
- это скрипт Google, который грузится с зарубежных серверов и может не загрузиться у части пользователей;
- она отправляет данные о посетителе в Google — тот же сюжет, что с запретом зарубежной аналитики и пикселей;
- иногда мучает живых людей бесконечными «выберите светофоры», роняя конверсию;
- это зависимость от иностранного сервиса, который завтра может стать недоступен.
Yandex SmartCaptcha — российская замена
Главная прямая альтернатива. SmartCaptcha от Яндекса:
- работает на российской инфраструктуре, стабильно грузится в России;
- в большинстве случаев проверяет посетителя незаметно, без головоломок;
- не тащит на сайт скрипты Google.
Для публичных форм, по которым реально идёт спам — обратная связь, регистрация, комментарии, — это понятная замена reCAPTCHA один в один.
Способы защиты без капчи вообще
Часто капча и не нужна — есть тихие методы, которые не видит пользователь:
- honeypot-поле — скрытое поле, невидимое человеку; бот его заполняет, и заявка отсекается. Просто и эффективно против массовых ботов;
- проверка времени заполнения — человек не отправляет форму за полсекунды; слишком быстрые отправки режутся;
- лимиты по IP и частоте — один адрес не шлёт пятьдесят заявок в минуту;
- подпись или токен формы — форма принимается, только если её реально открывали на вашем сайте;
- серверная валидация — проверка данных на бэкенде, а не только в браузере.
Эти методы работают незаметно и закрывают большую часть спама без единой капчи.
Как сочетать
Мой подход — слоями, от незаметного к явному:
- сначала тихие методы: honeypot, проверка времени, серверная валидация, лимиты;
- если спам пробивается на конкретной форме — добавляете SmartCaptcha именно туда;
- капчу ставите точечно, на проблемные публичные формы, а не на каждую форму подряд.
Так живой клиент в большинстве случаев вообще не видит препятствий, а боты упираются в защиту.
Чего не делать
- не ставьте reCAPTCHA по инерции на российском сайте — лишние скрипты Google и риск;
- не вешайте тяжёлую капчу на каждую форму — конверсия просядет;
- не полагайтесь только на клиентскую проверку: бот шлёт данные напрямую, минуя ваш JavaScript, поэтому серверная валидация обязательна;
- не забывайте про доступность: капча не должна отрезать людей со скринридерами.
Чек-лист
- Уберите Google reCAPTCHA с форм российского сайта.
- Включите тихие методы: honeypot, проверка времени, лимиты по IP.
- Добавьте серверную валидацию всех форм.
- На проблемные публичные формы поставьте Yandex SmartCaptcha.
- Не вешайте капчу на формы, где спама нет.
- Проверьте доступность защиты для людей со скринридерами.
Мой совет
Спам с форм лечится слоями, и капча здесь крайний слой, к которому переходят, когда тихих методов не хватило. Honeypot, лимиты и серверная проверка убирают большую часть ботов незаметно для клиента. Если этого мало — ставьте российскую SmartCaptcha точечно, а не гугловскую reCAPTCHA на весь сайт. Нужно убрать reCAPTCHA и настроить защиту форм без потери конверсии — пишите.
