Спам — одна из самых распространённых проблем для владельцев WordPress-сайтов, особенно если у вас активно работают комментарии, формы обратной связи или регистрация пользователей. В этой статье разберёмся, как можно эффективно защитить сайт от спама с помощью проверенных плагинов, а также покажем, как написать собственные решения на PHP для дополнительной фильтрации.
Почему спам проблема для WordPress
Спам-комментарии и сообщения не только портят внешний вид сайта и могут снизить доверие посетителей, но и нагружают базу данных, замедляя работу ресурса. Кроме того, спам может содержать вредоносные ссылки, что опасно для SEO и безопасности.
Из-за популярности WordPress спамеры часто нацеливаются именно на эти сайты, используя автоматические боты для массовой рассылки сообщений.
Чтобы эффективно бороться со спамом, необходимо использовать многоуровневый подход, комбинируя плагины, настройки и собственные фильтры.
Использование плагинов для борьбы со спамом в WordPress
Akismet Anti-Spam — классика жанра
Akismet — один из самых известных плагинов для фильтрации спам-комментариев. Он автоматически проверяет все комментарии и фильтрует подозрительные, отправляя их в папку спама.
Для установки:
- Перейдите в админ-панель WordPress → Плагины → Добавить новый.
- Найдите «Akismet» и установите плагин.
- Активируйте и настройте ключ API (бесплатно для личных сайтов).
Akismet хорошо подходит для комментариев, но не всегда эффективно справляется с формами обратной связи.
Antispam Bee — альтернатива без API
Antispam Bee — бесплатный плагин, который не требует регистрации и API-ключей. Он фильтрует комментарии на основе различных алгоритмов и настроек.
Преимущества:
- Работает локально без отправки данных на сторонние сервисы.
- Поддерживает проверку IP и языков.
- Легко настраивается.
Для установки и настройки достаточно активировать плагин и выбрать нужные опции в настройках.
Google reCAPTCHA для форм и комментариев
Интеграция reCAPTCHA помогает блокировать ботов при отправке форм и регистрации. В WordPress есть несколько плагинов, например, WP-reCAPTCHA или Invisible reCAPTCHA.
Чтобы настроить:
- Зарегистрируйтесь в Google reCAPTCHA, получите сайт-ключ и секретный ключ.
- Установите и активируйте плагин reCAPTCHA.
- В настройках введите ключи и выберите, где показывать капчу (комментарии, формы, регистрация).
Это значительно снижает количество спам-ботов.
Кодовые решения для дополнительной защиты от спама
Кроме плагинов, можно внедрить собственные фильтры и проверки, чтобы повысить качество защиты.
Создание простого фильтра комментариев по ключевым словам
Ниже пример функции, которая автоматически помечает комментарии как спам, если в них есть запрещённые слова или ссылки.
function wpmail_filter_spam_comment( $commentdata ) {
$blacklist = array('viagra', 'casino', 'http://', 'https://');
foreach ( $blacklist as $badword ) {
if ( stripos( $commentdata['comment_content'], $badword ) !== false ) {
add_filter( 'pre_comment_approved', fn() => 'spam' );
break;
}
}
return $commentdata;
}
add_filter( 'preprocess_comment', 'wpmail_filter_spam_comment' );Этот код следует добавить в файл functions.php вашей темы или в плагин для кастомных функций. Он проверяет содержимое комментария и блокирует его, если найдено слово из списка.
Добавление скрытого поля «мёда» для ловли ботов
Техника «honeypot» заключается в добавлении скрытого поля в форму, которое видят только боты. Если поле заполнено — это спам.
Пример для формы комментариев:
function wpmail_add_honeypot_field() {
echo '<p style="display:none;"><label>Оставьте это поле пустым<input type="text" name="wpmail_honeypot" value="" /></label></p>';
}
add_action( 'comment_form_logged_in_after', 'wpmail_add_honeypot_field' );
add_action( 'comment_form_after_fields', 'wpmail_add_honeypot_field' );
function wpmail_check_honeypot_field( $commentdata ) {
if ( ! empty( $_POST['wpmail_honeypot'] ) ) {
wp_die( 'Ошибка: подозрение на спам.' );
}
return $commentdata;
}
add_filter( 'preprocess_comment', 'wpmail_check_honeypot_field' );Добавляя такое поле, вы ловите ботов, которые автоматически заполняют все поля формы.
Советы для уменьшения спама на сайте
Ограничьте возможность комментирования
Если у вас много спама, можно ограничить комментирование только зарегистрированными пользователями. Для этого в настройках WordPress выберите Настройки → Обсуждение и отметьте «Пользователи должны быть зарегистрированы и авторизованы для комментирования».
Используйте черные списки и фильтрацию IP
В настройках «Обсуждение» можно добавить слова и IP-адреса, которые будут автоматически блокироваться. Это поможет остановить повторяющихся спамеров.
Регулярно обновляйте WordPress и плагины
Обновления часто содержат исправления безопасности, которые помогут не только от спама, но и от других угроз.
Подводим промежуточные итоги
Чтобы эффективно бороться со спамом, рекомендуем сочетать:
- Плагины Akismet или Antispam Bee для автоматической фильтрации.
- Капчу Google reCAPTCHA для форм.
- Кодовые решения, например, фильтрацию по ключевым словам и «honeypot».
- Ограничение комментирования и черные списки.
Такой комплексный подход позволит значительно снизить количество спама и поддерживать чистоту вашего WordPress-сайта.