Глобальное отключение комментариев в WordPress без плагинов: SEO, скорость и 152-ФЗ

Глобальное отключение комментариев в WordPress без плагинов WordPress

Стандартная форма комментариев в WordPress - один из тех рудиментов, который сегодня приносит контентным и коммерческим сайтам больше проблем, чем реальной пользы. С одной стороны, она генерирует бесконечный спам и тянет лишний скрипт comment-reply.min.js. С другой - превращает обычный информационный сайт в оператора персональных данных со всеми вытекающими проверками Роскомнадзора.

В этой статье мы разберем, почему в 2026 году форму комментирования безопаснее закрыть, как юридически грамотно сохранить уже накопленные полезные комментарии пользователей и как отключить форму глобально всего парой строк кода в functions.php без тяжеловесных плагинов.

Правовая сторона: почему комментарии — это зона риска по 152-ФЗ

Многие владельцы блогов и сайтов компаний считают, что если они не продают товары онлайн, то Федеральный закон № 152-ФЗ «О персональных данных» их не касается. Это опасное заблуждение.

По умолчанию стандартная форма комментариев WordPress запрашивает:

  • Имя пользователя;
  • Адрес электронной почты (E-mail);
  • IP-адрес и User-Agent браузера (движок тихо записывает их в базу данных при каждой отправке).

Совокупность этих данных по закону РФ квалифицируется как обработка персональных данных. Чтобы собирать комментарии легально, владелец сайта обязан:

  1. Уведомить Роскомнадзор о начале обработки персональных данных и войти в официальный реестр операторов.
  2. Разместить под формой комментариев явный чекбокс согласия с прямой ссылкой на Политику конфиденциальности и согласие на обработку ПДн.
  3. Вести базу логов согласий (фиксировать дату, время, IP и версию политики на момент отправки).
  4. Обеспечить хранение базы данных строго на серверах внутри территории РФ (требование локализации баз данных).

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

Техническая сторона: минус лишний JavaScript

Помимо юридических рисков, форма комментариев ухудшает технические метрики Core Web Vitals:

  • Лишний скрипт в разметке: движок подключает файл /wp-includes/js/comment-reply.min.js на каждой странице статьи для перемещения формы при нажатии кнопки «Ответить». Это дополнительный HTTP-запрос и лишняя работа для браузера.
  • Блокировка рендеринга и рост DOM-дерева: пустая форма со всеми полями, кнопками и скрытыми инпутами утяжеляет итоговый HTML-код страницы.
  • Спам-нагрузка на базу данных: спам-боты постоянно бомбардируют скрипт wp-comments-post.php, создавая паразитную нагрузку на MySQL и PHP-процессы хостинга.

Задача: скрыть форму, но оставить старые ветки комментариев

Часто на посещаемых статьях уже накоплены ценные экспертные комментарии и отзывы, которые помогают в SEO и дают дополнительные поведенческие факторы. Удалять их нельзя.

Нам нужно идеальное решение:

  1. Старые комментарии остаются видимыми для читателей и поисковых роботов.
  2. Форма отправки нового отзыва полностью исчезает со всех страниц сайта.
  3. Скрипт comment-reply.min.js вырезается из очереди загрузки.
  4. Закрывается системный прием спам-запросов на уровне фильтров ядра.

Решение в 10 строк кода (через functions.php)

Не нужно ставить сторонние плагины вроде Disable Comments, которые создают лишние запросы к базе данных. Достаточно добавить компактный сниппет в файл functions.php вашей дочерней темы (например, reboot_child):

/**
 * 1. Глобальное закрытие комментирования на сайте.
 * Старые ветки комментариев остаются на страницах,
 * но сама форма отправки новых отзывов полностью скрывается.
 */
add_filter('comments_open', '__return_false', 20, 2);
add_filter('pings_open', '__return_false', 20, 2);

/**
 * 2. Отключение ненужного скрипта comment-reply.min.js
 * Освобождает очередь скриптов от лишнего HTTP-запроса.
 */
add_action('wp_enqueue_scripts', function () {
    wp_deregister_script('comment-reply');
}, 9999);

Как это работает изнутри:

  • Хук comments_open возвращает false для любых типов записей, страниц и медиафайлов. Функция темы comment_form() видит, что прием закрыт, и физически не выводит HTML-разметку формы.
  • Хук pings_open отключает прием уведомлений пингбэков и трэкбэков (еще один источник спам-ссылок).
  • wp_deregister_script('comment-reply') предотвращает регистрацию и загрузку браузерного скрипта ответов.
  • При этом функция вывода уже существующих записей wp_list_comments() продолжает штатно рендерить историю обсуждений из базы.

Куда вставить код на хостинге

  1. Войдите в панель управления хостинга (Beget, cPanel, ISPmanager) и откройте Файловый менеджер (или подключитесь через FileZilla по SFTP).
  2. Перейдите в папку вашей дочерней темы: /wp-content/themes/ваша_тема_child/.
  3. Откройте файл functions.php для редактирования.
  4. Вставьте предложенный фрагмент в конец файла и сохраните изменения.
  5. Очистите кэш сайта (через плагин кэширования или панель хостинга).

Результат оптимизации

После сохранения правок и проверки страницы в режиме инкогнито:

  • Чистый код статьи: исчезли громоздкие блоки полей ввода и юридические предупреждения.
  • Минус один скрипт: файл comment-reply.min.js больше не запрашивается браузером.
  • Нулевой риск по 152-ФЗ: сайт больше не собирает имена, почты и IP-адреса случайных посетителей через публичные формы.
  • Контент сохранен: все исторические ветки обсуждений остались на своих местах и продолжают работать на SEO.
Очищаем плагин Expert Review от jQuery
← Предыдущая статьяОчищаем плагин Expert Review от jQuery: лайки, опросы и FAQ на Vanilla JS
Поделиться с друзьями
Алексей

Веб-дизайнер и SEO оптимизатор. Занимаюсь созданием сайтов с 2010 года и их продвижение с 2012 года!

Оцените автора
( Пока оценок нет )
Web-Revenue.ru