Как удалить и заблокировать спам комментарии в WordPress

Почему спам в комментариях опасен и как его выявить

Спам-комментарии — одна из самых раздражающих и вредоносных проблем для сайтов на WordPress. Они не только портят визуальную часть, но и снижают скорость работы сайта, ухудшают SEO и повышают нагрузку на сервер. Часто спам содержит ссылки на вредоносные сайты, что может привести к попаданию вашего сайта в черные списки поисковых систем.

Для начала важно научиться вовремя распознавать спам. Обычно такие комментарии содержат:

  • Бессмысленные или повторяющиеся тексты;
  • Множество ссылок;
  • Комментарии на нерелевантные темы;
  • Имена и email с подозрительными доменами.

Определение спама — первый шаг к его эффективному удалению и блокировке.

Использование плагинов для удаления и блокировки спама

Самый простой способ избавиться от спама — установить специализированный плагин. Рассмотрим несколько популярных и эффективных решений.

Akismet Anti-Spam

Это один из самых известных и мощных плагинов для борьбы со спамом в комментариях. Он автоматически анализирует все комментарии и помечает подозрительные.

Установка и базовое использование:

1. Установить и активировать плагин Akismet через админку WordPress.
2. Зарегистрироваться на сайте akismet.com и получить API ключ.
3. Ввести ключ в настройках плагина.
4. Плагин начнет автоматически фильтровать спам.

Akismet отлично подходит для большинства сайтов, однако он не удаляет спам автоматически, а лишь помещает его в папку «Спам».

WP SpamShield Anti-Spam

Этот плагин использует комплексный подход: блокирует спам без капчи, фильтрует комментарии, регистрации и формы. Он эффективен против ботов и умеет блокировать IP.

Преимущество WP SpamShield в том, что он работает сразу на нескольких уровнях, уменьшая количество ложных срабатываний.

Clearfy Pro: оптимизация и борьба со спамом

Если вы используете Clearfy Pro, то в нем есть встроенные инструменты для борьбы со спамом, включая отключение XML-RPC, защиту от ботов и оптимизацию комментариев.

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

Удаление спам-комментариев с помощью кода

Если вы хотите автоматизировать удаление спама без использования плагинов, можно добавить кастомный код в файл functions.php вашей темы или создать небольшой плагин.

Функция для удаления всех спам-комментариев

function wpmark_delete_spam_comments() {
    global $wpdb;
    $wpdb->query("DELETE FROM {$wpdb->comments} WHERE comment_approved = 'spam'");
}
// Для запуска функции используйте хук или вызов вручную
// add_action('wp_loaded', 'wpmark_delete_spam_comments');

Этот код удалит все комментарии, помеченные как спам. Его можно запускать периодически через WP-Cron или вручную.

Блокировка комментариев с подозрительными ключевыми словами

Можно добавить проверку входящих комментариев на наличие слов, часто встречающихся в спаме, и автоматически помечать их как спам.

function wpmark_filter_spam_by_keywords( $commentdata ) {
    $spam_keywords = array('viagra', 'casino', 'loan', 'free money');
    foreach ( $spam_keywords as $keyword ) {
        if ( stripos( $commentdata['comment_content'], $keyword ) !== false ) {
            add_filter('pre_comment_approved', function() { return 'spam'; });
            break;
        }
    }
    return $commentdata;
}
add_filter('preprocess_comment', 'wpmark_filter_spam_by_keywords');

Этот код проверяет содержание комментария и если находит ключевое слово из списка, помечает комментарий как спам.

Блокировка спамеров по IP и User-Agent

Еще один эффективный способ — блокировать комментарии от спамеров по IP адресам или User-Agent.

Можно использовать следующий код для отказа в приеме комментариев от заданных IP:

function wpmark_block_spammer_ip( $commentdata ) {
    $blocked_ips = array('123.45.67.89', '111.222.333.444');
    $user_ip = $_SERVER['REMOTE_ADDR'];
    if ( in_array( $user_ip, $blocked_ips ) ) {
        wp_die( 'Ваш IP заблокирован от отправки комментариев.' );
    }
    return $commentdata;
}
add_filter('preprocess_comment', 'wpmark_block_spammer_ip');

Для динамического управления IP можно интегрировать этот подход с внешними сервисами или базами данных.

Рекомендации по настройке комментариев для минимизации спама

Помимо удаления и блокировки, важно правильно настроить комментарии:

  • Включить обязательную модерацию — все комментарии должны проходить проверку перед публикацией.
  • Использовать капчу — например, плагин Google reCAPTCHA или аналоги.
  • Ограничить ссылки в комментариях — например, разрешить не более одной ссылки в комментарии.
  • Отключить комментарии к старым записям — часто спамеры нацеливаются на архивы.

Эти меры значительно снижают количество спама и уменьшают необходимость ручного удаления.

Автоматизация удаления спама с WP-Cron

Можно настроить автоматический запуск удаления спама с помощью WP-Cron, чтобы не тратить время на ручную очистку.

function wpmark_schedule_spam_cleanup() {
    if ( ! wp_next_scheduled( 'wpmark_spam_cleanup_event' ) ) {
        wp_schedule_event( time(), 'daily', 'wpmark_spam_cleanup_event' );
    }
}
add_action( 'wp', 'wpmark_schedule_spam_cleanup' );

function wpmark_spam_cleanup_callback() {
    global $wpdb;
    $wpdb->query("DELETE FROM {$wpdb->comments} WHERE comment_approved = 'spam'");
}
add_action( 'wpmark_spam_cleanup_event', 'wpmark_spam_cleanup_callback' );

Этот код настроит ежедневную очистку спам-комментариев без вашего участия.

Автоматический импорт продуктов в WooCommerce через CSV: пошаговое руководство
01.01.2026
Как создать собственный шорткод с параметрами в WordPress: практическое руководство
21.01.2026
Как создать автоматический заголовок для постов в WordPress с помощью кода и плагинов
05.03.2026
Как использовать WPRemark для автоматизации отзывов в WordPress
08.01.2026
Как удалять старые ревизии постов в WordPress для оптимизации базы данных
20.02.2026