wpnotes.ru wordpress WP Notes

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

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

Почему стоит бороться со спамом в комментариях

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

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

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

Удаление спама через админ-панель

Самый простой способ — перейти в раздел «Комментарии» в админке WordPress и выбрать вкладку «Спам». Там можно массово выделить все комментарии и удалить их.

Однако при большом количестве комментариев этот способ неудобен и может привести к тайм-аутам сервера.

Удаление спама через WP-CLI

Для опытных пользователей хорошим решением будет использование командной строки:

wp comment delete $(wp comment list --status=spam --format=ids) --force

Эта команда удалит все комментарии со статусом «spam» без необходимости заходить в админку.

Удаление спама программно с помощью кода

Если хочется автоматизировать процесс или встроить очистку в кастомный плагин, можно использовать следующий код:

function wpnotes_delete_spam_comments() {
    global $wpdb;
    $spam_comments = $wpdb->get_col( "SELECT comment_ID FROM {$wpdb->comments} WHERE comment_approved = 'spam'" );
    foreach ( $spam_comments as $comment_id ) {
        wp_delete_comment( $comment_id, true );
    }
}
// Запуск функции вручную или по крону
// wpnotes_delete_spam_comments();

Такой код можно запускать по расписанию с помощью WP-Cron, чтобы регулярно очищать спам.

Блокировка спам комментариев: лучшие плагины и методы

Антиспам плагины для WordPress

Существует множество плагинов, которые помогают предотвратить появление спама в комментариях:

  • Akismet — классика жанра, подключается к сервису автоматического анализа комментариев. Очень эффективен, особенно при правильной настройке.
  • Antispam Bee — бесплатный и не требует регистрации, хорошо подходит для европейских сайтов с учетом GDPR.
  • WPBruiser — антиспам без капчи, основанный на поведенческом анализе.
  • Clearfy Pro (https://wpshop.ru/clearfy-pro?utm_source=wpnotes.ru&utm_medium=article&utm_campaign=kak-udalit-i-zablokirovat-spam-kommentarii-v-wordpress) — многофункциональный плагин для оптимизации и безопасности, включая антиспам функции.

Использование honeypot полей для блокировки спама

Honeypot — это скрытое поле в формах, которое видит только бот. Если это поле заполнено, то комментарий автоматически отклоняется как спам.

Для реализации honeypot можно использовать плагин или добавить код в functions.php темы:

function wpnotes_add_honeypot_field() {
    echo '<p style="display:none;"><label>Оставьте это поле пустым<input type="text" name="wpnotes_hp_field" value=""></label></p>';
}
add_action('comment_form', 'wpnotes_add_honeypot_field');

function wpnotes_check_honeypot_field($commentdata) {
    if ( !empty($_POST['wpnotes_hp_field']) ) {
        wp_die('Ошибка: обнаружен спам.');
    }
    return $commentdata;
}
add_filter('preprocess_comment', 'wpnotes_check_honeypot_field');

Ограничение частоты комментариев и проверка IP

Еще один способ снизить количество спама — ограничить частоту отправки комментариев с одного IP и блокировать подозрительные IP-адреса.

Для этого можно использовать плагины, например, WPBruiser, или написать свой фильтр на PHP, проверяющий IP и время последнего комментария.

Реализация кастомного фильтра спама на базе ключевых слов

Иногда полезно заблокировать комментарии, содержащие определённые слова или ссылки. Вот пример пользовательской функции, которая отклоняет комментарии с запрещёнными словами:

function wpnotes_block_comment_by_keywords($commentdata) {
    $blacklist = array('viagra', 'http://spam-site.com', 'cheap loans');
    foreach ($blacklist as $badword) {
        if (stripos($commentdata['comment_content'], $badword) !== false) {
            wp_die('Ваш комментарий содержит запрещённые слова и был заблокирован.');
        }
    }
    return $commentdata;
}
add_filter('preprocess_comment', 'wpnotes_block_comment_by_keywords');

Такой фильтр помогает отсеивать спам с типичными ключевыми словами и ссылками.

Советы по комплексной защите от спама в комментариях

1. Используйте надежный антиспам плагин, например, Akismet или Clearfy Pro.

2. Добавьте honeypot поле для дополнительной защиты без ухудшения UX.

3. Ограничьте частоту комментариев с одного IP.

4. Регулярно очищайте базу от спама, используя WP-CLI или автоматические скрипты.

5. При возможности отключайте комментарии к старым записям, чтобы снизить риск спам-атак.

6. Используйте капчу в критических случаях, если спам слишком агрессивен.

×
WordPress
прокачай свой сайт!

-20% на премиум темы и плагины

Сделай апгрейд сайта ⋙