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

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

Почему важно бороться со спамом в комментариях WordPress

Спам-комментарии часто содержат ссылки на вредоносные сайты, рекламу или просто мусорный текст. Их накопление ведёт к:

  • Замедлению работы сайта из-за увеличения объёма базы данных.
  • Потере доверия посетителей и ухудшению пользовательского опыта.
  • Потенциальным проблемам с SEO, так как поисковые системы могут понизить рейтинг сайта.

Поэтому регулярное удаление и блокировка спама — обязательная часть технического обслуживания WordPress.

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

Akismet — классика для защиты от спама

Akismet — самый популярный плагин для автоматической фильтрации спам-комментариев. Он анализирует комментарии через облачный сервис и автоматически помечает подозрительные.

Преимущества Akismet:

  • Автоматическая проверка всех комментариев.
  • Интеграция с большинством популярных плагинов для комментариев.
  • Возможность просмотра и управления спамом в админке.

Для установки:

  1. Перейдите в раздел «Плагины» > «Добавить новый».
  2. В поиске введите «Akismet» и установите плагин.
  3. Активируйте и настройте ключ API — бесплатный для некоммерческих сайтов.

Однако Akismet не всегда идеален, и иногда спам проходит, либо полезные комментарии попадают в спам.

Clearfy Pro — расширенный контроль и оптимизация

Плагин Clearfy Pro предлагает расширенный набор настроек для борьбы со спамом, включая отключение XML-RPC, отключение trackbacks и pingbacks, а также оптимизацию комментариев.

Clearfy Pro позволяет настроить жёсткие фильтры и блокировать ботов ещё до попадания комментария в базу данных. Это снижает нагрузку на сайт и предотвращает появление спама.

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

Автоматическое удаление спам-комментариев по дате

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

function wpchecker_delete_old_spam_comments() {
    global $wpdb;
    $days = 30;
    $date = date('Y-m-d H:i:s', strtotime('-' . $days . ' days'));
    $wpdb->query( $wpdb->prepare(
        "DELETE FROM $wpdb->comments WHERE comment_approved = 'spam' AND comment_date < %s",
        $date
    ) );
}
// Запускаем функцию раз в день с помощью WP-Cron
if ( ! wp_next_scheduled( 'wpchecker_delete_old_spam_comments_hook' ) ) {
    wp_schedule_event( time(), 'daily', 'wpchecker_delete_old_spam_comments_hook' );
}
add_action( 'wpchecker_delete_old_spam_comments_hook', 'wpchecker_delete_old_spam_comments' );

Этот код удалит спам-комментарии старше 30 дней, освобождая базу от мусора.

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

Иногда спам-комментарии содержат ссылки на определённые домены или слишком много ссылок. Можно заблокировать такие комментарии ещё при попытке оставить их. Вот пример функции, которая запрещает комментировать с более чем 2 ссылками или с ссылками на запрещённые домены:

function wpchecker_block_spammy_comments( $commentdata ) {
    $comment_content = $commentdata['comment_content'];

    // Ограничение по количеству ссылок
    preg_match_all( '/https?:\/\//', $comment_content, $matches );
    if ( count( $matches[0] ) > 2 ) {
        wp_die( 'Ваш комментарий содержит слишком много ссылок и был заблокирован.' );
    }

    // Запрещённые домены
    $blocked_domains = array('spamdomain.com', 'badsite.ru');
    foreach ( $blocked_domains as $domain ) {
        if ( strpos( $comment_content, $domain ) !== false ) {
            wp_die( 'Ваш комментарий содержит запрещённые ссылки и был заблокирован.' );
        }
    }

    return $commentdata;
}
add_filter( 'preprocess_comment', 'wpchecker_block_spammy_comments' );

Такое решение позволит значительно снизить количество спам-комментариев с нежелательным контентом.

Советы по дополнительной защите комментариев

Использование капчи и антиспам плагинов

Добавление капчи — простой и эффективный способ защитить форму комментариев от автоматических спам-ботов. Популярные плагины:

  • Google Captcha (reCAPTCHA) by BestWebSoft — лёгкий в настройке плагин с поддержкой Google reCAPTCHA.
  • WPBruiser — антиспам плагин без капчи, который блокирует ботов на основе поведения.

Отключение комментариев для старых записей

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

function wpchecker_disable_comments_on_old_posts( $open, $post_id ) {
    $post = get_post( $post_id );
    $days = 90; // Количество дней для разрешённых комментариев
    if ( strtotime( $post->post_date ) < strtotime( '-' . $days . ' days' ) ) {
        return false;
    }
    return $open;
}
add_filter( 'comments_open', 'wpchecker_disable_comments_on_old_posts', 10, 2 );

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

Использование WP-CLI для управления спамом

Если у вас есть доступ к командной строке сервера, WP-CLI поможет быстро управлять комментариями. Например, чтобы удалить все спам-комментарии, выполните команду:

wp comment delete $(wp comment list --status=spam --format=ids)

Это быстро и эффективно для очистки базы, особенно на больших сайтах.

Итоговые рекомендации

Для комплексной защиты от спама в комментариях рекомендуем сочетать автоматические плагины (Akismet, Clearfy Pro), программные фильтры, регулярную очистку базы и дополнительную защиту в виде капчи или WPBruiser. Такой комплексный подход обеспечит чистоту комментариев, снизит нагрузку на сайт и улучшит пользовательский опыт.

Подробнее про Clearfy Pro и другие полезные инструменты вы можете узнать на WPSHOP.ru.

Как удалить пустые термины таксономий в WordPress через PHP
06.04.2026
WooCommerce: решение проблемы с незапуском хука woocommerce_order_status_changed
14.05.2026
WooCommerce: как использовать хук woocommerce_order_status_changed для автоматического изменения статуса заказа
19.06.2026
Как использовать REST API для динамической загрузки контента в WordPress
17.12.2025
WooCommerce: автоматическое изменение статуса заказа при оплате через кастомный шлюз
25.05.2026