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

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

Почему важно автоматизировать удаление спама в комментариях

Спам-комментарии не только занимают место в базе данных, но и негативно влияют на SEO и пользовательский опыт. Если своевременно не удалять спам, ваш сайт может получить санкции от поисковых систем, а посетители — потерять доверие. Автоматизация этого процесса позволяет:

  • Снизить нагрузку на администраторов сайта.
  • Уменьшить объём базы данных за счёт своевременного удаления мусора.
  • Поддерживать чистоту и безопасность комментариев.

Для реализации автоматической очистки спама можно использовать как готовые плагины, так и собственные решения на PHP с использованием хуков WordPress.

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

1. Akismet Anti-Spam

Akismet — один из самых популярных плагинов для борьбы со спамом. Он автоматически фильтрует комментарии и помещает подозрительные в очередь спама. В настройках можно активировать автоматическое удаление спама старше определённого срока:

  • Переходите в настройки Akismet.
  • Активируйте опцию автозачистки спама старше 15 дней.
  • Плагин будет регулярно очищать базу.

Минус — удаление происходит по расписанию, и спам остаётся в базе некоторое время. Для более частой очистки можно использовать дополнительные решения.

2. WP Spam Cleaner

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

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

Создание автоматического удаления спама через код в functions.php

Для примера создадим функцию, которая будет удалять все комментарии в статусе 'spam', которым больше 3 дней. Для этого используем WordPress Cron API.

Шаг 1. Планирование периодического задания (Cron)

add_action('wplessons_delete_spam_comments_hook', 'wplessons_delete_spam_comments_function');

if (!wp_next_scheduled('wplessons_delete_spam_comments_hook')) {
    wp_schedule_event(time(), 'daily', 'wplessons_delete_spam_comments_hook');
}

Здесь мы создаём ежедневное задание, которое будет запускать нашу функцию удаления спама.

Шаг 2. Функция удаления спама

function wplessons_delete_spam_comments_function() {
    global $wpdb;
    
    // Определяем дату, старше которой удаляем спам (3 дня назад)
    $date_threshold = date('Y-m-d H:i:s', strtotime('-3 days'));
    
    // Получаем ID всех спам-комментариев старше 3 дней
    $spam_comments = $wpdb->get_col($wpdb->prepare(
        "SELECT comment_ID FROM $wpdb->comments WHERE comment_approved = 'spam' AND comment_date < %s",
        $date_threshold
    ));

    if (!empty($spam_comments)) {
        foreach ($spam_comments as $comment_id) {
            wp_delete_comment($comment_id, true); // true = принудительное удаление
        }
    }
}

Эта функция обращается напрямую к базе данных, выбирает спам-комментарии старше трёх дней и удаляет их без возможности восстановления.

Шаг 3. Очистка Cron при деактивации темы или плагина

function wplessons_deactivate_cron() {
    $timestamp = wp_next_scheduled('wplessons_delete_spam_comments_hook');
    if ($timestamp) {
        wp_unschedule_event($timestamp, 'wplessons_delete_spam_comments_hook');
    }
}
register_deactivation_hook(__FILE__, 'wplessons_deactivate_cron');

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

Расширенные возможности: интеграция с плагином Clearfy Pro

Если на вашем сайте установлен Clearfy Pro, вы можете дополнительно оптимизировать работу с комментариями. Clearfy умеет отключать нежелательные типы комментариев, очищать базу и интегрируется с системами кеширования.

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

Практические советы по минимизации спама в комментариях

1. Включите обязательную регистрацию для комментирования

Это уменьшит количество спам-ботов, так как большинству из них сложнее пройти регистрацию.

2. Добавьте капчу

Плагин WPGPT поддерживает интеграцию с reCAPTCHA и другими решениями, которые эффективно блокируют автоматический спам.

3. Используйте жёсткие фильтры для комментариев

WordPress позволяет настроить фильтрацию по ключевым словам и IP-адресам. Чем точнее вы настраиваете фильтры, тем меньше мусора попадает в комментарии.

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

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

Если вы не хотите копаться в коде, используйте проверенные плагины Akismet и Clearfy Pro с включенной опцией автозачистки спама.

Внедряя эти методы, вы значительно улучшите производительность и безопасность вашего WordPress-сайта.

Как избежать проблем при использовании PHP 8 в WordPress
15.03.2026
Как настроить OTP в формах WordPress для повышения безопасности
29.03.2026
Как использовать AJAX в WordPress для отображения сообщений об ошибках без перезагрузки страницы
08.12.2025
Как удалить или изменить автора старой записи в WordPress без плагинов
18.02.2026
Как изменить размер и форму аватара в WordPress с примерами кода
26.01.2026