Contact Form 7 не имеет встроенной защиты, поэтому спам в форме — вопрос времени. Самое популярное решение — поставить капчу. Ниже разберём, как поставить капчу для Contact Form 7 WordPress всеми рабочими способами: reCAPTCHA v2 и v3 от Google и Яндекс SmartCaptcha, с пошаговой настройкой. А затем честно покажем, почему капча закрывает не весь спам и чем её эффективнее заменить.
Капча для Contact Form 7 WordPress: способы подключения
Своей капчи у Contact Form 7 нет — она добавляется отдельным плагином-интеграцией. Есть два основных направления: reCAPTCHA от Google и Яндекс SmartCaptcha для российской аудитории. Разберём оба.
reCAPTCHA для Contact Form 7
reCAPTCHA — самый распространённый вариант. Для Contact Form 7 captcha этого типа ставится несколькими популярными плагинами.
Плагин Contact Form 7 Image Captcha
Простейший вариант без ключей и регистраций: пользователь выбирает одну из простых картинок. Порядок:
- Установите плагин Contact Form 7 Image Captcha в разделе «Плагины → Добавить новый» и активируйте.
- В разделе Contact Form 7 → Контактные формы на вкладке «Шаблон формы» вставьте шорткод
[cf7ic]перед тегом[submit]. - Чтобы капча появлялась только при взаимодействии с формой, используйте
[cf7ic "toggle"]. - Сохраните форму.
Плагин CF7 Simple Recaptcha (reCAPTCHA v2)
Для классической «Я не робот» нужны ключи Google:
- Установите и активируйте плагин Contact Form 7 Captcha (CF7 Simple Recaptcha).
- Зайдите в консоль reCAPTCHA (google.com/recaptcha/admin), укажите ярлык, выберите тип reCAPTCHA v2, впишите домен и примите условия.
- Скопируйте ключ сайта и секретный ключ.
- В WordPress откройте Настройки → CF7 Simple Recaptcha и вставьте оба ключа, задайте текст ошибки.
- В шаблон формы перед
[submit]добавьте шорткод[cf7sr-simple-recaptcha]и сохраните.
Плагин CAPTCHA 4WP (reCAPTCHA v2 и v3)
Более гибкий вариант с выбором версии, включая невидимую v3, которая не требует действий пользователя:
- Установите CAPTCHA 4WP (Advanced noCaptcha & invisible captcha).
- Получите ключи в консоли reCAPTCHA, выбрав нужную версию (например, v3).
- Внесите ключи в Настройки → CAPTCHA 4WP.
- В шаблон формы вставьте шорткод
[anr_nocaptcha g-recaptcha-response]и сохраните.
Яндекс капча Contact Form 7: подключение SmartCaptcha
Для сайтов с российской аудиторией reCAPTCHA не всегда удобна: это сервис Google, и его стабильность в РФ не гарантирована. Альтернатива — Яндекс SmartCaptcha: связку «яндекс капча Contact Form 7» тоже можно подключить через плагин-интеграцию. Общий порядок:
- Зарегистрируйте сайт в консоли Яндекс SmartCaptcha и получите клиентский и серверный ключи.
- Установите плагин интеграции Contact Form 7 с Яндекс SmartCaptcha.
- Впишите оба ключа в настройки плагина.
- Добавьте шорткод капчи в шаблон формы и сохраните.
Важное преимущество Яндекс SmartCaptcha — серверная валидация токена через API Яндекса: результат проверки нельзя подменить на стороне браузера. Это надёжнее клиентских капч. Но, как мы увидим ниже, и у серверной капчи в форме остаётся общее слабое место всех капч.
Почему капча не закрывает весь спам в Contact Form 7
Любая капча — reCAPTCHA или Яндекс — встраивается в форму и рассчитана на посетителя, который открыл страницу в браузере. Отсюда две проблемы, из-за которых спам просачивается даже с настроенной капчей.
1. Прямой запрос в обход формы
Многие спам-боты не открывают вашу страницу вообще. Они шлют POST-запрос напрямую на обработчик формы Contact Form 7. В этот момент капча в браузере не отрисована, клиентский скрипт не выполнен — проверять нечего. Клиентская reCAPTCHA такой запрос не видит; серверная Яндекс-капча отсечёт его только при отсутствии валидного токена, но сам факт обращения к обработчику и нагрузка на сайт остаются.
2. Капча бьёт по живым посетителям
Капча показывается всем, включая реальных клиентов. Кто-то не распознаёт картинки, кто-то через VPN получает бесконечные проверки, кто-то просто закрывает форму. Для формы заявок это прямая потеря лидов — вы отсеиваете ботов ценой части живых обращений.
Лучшее решение: фильтрация на входе вместо капчи
Логичнее не заставлять каждого посетителя проходить проверку, а отсекать ботов до формы, по источнику запроса. Именно так работает плагин Анти Бот — и в задаче защиты Contact Form 7 он эффективнее капчи по нескольким причинам:
- Закрывает прямой запрос в обход формы. Проверка идёт на уровне запроса, а не разметки, поэтому бот, бьющий напрямую по обработчику Contact Form 7, отсекается там, где клиентская капча бессильна, — и до создания нагрузки, а не после.
- Живые посетители не видят капчи. Никаких картинок и галочек для обычных пользователей — форма отправляется в один клик, конверсия не падает. Проверка (слайд-пазл) показывается только подозрительному трафику.
- Блокировка по странам и сетям (ASN). Массовый спам с хостингов и дата-центров режется целыми сетями ещё на подступах — капча так не умеет, она реагирует на каждую отправку по отдельности.
- Работает для всех форм сразу. Не нужно вставлять шорткод в каждую форму: фильтр на входе защищает весь сайт, включая Contact Form 7, комментарии и регистрации.
- Локально и без зависимости от Google. Анти Бот работает внутри WordPress, без передачи данных на зарубежные облака.
При этом капчу и Анти Бот можно совмещать: фильтр на входе снимает основную массу ботов и закрывает прямой обход, а капча (та же Яндекс SmartCaptcha) остаётся на форме вторым рубежом, если он нужен. Но для большинства сайтов фильтрации на входе достаточно, чтобы убрать спам без единой капчи для живых людей.
Что выбрать
- Нужна капча именно на форме — Яндекс SmartCaptcha с серверной проверкой вместо reCAPTCHA.
- Важна конверсия, капча раздражает клиентов — фильтрация на входе (Анти Бот) без капчи для обычных посетителей.
- Спам идёт даже с настроенной капчей — это прямой запрос в обход формы, тогда Анти Бот.
- Много форм на сайте — фильтр на входе защищает все сразу, без шорткода в каждой форме, выбираем Анти Бот.
Частые вопросы
Как поставить капчу на Contact Form 7?
Установите плагин капчи для Contact Form 7 (например, CF7 Simple Recaptcha для reCAPTCHA или плагин с Яндекс SmartCaptcha), получите ключ сайта и секретный ключ в консоли выбранного сервиса, впишите их в настройки плагина, а затем добавьте шорткод капчи в шаблон формы перед тегом [submit]. После сохранения проверка появится в форме.
Какая капча лучше для Contact Form 7 — reCAPTCHA или Яндекс?
reCAPTCHA от Google распространённее и проще в подключении, но это внешний сервис Google, а его доступность в России не гарантирована. Яндекс SmartCaptcha — российский вариант с серверной проверкой токена через API Яндекса, что для локальных сайтов надёжнее и по доступности, и по защите от обхода на клиенте. Выбор зависит от аудитории.
Почему спам в Contact Form 7 идёт даже с капчей?
Потому что клиентская капча (галочка, картинки) рендерится в браузере, а часть ботов отправляет данные напрямую на обработчик формы, минуя страницу. Капчи в этом запросе просто нет. Такой спам останавливается не капчей в форме, а фильтрацией запроса на входе — по стране, сети и IP.
Можно ли защитить Contact Form 7 без капчи?
Да. Фильтрация трафика на входе определяет ботов по источнику и не пускает их до формы, поэтому живым посетителям капча не показывается вообще. Проверка (слайд-пазл) включается только для подозрительных запросов. Так работает плагин Анти Бот — это защита формы без капчи для обычных пользователей.
Капча в Contact Form 7 снижает конверсию?
Да, заметно. Каждая проверка — барьер: часть посетителей не проходит картинки, кто-то через VPN получает лишние проверки, кто-то уходит. Для формы заявок это прямые потери лидов. Фильтрация на входе этого лишена, потому что не трогает реальных пользователей.
Итог
Капчу для Contact Form 7 поставить несложно: reCAPTCHA через CF7 Simple Recaptcha или CAPTCHA 4WP, либо Яндекс SmartCaptcha для российской аудитории — везде принцип один: ключи из консоли сервиса и шорткод в форму. Капча снизит спам, но встраивается в форму и потому не видит запросов в обход браузера, а живых посетителей нагружает лишними проверками.
Если цель — убрать спам в Contact Form 7 и при этом не терять клиентов на капче, эффективнее фильтровать трафик на входе. Как это устроено — на странице Анти Бот для WordPress: проверка только для подозрительных, блокировка по странам, сетям и IP, защита всех форм сразу без капчи для реальных посетителей.