Hushfort

Как отключить комментарии в WordPress или избавиться от спама в комментариях?

Автор: Eureka Studio · Обновлено

Коротко

Сначала решите, нужны ли вам комментарии вообще. Если нет — закройте их везде, включая старые записи и пингбэки. Если нужны — оставьте открытыми, но с фильтрацией: невидимое поле-ловушка, минимальное время заполнения, лимит ссылок и лимиты на IP, а сомнительные комментарии — в карантин. Записи и отзывы о товарах WooCommerce — это отдельные решения. В Hushfort бесплатная «Защита от спама» даёт поле-ловушку и проверку времени заполнения, а лимит ссылок, лимиты на IP и карантин доступны в Pro.

Шаги

  1. 1Шаг 1

    Решайте для каждого раздела отдельно

    Комментарии в блоге и отзывы о товарах — разные вещи. В «Защите от спама» настройте «Комментарии к записям» и «Отзывы о товарах» по отдельности: магазин может выставить для комментариев к записям «Выкл. — отключить полностью», а отзывы оставить в режиме «Защищено — открыто, боты отсеиваются».

    Защита от спама: для комментариев к записям выбрано «Выкл. — отключить полностью», отзывы о товарах оставлены в режиме «Защищено — открыто, боты отсеиваются»
  2. 2Шаг 2

    Отключите пингбэки и трекбэки

    Установите для «Пингбэки / трекбэки» значение «Отключить (рекомендуется)». Почти каждый пингбэк — спам; это также убирает метод pingback в XML-RPC и заголовок X-Pingback.

    Для «Пингбэки / трекбэки» выбрано «Отключить (рекомендуется)», изменения сохранены
  3. 3Шаг 3

    Пусть невидимые проверки фильтруют то, что осталось открытым

    Боты, которые отправляют данные прямо в wp-comments-post.php или заполняют скрытые поля, останавливаются. В Pro отзывы со слишком большим числом ссылок ждут в карантине, где их может просмотреть человек.

    Журнал и карантин с записями об отзывах о товарах: один заблокирован за заполненное поле-ловушку, два в карантине из-за слишком большого числа ссылок и отсутствия токена
  4. 4Шаг 4

    Разбирайте карантин в один щелчок (Pro)

    В Pro время от времени просматривайте записи в карантине. Нажмите «Не спам» на настоящем отзыве — и этот IP и email будут запомнены и больше не попадут в фильтр.

    На отзыве о товаре в карантине нажата кнопка «Не спам»; его статус меняется на «Не спам»

Почему это важно

Чтобы избавиться от спама в комментариях WordPress, сначала решите, нужны ли комментарии вообще: если нет, закройте их везде, включая старые записи и пингбэки. Если нужны, оставьте их открытыми, но с невидимым полем-ловушкой, минимальным временем заполнения и карантином для сомнительных комментариев.

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

Честно говоря, многим сайтам комментарии вообще не нужны. Корпоративный сайт, портфолио или блог магазина часто получают больше спама, чем живого общения. Закрыть там комментарии — не сдаться, а убрать дверь, которой никто не пользуется.

Там, где комментарии важны, работают те же невидимые проверки, что останавливают спам в формах: боты заполняют скрытые поля, отправляют слишком быстро, повторяются с одного IP и вставляют ссылки.

Как быстро решить для каждого раздела:

Ваш сайт Комментарии к записям Отзывы о товарах
Корпоративный сайт или портфолио Выкл. —
Блог с активным сообществом Защищено —
Магазин с малоактивным блогом Выкл. Защищено
Магазин, который продаёт благодаря отзывам Защищено или Выкл. Защищено

Частые ошибки

  • Закрыть комментарии только для новых записей. Настройка обсуждения не затрагивает старые записи, а именно в них целятся боты.
  • Скрыть форму комментариев, но оставить открытой конечную точку. Ботам ваша форма не нужна. Они отправляют данные прямо в wp-comments-post.php.
  • Считать отзывы обычными комментариями. Если закрыть всё, чтобы остановить спам в блоге, из магазина могут пропасть и отзывы о товарах, и звёздный рейтинг.
  • Оставить пингбэки включёнными. Это постоянный ручеёк спама почти без пользы.
  • Автоматически удалять всё подозрительное. Сомнительные комментарии придерживайте, а не выбрасывайте.

