Skip to content

Всё для WordPress, веб-разработки — и не только

🚫 Как остановить спам из Contact Form 7 в WordPress

🚫 Как остановить спам из Contact Form 7 в WordPress

Форма обратной связи завалена спамом? Десятки пустых отправок в день забивают почту, а реальные заявки клиентов теряются в мусоре.

Contact Form 7, самый популярный бесплатный плагин контактных форм для WordPress, свыше 5 миллионов активных установок. Популярность сделала его целью №1 для спам-ботов: те находят сайты на WordPress, вычисляют стандартный url формы и заливают автоматические отправки тысячами.

Спам-сообщения в интерфейсе контактной формы WordPress

Закрывать форму или ставить громоздкую CAPTCHA не обязательно. Ниже — пять рабочих методов, от встроенных функций CF7 до специализированных плагинов. Ни один не требует кода: всё настраивается через админку за 10-15 минут.

💡 Быстрый обзор:

  • Включаем встроенную викторину CF7, боты не умеют отвечать на вопросы
  • Настраиваем минимальную длину сообщения, отсекаем односложный спам
  • Подключаем Akismet, умная фильтрация на основе глобальной базы спамеров
  • Устанавливаем CF7 Apps с honeypot-ловушкой, скрытое поле, которое видят только боты
  • Крайний случай, Really Simple CAPTCHA: простая, но морально устаревшая защита

1. Встроенная викторина Contact Form 7

Самый недооценённый, но эффективный способ. CF7 позволяет добавить к форме тег [quiz], простой вопрос, ответ на который знает любой человек, но не знает бот.

Работает так: вы задаёте вопрос вроде «Сколько будет три плюс четыре?» или «Какой сейчас год?», указываете правильный ответ через вертикальную черту. Если посетитель отвечает неверно, форма не отправляется.

1[quiz math-test "Сколько будет три плюс четыре?|7"]

Боты не парсят контекст вопроса, они просто заполняют поля и жмут «Отправить». Викторина ломает эту логику полностью.

Плюсы: бесплатно, работает из коробки, не замедляет сайт, не добавляет плагинов. Минус один: теоретически целенаправленный бот под конкретный сайт можно натренировать на ответ. Но для подавляющего большинства сайтов это избыточный сценарий, спамеры не тратят время на ручной обход одного блога.

2. Минимальная и максимальная длина сообщения

Результаты опроса о методах борьбы со спамом в CF7

Значительная часть автоматического спама, это короткие сообщения из двух-трёх слов или вообще одного числа. Логика спамеров проста: залить как можно больше форм за минимальное время. Тратить ресурсы на генерацию осмысленного текста nobody не будет.

CF7 поддерживает параметры minlength и maxlength прямо в шорткоде поля:

1[textarea your-message minlength:20 maxlength:500]

Двадцать символов, безопасный минимум: реальный клиент пишет «Здравствуйте, интересует стоимость доставки», бот шлёт «12345» или «Buy now cheap». Всё, что короче 20 знаков, отсекается до отправки.

Параметр maxlength одновременно защищает и от другого вектора: сверхдлинных сообщений, куда боты вставляют тысячи ключевых слов для SEO-спама. Пятьсот символов покрывают любой нормальный запрос, но режут простыни.

Здесь нет недостатков, метод стоит включить всегда, независимо от остальных.

3. Akismet, умная фильтрация спама

clipboard 2026 06 22T18 19 17

Akismet, это облачный антиспам-сервис от Automattic (команды WordPress). Он анализирует содержимое отправки, сверяет с глобальной базой известных спамеров и принимает решение за миллисекунды. По данным самого сервиса, Akismet блокирует 99.8% спама на сайтах WordPress.

Не все знают, что Akismet работает не только с комментариями, но и с Contact Form 7. После установки плагина и активации API-ключа (бесплатно для некоммерческих сайтов) нужно добавить небольшую интеграцию, Akismet автоматически проверяет поля формы CF7 на спам-паттерны.

