Чтобы защитить формы на сайте от спама, используйте несколько слоёв: невидимую ловушку для ботов (honeypot), проверку времени заполнения и данных на сервере, ограничение частоты отправки и умную капчу вроде Yandex SmartCaptcha. Главное правило — защита должна мешать ботам, а не клиентам, поэтому после настройки обязательно проверьте конверсию формы.
Откуда берётся спам и чем он опасен
Спам в формах почти всегда отправляют программы, которые обходят сайты и заполняют всё, что похоже на форму. Им не нужен именно ваш сайт — они работают массово. Бывает и ручной спам: люди за небольшую плату вводят рекламу вручную, такой обойти сложнее.
Проблема не только в раздражении менеджеров:
- Теряются настоящие заявки — среди сотни мусорных писем легко пропустить клиента.
- Засоряется CRM, искажается аналитика: в Яндекс Метрике цель «Отправка формы» срабатывает на ботов, и реклама оптимизируется не на тех.
- Страдает почтовая репутация: если форма отправляет автоответ на указанный адрес, боты используют её для рассылки спама от вашего имени, и письма сайта начинают попадать в спам у получателей.
- Нагрузка на сервер и расход лимитов SMS или платных API, если форма их использует.

Слой 1. Невидимые проверки (honeypot и время)
Самый дружелюбный к людям способ. Посетитель ничего не замечает, а примитивные боты отсекаются.
Honeypot — поле-ловушка
В форму добавляется дополнительное поле, скрытое от людей с помощью CSS. Человек его не видит и не заполняет, а бот заполняет всё подряд. Если поле не пустое — заявка отклоняется. Важно:
- скрывайте поле через CSS, а не атрибутом type=»hidden» — такие поля боты часто пропускают;
- дайте полю правдоподобное имя, например «website» или «company_site»;
- добавьте атрибуты autocomplete=»off» и tabindex=»-1″, чтобы браузер не автозаполнил его и клавиатура не попала в него у реального посетителя.
Проверка времени заполнения
Человек не может заполнить форму за полсекунды после загрузки страницы. Сервер запоминает время показа формы и отклоняет отправки, пришедшие слишком быстро (например, быстрее 2–3 секунд). Порог подбирайте осторожно: автозаполнение браузера ускоряет людей.
Слой 2. Проверка на сервере
Всё, что проверяется только в браузере с помощью JavaScript, бот обходит, отправляя запрос напрямую. Поэтому валидация на сервере обязательна.
- Формат данных: телефон — только цифры и допустимые символы нужной длины, email — корректный формат, имя — без ссылок.
- Запрет ссылок в полях, где их не должно быть. Большинство спам-сообщений содержит URL.
- Стоп-слова — список типичных слов и доменов из спама. Работает, но требует обновления.
- Язык: если бизнес работает в России, а сообщение целиком на иностранном языке, его можно не удалять, а помечать как подозрительное.
- Одноразовый токен (CSRF) в форме — отсекает отправки без загрузки страницы.
Слой 3. Ограничение частоты
Настройте лимит: не больше нескольких отправок с одного IP-адреса за определённое время. Это останавливает массированные атаки. На уровне сервера nginx это делается модулем limit_req, в WordPress — плагинами безопасности. Если сайт находится за сервисом защиты от DDoS, у многих из них есть готовые правила для ботов.
Слой 4. Капча — когда без неё никак
Если спам идёт сквозь первые три слоя, подключайте капчу. Для сайтов, ориентированных на Россию, практичный выбор — Yandex SmartCaptcha: сервис Яндекс Облака, который в большинстве случаев пропускает человека после простого клика по чекбоксу, а задание показывает только подозрительным посетителям. Есть и невидимый режим. Сервис платный по количеству проверок, но у него есть бесплатный лимит — актуальные условия смотрите на сайте Яндекс Облака.
| Способ | Видно посетителю | Против каких ботов | Влияние на конверсию |
|---|---|---|---|
| Honeypot | Нет | Простые, массовые | Никакого |
| Проверка времени | Нет | Простые | Минимальное при правильном пороге |
| Серверная валидация и стоп-слова | Только при ошибке | Ссылочный спам | Минимальное |
| Лимит частоты | Нет | Массовые атаки | Никакого |
| SmartCaptcha (чекбокс/невидимая) | Иногда | Продвинутые | Небольшое |
| Капча с картинками всегда | Да | Продвинутые | Заметное |
Старые капчи с искажёнными буквами лучше не использовать: они раздражают людей и плохо останавливают современных ботов.
Настройка на популярных платформах
WordPress
- Contact Form 7 — поддерживает honeypot через дополнительный плагин, есть встроенный механизм фильтрации по стоп-словам и интеграции с сервисами капчи; для SmartCaptcha есть сторонние плагины.
- Комментарии — если они не нужны, отключите их полностью в «Настройки» → «Обсуждение». Это самый частый вход для спама на WordPress.
- Регистрация пользователей — отключите, если не используется.
1С-Битрикс
В модуле «Веб-формы» есть встроенная капча, а в модуле «Проактивная защита» — фильтры и ограничения. Для современных сценариев SmartCaptcha подключается через готовые решения из Маркетплейса Битрикса или доработкой шаблона.
Tilda
В настройках формы есть встроенная защита от спама, а часть проверок платформа выполняет сама. Если спам всё равно идёт, проверьте, не опубликован ли адрес вебхука или приёма заявок в открытом виде, и ограничьте поля формы по формату.
Не сломайте конверсию
Самая дорогая ошибка — перестараться. Бывает, что после установки капчи спам исчез, но и заявок стало меньше, а никто этого не заметил. Чтобы этого не случилось:
- Зафиксируйте количество заявок и конверсию формы в Яндекс Метрике за 2–4 недели до изменений.
- Настройте цель на успешную отправку формы (после серверной проверки), а не на клик по кнопке.
- После внедрения сравните показатели. Посмотрите записи Вебвизора: не спотыкаются ли люди на капче.
- Проверьте формы с телефона и с включённым блокировщиком рекламы.
- Не удаляйте подозрительные заявки молча — складывайте их в отдельную папку или статус в CRM и просматривайте раз в неделю.
Если спама нет, а заявок всё равно мало, дело не в ботах. Разобраться поможет статья «Трафик есть, заявок нет».
Пошаговый план внедрения
Если спам уже идёт, не включайте всё сразу. Двигайтесь от невидимых мер к заметным и после каждого шага смотрите на результат неделю:
- Уберите лишние формы и поля: отключите неиспользуемые комментарии, регистрацию, старые формы на забытых страницах.
- Включите honeypot и проверку времени заполнения.
- Добавьте серверную валидацию телефона и email, запрет ссылок в полях.
- Настройте лимит отправок с одного IP.
- Отключите автоответ на адрес из формы или уберите из него произвольный текст посетителя, чтобы форму нельзя было использовать для рассылки.
- Только если спам продолжается — подключите SmartCaptcha, начиная с невидимого режима.
Такой порядок позволяет понять, какая мера реально сработала, и не добавлять лишних барьеров для клиентов.
Отдельно о персональных данных
Форма, собирающая имя и телефон, обрабатывает персональные данные. Рядом с ней должно быть согласие на обработку и ссылка на политику конфиденциальности. Если вы подключаете внешний сервис проверки, он тоже получает данные о посетителе — учтите это в политике. Для российских сайтов удобно, что SmartCaptcha работает на инфраструктуре в России.
Частые вопросы
Почему спам идёт, хотя капча стоит?
Причин несколько: капча проверяется только в браузере, а на сервере её ответ не сверяется; боты отправляют данные напрямую на обработчик формы; спам вводят люди вручную. Проверьте серверную валидацию токена капчи и добавьте фильтрацию по содержимому.
Можно ли обойтись вообще без капчи?
Для многих сайтов малого бизнеса — да. Honeypot, проверка времени, серверная валидация и лимит отправок отсекают основную массу автоматического спама. Капчу стоит добавлять, только если этих мер не хватило, и начинать с невидимого режима.
Спам приходит в CRM напрямую, минуя сайт. Что делать?
Скорее всего, где-то в коде страницы опубликован адрес вебхука или API-ключ, и боты отправляют данные прямо туда. Смените ключ, перенесите отправку в CRM на сервер сайта, чтобы адрес интеграции не был виден в браузере.
Спам-заявки портят статистику рекламы. Как быть?
Перенастройте цель в Метрике на успешную серверную отправку, а в CRM помечайте мусорные заявки. Если используете сквозную аналитику или офлайн-конверсии, передавайте в рекламные системы только квалифицированные лиды — так автостратегии Директа перестанут учиться на ботах.
Pear Advert настроит многослойную защиту форм без ущерба для заявок в рамках поддержки сайта, а если нужно навести порядок с целями и потоком заявок — поможет сквозная аналитика и корректная интеграция с CRM.