Без плагина

Чтобы вручную закрыть комментарии везде:

  1. Настройки → Обсуждение: снимите отметки «Разрешить оповещения со ссылками с других блогов (пингбэки и трекбэки)» и «Разрешить оставлять комментарии к новым записям».
  2. Записи → Все записи: выделите все, выберите Изменить в списке действий, установите для комментариев «Не разрешать» и для пингов «Не разрешать».
  3. При желании закройте комментарии к записям старше заданного числа дней в разделе Настройки → Обсуждение.

Затем отклоняйте прямые отправки в конечную точку комментариев, например в must-use плагине:

<?php
add_filter( 'comments_open', '__return_false', 20 );
add_filter( 'pings_open', '__return_false', 20 );
add_action( 'pre_comment_on_post', function () {
    wp_die( 'Comments are closed.', 403 );
} );

Это работает, но закрывает всё, включая отзывы о товарах, если у вас WooCommerce, и не убирает меню «Комментарии» и конечные точки REST для комментариев. Если же вы хотите оставить комментарии открытыми, но с фильтрацией, придётся вручную добавлять поля-ловушки и лимиты или пользоваться облачным сервисом.

Если что-то пошло не так

  • Настоящие комментарии не появляются. Сначала загляните в журнал (а в Pro — и в карантин). Если включён режим блокировки, переключитесь на несколько дней в режим наблюдения и проверьте журнал.
  • Пропали отзывы о товарах. Скорее всего, вы закрыли отзывы вместе с комментариями. Верните для «Отзывов о товарах» значение «Защищено».
  • Спам продолжается после закрытия комментариев. Очистите кэш страниц: кэшированные страницы могут всё ещё показывать старую форму. Боты, отправляющие данные напрямую, отклоняются в любом случае.

С Hushfort

«Защита от спама» в Hushfort Security — бесплатном плагине безопасности для WordPress — настраивает каждый раздел отдельно. Для комментариев к записям и для отзывов о товарах WooCommerce вы выбираете:

  • Защищено: открыто, а боты отсеиваются полем-ловушкой, проверкой времени заполнения и подписанным токеном (Pro добавляет лимит ссылок и лимиты на IP);
  • Выкл.: убирает форму и список комментариев, конечные точки REST и меню «Комментарии» в админке, а также отклоняет ботов, отправляющих данные прямо в wp-comments-post.php;
  • Не трогать: Hushfort не вмешивается.

Пингбэки и трекбэки можно отключить на том же экране, а режим наблюдения позволяет всё проверить, прежде чем защита начнёт блокировать. В Pro вы также получаете лимиты на IP и на email, лимит ссылок, списки слов и чёрные списки, а также карантин с обучением по кнопке «Не спам». Ничего не отправляется во внешние сервисы.

Частые вопросы

Как полностью отключить комментарии в WordPress?

Снимите отметку «Разрешить оставлять комментарии к новым записям» в разделе Настройки → Обсуждение, затем массово закройте комментарии в существующих записях. Боты всё равно могут отправлять данные прямо в wp-comments-post.php, поэтому такие запросы тоже нужно отклонять.

Почему спам приходит в комментарии к старым записям?

Настройки WordPress для новых записей не меняют старые. Боты целятся в старые записи, потому что владельцы редко их проверяют. Закрывайте комментарии к записям старше заданного числа дней или закройте их везде.

Стоит ли оставлять пингбэки?

Для большинства сайтов — нет. Почти все пингбэки — спам, и они зависят от XML-RPC. Отключив их, вы почти ничего не теряете.

Повлияет ли отключение комментариев на заметки к заказам WooCommerce?

С Hushfort — нет. Заметки к заказам и заметки других плагинов не затрагиваются, когда комментарии к записям выключены.

Нужен ли мне Akismet?

Не обязательно. Akismet отправляет комментарии в свой облачный сервис. Локальные проверки — поля-ловушки и лимиты — останавливают большую часть спама от ботов, не отправляя данные за пределы вашего сервера.

Сообщить об ошибке или предложить функцию

Ваше сообщение попадёт прямо к команде, которая разрабатывает Hushfort.

О чём сообщение?

Используется только для ответа вам.

Мы используем эти данные только для ответа вам. Конфиденциальность