В реальных тестах на сайте с высоким трафиком Akismet в одиночку снизил поток спама примерно на две трети. Оставшаяся треть добивается комбинацией с викториной и минимальной длиной, и на выходе получается практически ноль паразитных отправок без единой CAPTCHA.

🔗 Akismet на WordPress.org

4. CF7 Apps: Honeypot и hCaptcha в одном плагине

clipboard 2026 06 22T18 19 29

Классический Contact Form 7 Honeypot вырос в комбайн CF7 Apps, модульный плагин, который добавляет в CF7 несколько функций одновременно. Нас интересуют две из них.

Honeypot, скрытое поле-ловушка. В форму добавляется невидимый для человека input, стилизованный через CSS так, что реальный посетитель его не видит и не заполняет. Бот же парсит HTML-код, находит поле и заполняет, на этом и попадается. Плагин видит заполненный honeypot и блокирует отправку.

Добавляется одним шорткодом:

1[honeypot honeypot-837]

Цифры в названии можно менять, это усложняет жизнь ботам, которые учатся обходить стандартные имена полей.

hCaptcha, современная альтернатива reCAPTCHA, не собирающая данные пользователей. После получения ключей на сайте hCaptcha ставится одной галочкой в настройках CF7 Apps, и на форме появляется виджет, который большинство реальных посетителей даже не замечают.

Обе функции работают независимо: можно включить только honeypot, только hCaptcha или обе сразу. Плагин активно обновляется (последняя версия, 2026 год), в отличие от многих конкурентов.

🔗 CF7 Apps на WordPress.org

5. Really Simple CAPTCHA, запасной вариант

clipboard 2026 06 22T18 19 51

Really Simple CAPTCHA создан тем же разработчиком, что и Contact Form 7, поэтому два плагина работают в связке без конфликтов. Он генерирует простую картинку с кодом, который нужно ввести для отправки формы.

Подключение простое: ставите плагин, добавляете тег [captchac] в форму CF7, и всё работает.

Однако у этого способа есть нюансы. Во-первых, плагин давно не получал крупных обновлений и официально не тестировался с последними версиями WordPress, хотя пользователи подтверждают работу вплоть до WP 6.9. Во-вторых, ему нужна библиотека GD + FreeType на сервере, которая может отсутствовать на дешёвых хостингах. В-третьих, CAPTCHA с текстом ощутимо раздражает пользователей, часть реальных посетителей просто уходит, не заполнив форму.

Мы рекомендуем пробовать Really Simple CAPTCHA только если первые четыре метода не дали результата. В большинстве случаев комбинации викторины, минимальной длины и Akismet достаточно.

🔗 Really Simple CAPTCHA на WordPress.org

Что сработало в нашем случае

Один из клиентов обратился с проблемой: форма Contact Form 7 на сайте с посещаемостью около 10 000 уникальных посетителей в месяц собирала десятки спам-отправок ежедневно. Мы действовали поэтапно:

  • Установили Akismet, спам сократился с нескольких десятков до 5-10 сообщений в день.
  • Добавили викторину [quiz] с вопросом «Сколько будет два плюс два?», остались единичные проскоки.
  • Включили minlength:20 для поля сообщения, спам исчез полностью.

Комбинация трёх методов без единой CAPTCHA решила проблему за полчаса работы. Ни один реальный клиент не пожаловался на неудобство, они даже не заметили изменений, потому что викторина выглядит естественно, а лимит в 20 символов незаметен для нормального общения.

Если вы только начинаете бороться со спамом, поставьте Akismet как первый рубеж. Это самое мощное автономное решение, которому не нужны ни honeypot, ни капча для базовой защиты. А дальше наращивайте слои по мере необходимости, методом проб и ошибок, отслеживая статистику спама после каждого изменения.

⁉️🤔 Частые вопросы

Почему не использовать Google reCAPTCHA?

