Спам в комментариях — одна из распространённых проблем для сайтов на WordPress, особенно активно комментируемых блогов и новостных порталов. Он не только портит статистику и внешний вид, но и может негативно влиять на производительность сайта и SEO. В этой статье разберём, как автоматизировать удаление спама в комментариях, используя проверенные плагины и собственные решения на PHP.
Почему важно автоматизировать удаление спама?
Ручная проверка и удаление спам-комментариев — процесс долгий и утомительный. Чем больше посетителей, тем выше риск появления спама, и без автоматизации админ просто не справится. Важно не только отфильтровывать спам, но и своевременно его удалять, чтобы не загромождать базу данных.
Автоматизация позволяет:
- Сэкономить время на модерации.
- Уменьшить нагрузку на базу данных.
- Поддерживать чистоту комментариев и улучшать UX.
- Повысить безопасность сайта.
Лучшие плагины для автоматического удаления спама в комментариях WordPress
1. Akismet Anti-Spam
Самый известный и часто используемый плагин для борьбы со спамом. Akismet проверяет комментарии на наличие спам-контента через собственные алгоритмы и базы данных. Он автоматически помечает и помещает спам в отдельный раздел, где можно настроить удаление через некоторое время.
2. WP SpamShield Anti-Spam
Плагин, который работает без CAPTCHA и использует комплексную защиту от спама — проверяет IP, User-Agent, JavaScript и многое другое. WP SpamShield автоматически удаляет спам, не давая им попасть в базу.
3. CleanTalk
Облачный антиспам-сервис, который фильтрует комментарии и формы, используя машинное обучение. CleanTalk имеет опции для автоматического удаления спама по истечении определённого времени.
Как настроить автоматическое удаление спама в WordPress средствами кода
Иногда хочется контролировать процесс напрямую через код, без плагинов или вместе с ними. Ниже приведён пример функции, которая автоматически удаляет спам-комментарии старше 7 дней.
function wpzoom_delete_old_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( 'wpzoom_daily_spam_cleanup' ) ) {
wp_schedule_event( time(), 'daily', 'wpzoom_daily_spam_cleanup' );
}
add_action( 'wpzoom_daily_spam_cleanup', 'wpzoom_delete_old_spam_comments' );
Этот код создаёт ежедневное событие cron, которое удаляет спам-комментарии старше 7 дней из базы данных. Можно изменить период, подстроив под свои нужды.
Как интегрировать автоматическую очистку спама с помощью плагина Clearfy Pro
Если вы используете Clearfy Pro для оптимизации сайта, там есть встроенные инструменты для управления спамом. В частности, Clearfy Pro позволяет автоматически удалять спам и черновики, освобождая базу данных.
Для активации функции:
- Перейдите в меню Clearfy > Оптимизация базы данных.
- Включите опцию автоматической очистки спама.
- Настройте период удаления.
Это удобное решение, если вы хотите объединить оптимизацию и защиту от спама в одном плагине.
Советы по дополнительной защите от спама в комментариях
Используйте honeypot поля
Honeypot — это скрытое поле в форме, которое обычный пользователь не видит, а спам-боты заполняют. Если поле заполнено, комментарий считается спамом. Такой метод эффективен и не раздражает посетителей, в отличие от CAPTCHA.
Ограничьте ссылки в комментариях
Многие спам-комментарии содержат ссылки. В WordPress можно ограничить количество ссылок в комментарии через фильтры.
function wpzoom_limit_comment_links( $commentdata ) {
$max_links = 2;
if ( preg_match_all( '/<a href=/i', $commentdata['comment_content'], $matches ) > $max_links ) {
wp_die( 'Слишком много ссылок в комментарии.' );
}
return $commentdata;
}
add_filter( 'preprocess_comment', 'wpzoom_limit_comment_links' );
Включите модерацию комментариев с подозрительными словами
WordPress позволяет настроить список слов, при появлении которых комментарий отправляется на модерацию. Это дополнительный барьер против спама.
Итог: комплексный подход к удалению спама в комментариях WordPress
Лучший результат достигается сочетанием плагинов и собственных функций. Akismet или WP SpamShield фильтруют спам, Clearfy Pro поддерживает чистоту базы, а кастомные функции обеспечивают гибкую настройку и автоматизацию удаления.
Если вы хотите попробовать комплексное решение, рекомендуем Clearfy Pro с WPSHOP — он поможет и с оптимизацией, и со спамом.