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

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

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

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

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

Рассмотрим варианты автоматизации с помощью плагинов и кастомного кода.

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

Плагин Akismet Anti-Spam

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

Чтобы настроить автоматическое удаление спама с помощью Akismet:

  1. Установите и активируйте плагин через админку WordPress.
  2. Зарегистрируйтесь и получите API-ключ на сайте Akismet.
  3. В настройках плагина включите автоматическое удаление спам-комментариев старше заданного времени (например, 15 дней).

Это простое и эффективное решение, но иногда бывает недостаточно.

Плагин WP SpamShield Anti-Spam

WP SpamShield — комплексный плагин, который блокирует спам на уровне формы комментариев, регистраций и других модулей. Он не требует CAPTCHA и работает без необходимости настройки.

Плагин автоматически удаляет спам-комментарии, что сокращает ручную работу. Его можно скачать с WPShop.ru.

Кастомные решения для удаления спама в комментариях

Если вы хотите более тонко контролировать процесс или минимизировать количество плагинов, можно реализовать автоматическое удаление спама программно. Ниже пример, как с помощью WP Cron удалять спам-комментарии старше 7 дней.

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

function wpexamples_delete_old_spam_comments() {
    global $wpdb;
    $days = 7; // Удалять спам старше 7 дней
    $date = date('Y-m-d H:i:s', strtotime("-" . $days . " days"));

    $comments = $wpdb->get_col($wpdb->prepare(
        "SELECT comment_ID FROM $wpdb->comments WHERE comment_approved = 'spam' AND comment_date < %s",
        $date
    ));

    if (!empty($comments)) {
        foreach ($comments as $comment_id) {
            wp_delete_comment($comment_id, true);
        }
    }
}

// Регистрируем событие WP-Cron при активации темы или плагина
function wpexamples_activate_cron() {
    if (!wp_next_scheduled('wpexamples_cron_delete_spam')) {
        wp_schedule_event(time(), 'daily', 'wpexamples_cron_delete_spam');
    }
}
add_action('wp', 'wpexamples_activate_cron');

// Хук для выполнения функции
add_action('wpexamples_cron_delete_spam', 'wpexamples_delete_old_spam_comments');

// Очистка при деактивации
function wpexamples_deactivate_cron() {
    $timestamp = wp_next_scheduled('wpexamples_cron_delete_spam');
    if ($timestamp) {
        wp_unschedule_event($timestamp, 'wpexamples_cron_delete_spam');
    }
}

Этот код добавляет ежедневное задание, которое удаляет все спам-комментарии старше 7 дней. Вы можете изменить период удаления, изменив значение переменной $days.

Пояснения по коду

Мы используем WP Cron, чтобы не нагружать сайт при каждом заходе пользователя. По расписанию запускается функция wpexamples_delete_old_spam_comments, которая через SQL-запрос получает ID всех спам-комментариев старше нужного срока и удаляет их с помощью функции wp_delete_comment.

Дополнительные советы по борьбе со спамом в комментариях

Использование капчи и фильтров

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

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

Регулярное обновление системы и плагинов

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

Мониторинг и уведомления

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

Заключение

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

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как создать динамический попап в WordPress на AJAX с примером кода
27.02.2026
WooCommerce: как массово обновить количество товаров без таймаута сервера
20.06.2026
Как создать главную страницу магазина на WordPress с помощью WooCommerce и кастомных блоков
13.02.2026
WooCommerce: как избежать сбоев при массовом обновлении товаров
06.05.2026
Как создать автоматическую очистку базы данных WordPress от устаревших данных
05.04.2026
×
-15%
на премиум плагин
My Popup

Повысьте конверсию!

Получить скидку »