reCAPTCHA v2 с выбором светофоров и мостов действительно блокирует ботов, но ценой пользовательского опыта. По данным исследований юзабилити-лабораторий, каждый пятый посетитель уходит с формы, увидев капчу. reCAPTCHA v3 работает невидимо, но требует интеграции через дополнительный плагин для CF7 и имеет проблемы с ложными срабатываниями. Встроенная викторина CF7 решает ту же задачу без внешних сервисов. Мы не используем reCAPTCHA там, где хватает викторины CF7 и honeypot, викторина не нагружает сайт внешними запросами к Google и не собирает данные посетителей. Для проектов, где принципиален Google-антиспам, есть отдельные плагины-мосты в каталоге WordPress.

Можно ли обойтись одним методом?

Зависит от объёма спама. Сайт с низкой посещаемостью часто обходится одним Akismet или одной викториной. Сайт с тысячами посетителей в день почти наверняка потребует комбинации из 2-3 методов, спамеры используют облачные фермы ботов, и то, что остановило одного, другой обойдёт.

На практике мы начинаем с Akismet. Если поток спама падает до приемлемого уровня, останавливаемся. Если нет, добавляем викторину. Если и этого мало, honeypot через CF7 Apps. Постепенное наращивание лучше установки пяти плагинов разом, каждый новый слой имеет смысл только когда предыдущего недостаточно.

Чем CF7 Apps лучше старого Contact Form 7 Honeypot?

Старый плагин Contact Form 7 Honeypot делал ровно одно: добавлял скрытое поле. CF7 Apps, его современный наследник от активного разработчика Saad Iqbal. Кроме honeypot он умеет hCaptcha, сохранение заявок в базу, редиректы после отправки, вебхуки и интеграцию с ACF, всё в одном плагине.

Все модули независимы: включили только honeypot, он и работает, без лишнего кода. Плагин обновляется в 2026 году и совместим с актуальными версиями WordPress, в отличие от старого сингл-функционального Honeypot, который больше не поддерживается.

Нужно ли устанавливать все пять методов сразу?

Нет, и мы не рекомендуем этого делать. Каждый лишний плагин замедляет сайт и добавляет вектор отказа. Начните с одного-двух методов, отслеживайте результат неделю, затем принимайте решение о добавлении следующего слоя.

Минимальный стек для большинства сайтов: Akismet + минимальная длина сообщения. Этого достаточно в абсолютном большинстве случаев. Викторину добавляем когда спам продолжает приходить несмотря на Akismet. Honeypot, если боты научились обходить викторину (редкий сценарий). CAPTCHA, только когда ничего другое не помогло.

Что делать если спам продолжается несмотря ни на что?

Проверьте, не идёт ли спам в обход CF7: некоторые темы и плагины добавляют собственные формы обратной связи, которые CF7 не контролирует. Также исключите ручной спам, если сообщения осмысленные и тематические, но рекламные, это живые люди, против которых технические методы бессильны.

В крайнем случае рассмотрите смену плагина форм. Gravity Forms и WPForms имеют более агрессивные встроенные антиспам-механизмы и официальную поддержку Google reCAPTCHA из коробки, без дополнительных плагинов.

Какой метод защиты от спама выбрать

Выбор зависит от одного параметра, объёма паразитного трафика на конкретном сайте. Общей «серебряной пули» нет: сайт-визитка с тремя страницами и форум на тысячу пользователей требуют разного уровня защиты.

Если вы только начинаете, включите Akismet и настройте минимальную длину сообщения (minlength:20). Эти два шага занимают десять минут и отсекают основную массу автоматического спама без единой капчи и жалоб пользователей.

Спам продолжается после Akismet, добавьте викторину [quiz]. Боты не отвечают на вопросы, люди отвечают не задумываясь. Третий рубеж, CF7 Apps с honeypot-ловушкой: скрытое поле, о котором реальный посетитель не знает.

И помните: каждый новый плагин, это компромисс между безопасностью и скоростью сайта. Наращивайте защиту постепенно, отсекая спам слой за слоем. Идеальная конфигурация та, где спама ноль, а посетитель даже не догадывается, что форма как-то защищена.