Автоматические отзывы, или спам-комментарии, — частая проблема для владельцев сайтов на WordPress. Они не только засоряют базу данных, но и ухудшают восприятие сайта посетителями, а также могут сказаться на SEO. В этой статье мы подробно разберём, как автоматически обнаруживать и удалять такие отзывы с использованием кода и специальных плагинов.
Понимание проблемы автоматических отзывов в WordPress
WordPress по умолчанию позволяет пользователям оставлять комментарии, что очень полезно для взаимодействия с аудиторией. Однако, к сожалению, спам-боты активно используют эту возможность для продвижения своих ресурсов или вредоносных ссылок. Автоматические отзывы обычно имеют следующие признаки:
- Массовое появление похожих комментариев;
- Наличие ссылок на подозрительные сайты;
- Отсутствие осмысленного текста или набор бессмысленных слов;
- Появление комментариев от несуществующих пользователей.
Если не контролировать такие отзывы, база данных WordPress быстро разрастается, что замедляет сайт и усложняет модерацию.
Как автоматически удалять спам-комментарии с помощью плагинов
Плагин Akismet Anti-Spam
Самый популярный плагин для борьбы со спамом — Akismet. Он автоматически проверяет комментарии и помечает подозрительные как спам. Важно понимать, что Akismet не удаляет комментарии автоматически, а помещает их в спам, откуда их можно удалить вручную или настроить автоматическую очистку.
Чтобы настроить автоматическую очистку спама в Akismet, выполните следующие шаги:
- Установите и активируйте Akismet с официального источника.
- В разделе «Комментарии» зайдите в «Спам».
- Настройте период автоматического удаления спам-комментариев (обычно 15 дней по умолчанию).
Akismet отлично подходит для большинства сайтов, но иногда требуется более гибкий контроль.
Плагин WP SpamShield Anti-Spam
WP SpamShield — комплексное решение против спама, которое фильтрует комментарии, контактные формы и регистрацию пользователей. Плагин не требует CAPTCHA и работает прозрачно для пользователей.
Для установки:
- Зайдите в админ-панель WordPress, выберите «Плагины» > «Добавить новый».
- Введите в поиске «WP SpamShield» и установите плагин.
- Активируйте и настройте фильтры спама по необходимости.
Плагин автоматически блокирует спам и удаляет его без вашего участия.
Удаление автоматических отзывов с помощью кода в functions.php
Если вы хотите самостоятельно реализовать автоматическое удаление спам-комментариев, то можно добавить в файл functions.php темы или в собственный плагин следующий код:
function wplab_delete_spam_comments() {
global $wpdb;
$days = 7; // Количество дней, после которых спам удаляется
$wpdb->query(
$wpdb->prepare(
"DELETE FROM $wpdb->comments WHERE comment_approved = 'spam' AND comment_date < NOW() - INTERVAL %d DAY",
$days
)
);
}
// Запускаем функцию ежедневно по крону
if ( ! wp_next_scheduled( 'wplab_daily_spam_cleanup' ) ) {
wp_schedule_event( time(), 'daily', 'wplab_daily_spam_cleanup' );
}
add_action( 'wplab_daily_spam_cleanup', 'wplab_delete_spam_comments' );Этот код удалит все спам-комментарии старше 7 дней. Можно менять период в переменной $days под свои нужды.
Объяснение кода
Мы используем глобальный объект $wpdb для выполнения SQL-запроса, который удаляет из таблицы комментариев все записи с меткой спама и датой старше заданного интервала. Далее при помощи WordPress Cron создаём задачу, которая будет запускать эту функцию ежедневно.
Дополнительные советы по борьбе с автоматическими отзывами
Использование honeypot полей
Добавление скрытых полей, которые видит только бот, позволяет эффективно блокировать автоматические отправки. Если поле заполнено, комментарий автоматически отклоняется.
Ограничение частоты отправки комментариев
Ограничьте число комментариев с одного IP-адреса за определённый период. Это можно сделать через плагины или собственный код, чтобы предотвратить массовые рассылки спама.
Использование плагина Clearfy Pro для оптимизации
Плагин Clearfy Pro предлагает удобные инструменты для отключения XML-RPC, эмодзи, и других функций, которые часто используются спам-ботами. Также в нём есть настройки для автоматического удаления спама и оптимизации базы данных.
Заключение
Автоматические отзывы в WordPress — серьезная проблема, но её можно эффективно решать с помощью проверенных плагинов и собственного кода. Используйте Akismet или WP SpamShield для базовой защиты, дополнительно реализуйте ежедневное удаление спама через WP Cron, и применяйте дополнительные методы защиты, такие как honeypot и ограничение частоты комментариев. Это обеспечит чистоту базы данных, ускорит сайт и улучшит качество комментариев на вашем ресурсе.