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

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

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

Ручная модерация большого количества комментариев – трудоёмкий и скучный процесс. Спам-сообщения могут накапливаться быстро, особенно на популярных сайтах, что влияет на производительность и безопасность. Автоматизация помогает:

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

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

1. Akismet Anti-Spam

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

Основные возможности:

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

Как настроить Akismet:

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

2. WPSpamShield Anti-Spam

Этот плагин защищает не только комментарии, но и формы регистрации и контактные формы от спама без использования CAPTCHA.

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

  • Защита на стороне сервера и клиента.
  • Минимальная нагрузка на сайт.
  • Автоматическое удаление спам-комментариев через заданный период.

Настройка проста и не требует сложных действий после установки.

Автоматизация удаления спама с помощью пользовательского кода

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

Пример: Автоматическое удаление комментариев со статусом «спам» старше 7 дней

function wpteam_auto_delete_spam_comments() {
    global $wpdb;
    $days = 7;
    $table = $wpdb->comments;
    $wpdb->query( $wpdb->prepare(
        "DELETE FROM $table WHERE comment_approved = 'spam' AND comment_date < NOW() - INTERVAL %d DAY",
        $days
    ));
}
add_action('wp_scheduled_delete', 'wpteam_auto_delete_spam_comments');

Этот код удаляет все комментарии со статусом «спам», которые старше 7 дней. Хук wp_scheduled_delete вызывается WordPress при выполнении планировщика задач, обычно раз в день. Если хотите, можно создать отдельное событие cron, чтобы запускать удаление по расписанию.

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

Добавьте в functions.php следующий код для регистрации и запуска задачи:

function wpteam_register_cron_schedule($schedules) {
    $schedules['every_6_hours'] = array(
        'interval' => 21600, // 6 часов в секундах
        'display' => __('Каждые 6 часов')
    );
    return $schedules;
}
add_filter('cron_schedules', 'wpteam_register_cron_schedule');

function wpteam_setup_cron_job() {
    if (!wp_next_scheduled('wpteam_delete_spam_comments_hook')) {
        wp_schedule_event(time(), 'every_6_hours', 'wpteam_delete_spam_comments_hook');
    }
}
add_action('wp', 'wpteam_setup_cron_job');

add_action('wpteam_delete_spam_comments_hook', 'wpteam_auto_delete_spam_comments');

Этот код создаёт новое расписание и запускает функцию удаления спама каждые 6 часов.

Как дополнительно уменьшить количество спама

Использование капчи и ограничений

Помимо автоматического удаления, важно предотвратить попадание спама. Для этого:

  • Добавьте Google reCAPTCHA или hCaptcha в формы комментариев.
  • Ограничьте возможность комментирования для новых пользователей.
  • Используйте плагины вроде Clearfy Pro, которые умеют блокировать спам и оптимизировать сайт.

Фильтрация комментариев по ключевым словам

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

function wpteam_filter_spam_keywords($commentdata) {
    $spam_words = array('viagra', 'casino', 'free money');
    foreach ($spam_words as $word) {
        if (stripos($commentdata['comment_content'], $word) !== false) {
            $commentdata['comment_approved'] = 'spam';
            break;
        }
    }
    return $commentdata;
}
add_filter('preprocess_comment', 'wpteam_filter_spam_keywords');

Такой метод помогает отфильтровать много спама ещё на этапе отправки комментария.

Заключение

Автоматизация удаления спама в комментариях позволяет поддерживать сайт чистым и уменьшить нагрузку на администраторов. Используйте готовые решения в виде плагинов, а при необходимости дополняйте их кастомным кодом для точной настройки. Не забывайте про профилактические меры: капчи, фильтрацию по ключевым словам и регулярное обновление WordPress и плагинов, чтобы не допустить появления новых уязвимостей.

Для удобной борьбы со спамом и оптимизации сайта рекомендуем обратить внимание на Clearfy Pro — мощный инструмент с функциями защиты и оптимизации WordPress.

Запрет на автоматическую регистрацию пользователей в WordPress с подтверждением email
29.01.2026
Как защитить WordPress от взломов: практические советы
27.11.2025
Как изменить URL изображения в WordPress без плагинов
18.01.2026
Как изменить размер и оптимизировать изображения в WordPress без плагинов
05.12.2025
WooCommerce: как автоматически удалять товары из корзины по атрибутам
04.05.2026

Возникли задачи по WP? Вы можете задать свой вопрос на FAQwp.com Либо обратиться к специалистам поддержки.