Главная/Безопасность/Капча и спам

Защита формы WordPress: как поставить капчу и остановить спам

Защита формы WordPress от спама строится на трёх слоях: капча или её замена (Cloudflare Turnstile, reCAPTCHA), скрытое поле-ловушка для ботов и модерация комментариев в настройках. Капча останавливает ботов на формах, но подбор пароля на входе не отменяет: для него нужен лимит попыток.

5 мин чтенияДанные проверены 20 октября 2026

Ответ за 30 секунд

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

Во всех тарифах Таймвеб почта на домене сайта с квотой 10 ГБ и неограниченным числом ящиков, SSL бесплатный (на 20 октября 2026).

Нужна ли вашей форме капча: ответьте на два вопроса

01 · 1 мин

Какую защиту формы WordPress выбрать: reCAPTCHA, Turnstile, скрытое поле или Akismet#

ВариантЧто видит посетительЧто нужно подключить
Google reCAPTCHAВ версии v2 флажок «Я не робот», в v3 ничего: сайт получает оценкуКлючи сайта и сервера, проверка ответа на сервере
Cloudflare TurnstileВиджет проверки на формеКлючи из панели Cloudflare, проверка токена на сервере
Yandex SmartCaptchaВиджет проверки на формеКлиентский и серверный ключи из Yandex Cloud
Скрытое полеНичегоПоле, невидимое человеку: бот его заполняет, и заявку отклоняют
AkismetНичегоПлагин и ключ, комментарии проверяет сервис

Все варианты защищают формы от автоматической отправки. На вход в консоль они действуют слабо: подбор паролей останавливает лимит попыток, а он описан в разборе защиты WordPress от взлома.

02 · 1 мин

Какие настройки комментариев в WordPress снижают спам без плагинов#

В разделе «Настройки → Обсуждение» четыре параметра работают без дополнительных плагинов:

  • Ручное одобрение комментариев: на сайте не появится ничего, что вы не проверили.
  • Требование иметь ранее одобренный комментарий: новый автор сначала проходит проверку, постоянный публикуется сразу.
  • Очередь для комментариев со ссылками: укажите число ссылок, начиная с которого комментарий попадает на проверку. У спама их обычно несколько.
  • Автоматическое закрытие обсуждений под старыми записями спустя заданное число дней.

Эти настройки работают вместе с капчей. Как устроены комментарии в блоге, описано на странице блог на WordPress.

Инструмент · 1 мин

Нужна ли вашей форме капча: ответьте на два вопроса#

Выберите форму и способ проверки, инструмент назовёт меры.

Какая защита подойдёт вашей форме

Два вопроса, и инструмент назовёт меры

Что вы защищаете
Чем проверять

04 · 2 мин

Как подключить Cloudflare Turnstile к комментариям WordPress без плагина#

  1. Создайте виджет Turnstile в панели Cloudflare, укажите домен сайта и скопируйте ключ сайта (site key) и секретный ключ (secret key).
  2. Впишите ключи в wp-config.php выше строки с wp-settings.php, так секретный ключ не попадёт в код темы.
  3. Добавьте код в functions.php дочерней темы или в собственный плагин.
  4. Проверьте работу: откройте запись в окне инкогнито и отправьте комментарий. Без пройденной проверки он не должен уйти.
define( 'TURNSTILE_SITE_KEY', 'ключ_сайта' );
define( 'TURNSTILE_SECRET_KEY', 'секретный_ключ' );

Теперь сам код для functions.php. Он подключает скрипт, выводит виджет в форме комментариев для гостей и проверяет токен перед сохранением комментария:

add_action( 'wp_enqueue_scripts', function () {
    if ( is_singular() ) {
        wp_enqueue_script( 'turnstile', 'https://challenges.cloudflare.com/turnstile/v0/api.js', array(), null, true );
    }
} );

add_action( 'comment_form_after_fields', function () {
    echo '<div class="cf-turnstile" data-sitekey="' . esc_attr( TURNSTILE_SITE_KEY ) . '"></div>';
} );

