Главная/Безопасность/Капча и спам
Защита формы WordPress: как поставить капчу и остановить спам
Защита формы WordPress от спама строится на трёх слоях: капча или её замена (Cloudflare Turnstile, reCAPTCHA), скрытое поле-ловушка для ботов и модерация комментариев в настройках. Капча останавливает ботов на формах, но подбор пароля на входе не отменяет: для него нужен лимит попыток.
Ответ за 30 секунд
Против спама в формах хватает связки: капча или Turnstile, скрытое поле и модерация. Токен проверяют на сервере: виджет без проверки ответа не защищает, бот отправит форму мимо него. Вход в консоль дополнительно закрывают лимитом попыток.
Во всех тарифах Таймвеб почта на домене сайта с квотой 10 ГБ и неограниченным числом ящиков, SSL бесплатный (на 20 октября 2026).
Нужна ли вашей форме капча: ответьте на два вопроса300 сживёт токен Turnstile
1 разтокен принимается сервером
3 слоязащиты форм от спама
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 без плагина#
- Создайте виджет Turnstile в панели Cloudflare, укажите домен сайта и скопируйте ключ сайта (site key) и секретный ключ (secret key).
- Впишите ключи в
wp-config.phpвыше строки сwp-settings.php, так секретный ключ не попадёт в код темы. - Добавьте код в
functions.phpдочерней темы или в собственный плагин. - Проверьте работу: откройте запись в окне инкогнито и отправьте комментарий. Без пройденной проверки он не должен уйти.
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 с флажком меняются четыре значения, остальной код тот же:
| Что меняется | Turnstile | reCAPTCHA v2 |
|---|---|---|
| Скрипт | challenges.cloudflare.com/turnstile/v0/api.js | www.google.com/recaptcha/api.js |
| Класс блока | cf-turnstile | g-recaptcha |
| Поле с токеном | cf-turnstile-response | g-recaptcha-response |
| Адрес проверки | challenges.cloudflare.com/turnstile/v0/siteverify | www.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 и скрытое поле не показывают посетителю ничего. Сравните число заявок до и после подключения.
Почему спам идёт на форму, где уже стоит капча?
Проверьте, что токен проверяется на сервере: виджет без проверки ответа бот обходит прямой отправкой формы. Спам от живых людей капча не остановит, от него помогает модерация.
Почему этому можно верить
Как мы проверяли
Источники цифр на этой странице: Виртуальный хостинг Таймвеб, 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.
Разместите сайт на WordPress
Виртуальный хостинг Таймвеб от 316 ₽ в месяц: NVMe-диски, бесплатный SSL, домен .RU в подарок и 10 дней на тест.
- Тарифы от 316 ₽ в месяц
- Бесплатный SSL и DNS
- Домен .RU или .РФ в подарок
- Бесплатный перенос сайта