Если вы не используете RSS, ленты в WordPress только создают лишние технические URL. Обычно это не ломает сайт, но добавляет страницы, которые вам не нужны: главную ленту, ленты рубрик, меток, авторов, комментариев и архивов. В такой ситуации проще отключить RSS полностью и сразу проверить, что старые адреса больше не отдаются.
Самый надёжный способ — сделать это через небольшой код в теме или, что удобнее, в мини-плагине. Так вы не зависите от настроек темы и не привязываетесь к конкретному плагину. Ниже покажу рабочий вариант и способ проверки результата.
Что именно нужно отключить
В WordPress RSS-ленты не ограничиваются только адресом /feed/. По умолчанию доступны несколько типов лент:
- общая лента сайта;
- ленты записей в рубриках и метках;
- ленты комментариев;
- ленты архивов автора и дат;
- ленты вложений и других архивных страниц, если они формируются темой или плагинами.
Если задача — убрать именно RSS как механизм, лучше не отключать один адрес вручную, а перехватить все запросы к feed-страницам и отдавать 404. Тогда поисковики и браузеры не будут видеть эти URL как рабочие.
Практический способ: отключить ленты через код
Перед изменениями сделайте резервную копию файлов сайта. Если вы правите functions.php активной темы, обновление темы может затереть изменения. Для постоянного решения безопаснее создать маленький плагин или добавить код в дочернюю тему.
Ниже вариант, который отключает все стандартные RSS-ленты WordPress и возвращает 404 для любых запросов к ним:
<?php
/**
* Plugin Name: Disable RSS Feeds
* Description: Отключает RSS-ленты WordPress.
*/
add_action( 'do_feed', 'wptricks_disable_feed', 1 );
add_action( 'do_feed_rdf', 'wptricks_disable_feed', 1 );
add_action( 'do_feed_rss', 'wptricks_disable_feed', 1 );
add_action( 'do_feed_rss2', 'wptricks_disable_feed', 1 );
add_action( 'do_feed_atom', 'wptricks_disable_feed', 1 );
add_action( 'do_feed_rss2_comments', 'wptricks_disable_feed', 1 );
add_action( 'do_feed_atom_comments', 'wptricks_disable_feed', 1 );
function wptricks_disable_feed() {
global $wp_query;
$wp_query->is_feed = false;
$wp_query->set_404();
status_header( 404 );
nocache_headers();
include get_query_template( '404' );
exit;
}Этот код не просто скрывает ссылки на ленты, а именно отключает их обработку. Если кто-то откроет старый feed-адрес вручную, сайт покажет 404-страницу.
Если вам не нужен отдельный плагин, тот же код можно разместить в functions.php дочерней темы. Логика будет той же, но плагин удобнее тем, что его проще отключить и он не зависит от темы.
Почему не стоит ограничиваться только удалением ссылок из шаблона
Иногда советуют просто убрать из <head> ссылки на RSS через фильтры или настройки темы. Это помогает скрыть ленты от обычного посетителя, но сами URL продолжают работать. Для вашей задачи это слабое решение: лишние адреса остаются доступными, а значит, технически сайт всё ещё отдаёт RSS.
Если цель — сократить количество ненужных URL, нужен именно серверный ответ 404. Тогда ленты перестают существовать как рабочие страницы, а не только исчезают из интерфейса.
Как проверить, что RSS действительно отключён
После установки кода проверьте несколько типовых адресов. Откройте их в браузере или через инструмент проверки ответа сервера:
https://ваш-домен.ru/feed/https://ваш-домен.ru/comments/feed/https://ваш-домен.ru/category/имя-рубрики/feed/https://ваш-домен.ru/tag/имя-mетки/feed/
Ожидаемый результат — 404-страница, а не XML с записями. Если у вас включено кэширование на уровне плагина, сервера или CDN, после изменений очистите кэш, иначе старый ответ может сохраняться какое-то время.
Проверять лучше не только в браузере. Если есть доступ к командной строке, можно посмотреть заголовки ответа:
curl -I https://ваш-домен.ru/feed/В ответе должен быть статус 404. Если видите 200 или XML-контент, значит, код не сработал, либо запрос обрабатывается кэшем раньше WordPress.
Что может помешать отключению
На практике проблемы обычно связаны не с самим кодом, а с окружением:
- Кэш-плагин. Он может отдавать сохранённую версию ленты до того, как запрос дойдёт до WordPress.
- Серверный кэш или CDN. Аналогично может держать старый ответ.
- Неправильное место для кода. Если код вставлен в неактивную тему или файл с ошибкой, WordPress его просто не выполнит.
- Конфликт с другим плагином. Редко, но плагины для SEO, новостных лент или интеграций могут добавлять собственную обработку feed-URL.
Если после установки всё ещё открывается XML, сначала очистите все уровни кэша. Затем временно отключите плагины, которые могут работать с лентами, и проверьте ещё раз.
Когда лучше не отключать RSS полностью
Полное отключение подходит не всем. Если у сайта есть подписчики, внешние агрегаторы, автоматические импортеры или интеграции, которые забирают контент через RSS, отключение сломает этот сценарий. В таком случае лучше не убирать ленты, а ограничить их использование на уровне шаблона или закрыть только отдельные типы лент.
Если же RSS не используется вообще, отключение оправдано: вы убираете лишние технические URL и уменьшаете количество страниц, которые нужно учитывать при поддержке сайта.
Коротко о рабочем порядке действий
Сначала добавьте код отключения RSS в мини-плагин или дочернюю тему. Затем очистите кэш, если он есть. После этого проверьте несколько адресов feed вручную или через curl. Если в ответе 404, задача решена: ленты больше не доступны, а лишние технические URL на сайте отключены.