add_filter( 'preprocess_comment', function ( $data ) {
    if ( is_user_logged_in() || ! in_array( $data['comment_type'], array( '', 'comment' ), true ) ) {
        return $data;
    }
    $token = isset( $_POST['cf-turnstile-response'] ) ? sanitize_text_field( wp_unslash( $_POST['cf-turnstile-response'] ) ) : '';
    $reply = wp_remote_post( 'https://challenges.cloudflare.com/turnstile/v0/siteverify', array(
        'body' => array( 'secret' => TURNSTILE_SECRET_KEY, 'response' => $token ),
    ) );
    $result = is_wp_error( $reply ) ? array() : json_decode( wp_remote_retrieve_body( $reply ), true );
    if ( empty( $result['success'] ) ) {
        wp_die( 'Проверка не пройдена. Вернитесь назад и повторите отправку.', 'Проверка', array( 'back_link' => true ) );
    }
    return $data;
} );

Если тема выводит собственную форму без стандартных хуков, виджет не появится, и тогда проще поставить плагин. Перед правкой сохраните копию файла: опечатка даст белый экран или синтаксическую ошибку. Токен Turnstile действует 300 секунд и принимается один раз, повторная проверка вернёт ошибку timeout-or-duplicate (по документации Cloudflare на 20 октября 2026).

Для reCAPTCHA v2 с флажком меняются четыре значения, остальной код тот же:

Что меняетсяTurnstilereCAPTCHA v2
Скриптchallenges.cloudflare.com/turnstile/v0/api.jswww.google.com/recaptcha/api.js
Класс блокаcf-turnstileg-recaptcha
Поле с токеномcf-turnstile-responseg-recaptcha-response
Адрес проверкиchallenges.cloudflare.com/turnstile/v0/siteverifywww.google.com/recaptcha/api/siteverify

05 · 1 мин

Как защитить контактную форму и страницу входа в консоль#

Контактные формы обычно собирает плагин, поэтому капчу подключают в его настройках, а не кодом. Contact Form 7, например, имеет интеграцию с reCAPTCHA и проверяет заявки через Akismet. Выбор плагина описан в разборе плагинов WordPress.

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

06 · 1 мин

Вопросы о защите форм WordPress#

Нужна ли капча на форме входа WordPress?

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

Чем можно заменить reCAPTCHA на сайте WordPress?

Cloudflare Turnstile, российским сервисом Yandex SmartCaptcha, скрытым полем-ловушкой и фильтром Akismet для комментариев. Первые два работают как reCAPTCHA: ключи, виджет на форме и проверка токена на сервере.

Снижает ли капча число заявок с формы?

Любой лишний шаг может отпугнуть часть посетителей. Проверка reCAPTCHA v3 и скрытое поле не показывают посетителю ничего. Сравните число заявок до и после подключения.

Почему спам идёт на форму, где уже стоит капча?

Проверьте, что токен проверяется на сервере: виджет без проверки ответа бот обходит прямой отправкой формы. Спам от живых людей капча не остановит, от него помогает модерация.

Почему этому можно верить

Как мы проверяли

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

Источники цифр на этой странице: Виртуальный хостинг Таймвеб, timeweb.com/ru/services/hosting, проверено 20 октября 2026; Документация WordPress, ru.wordpress.org/support, проверено 20 октября 2026; Документация Cloudflare: Turnstile, проверка токена на сервере (siteverify), developers.cloudflare.com/turnstile/get-started/server-side-validation, проверено 20 октября 2026.

WBРедакция WPBase · обновлено 20 октября 2026

Разместите сайт на WordPress

Виртуальный хостинг Таймвеб от 316 ₽ в месяц: NVMe-диски, бесплатный SSL, домен .RU в подарок и 10 дней на тест.

  • Тарифы от 316 ₽ в месяц
  • Бесплатный SSL и DNS
  • Домен .RU или .РФ в подарок
  • Бесплатный перенос сайта
Подбор