WPTips

Как отключить RSS-ленты в WordPress и закрыть их от индексации

Если RSS-ленты на сайте не нужны, их лучше не оставлять «как есть». По умолчанию WordPress публикует несколько типов лент, и поисковики, парсеры и сервисы мониторинга могут ходить по ним отдельно от основного сайта. Это не всегда критично, но на небольших проектах ленты часто создают лишние URL, дубли и ненужную нагрузку.

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

Какие RSS-ленты есть в WordPress

WordPress генерирует не одну ленту, а несколько. Самые заметные адреса обычно такие:

  • /feed/ — общая лента сайта;
  • /comments/feed/ — лента комментариев;
  • /category/slug/feed/ — лента рубрики;
  • /tag/slug/feed/ — лента метки;
  • /author/username/feed/ — лента автора, если она доступна на сайте.

На практике это означает, что даже если вы не ставили отдельный плагин для RSS, WordPress уже отдает несколько вариантов фидов. Иногда они нужны для подписчиков и интеграций. Иногда — нет, и тогда их имеет смысл убрать или хотя бы закрыть от индексации.

Когда лучше отключать ленты полностью, а когда — только закрывать от индексации

Если сайт не использует RSS вообще, безопаснее отключить ленты на уровне WordPress или через плагин. Тогда URL лент перестанут отдавать контент, а не будут просто скрыты от поисковиков.

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

СценарийЧто делать
Корпоративный сайт, лендинг, сайт услугОбычно можно отключить RSS полностью
Блог с подписчикамиЛучше оставить ленты, но ограничить индексацию
Сайт с внешними сервисами, которые читают RSSНе отключать, а закрыть от индексации

Как отключить RSS-ленты в WordPress без плагина

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

Добавьте в functions.php дочерней темы или в отдельный мини-плагин такой код:

function wptips_disable_rss_feeds() {
	wp_die( 'RSS-ленты на этом сайте отключены.' );
}

add_action( 'do_feed', 'wptips_disable_rss_feeds', 1 );
add_action( 'do_feed_rdf', 'wptips_disable_rss_feeds', 1 );
add_action( 'do_feed_rss', 'wptips_disable_rss_feeds', 1 );
add_action( 'do_feed_rss2', 'wptips_disable_rss_feeds', 1 );
add_action( 'do_feed_atom', 'wptips_disable_rss_feeds', 1 );
add_action( 'do_feed_rss2_comments', 'wptips_disable_rss_feeds', 1 );
add_action( 'do_feed_atom_comments', 'wptips_disable_rss_feeds', 1 );

Этот вариант не удаляет сами правила WordPress, но останавливает вывод ленты и показывает сообщение вместо контента фида. Для большинства сайтов этого достаточно.

Если хотите не показывать текстовое сообщение, а отдавать 404 или 410, можно заменить wp_die() на более жесткую обработку. Но здесь уже важно понимать разницу: 404 означает «не найдено», 410 — «удалено навсегда». Для обычного сайта чаще достаточно стандартного сообщения, потому что оно безопаснее и проще в сопровождении.

Как закрыть RSS от индексации, не отключая его

Если ленты нужны пользователям или сервисам, но не должны попадать в поиск, задача решается мягче. Самый надежный путь — отдать для RSS заголовок X-Robots-Tag: noindex. Это работает на уровне ответа сервера и подходит для XML-документов, включая фиды.

В WordPress можно добавить такой код в functions.php дочерней темы или в мини-плагин:

function wptips_noindex_rss_feeds() {
	if ( is_feed() ) {
		header( 'X-Robots-Tag: noindex, follow', true );
	}
}
add_action( 'send_headers', 'wptips_noindex_rss_feeds' );

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

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

Что делать с robots.txt и мета-тегами

Для RSS-лент часто пытаются использовать robots.txt, но это не лучший основной способ. Запрет в robots.txt мешает сканированию, но не гарантирует удаление уже известных URL из индекса. Кроме того, если поисковик не может зайти в документ, он не увидит там noindex или другой сигнал.

Поэтому для лент лучше ориентироваться на два варианта:

  • если ленты не нужны вообще — отключить их на уровне WordPress;
  • если ленты нужны, но не должны индексироваться — отдать X-Robots-Tag: noindex;
  • robots.txt использовать только как дополнительную меру, а не как единственный способ.

Мета-тег <meta name="robots" ...> для RSS обычно не подходит, потому что лента — это XML, а не HTML-страница. Для таких URL правильнее использовать именно HTTP-заголовок.

Как проверить, что всё работает

После настройки не ограничивайтесь открытием страницы в браузере. Проверка должна показать, что сервер действительно отдает нужный ответ.

Если вы отключали ленты, откройте в браузере адрес /feed/ и несколько типовых URL, например /comments/feed/ или фид рубрики. Они должны либо показывать ваше сообщение, либо отдавать ошибку, которую вы настроили.

Если вы закрывали ленты от индексации, проверьте заголовки ответа. Удобнее всего сделать это через консоль:

curl -I https://example.com/feed/

В ответе должен быть заголовок X-Robots-Tag: noindex, follow, если вы использовали код выше. Если заголовка нет, значит код не подключился, сработал не тот шаблон или его перебивает другой плагин.

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

Типичные ошибки при отключении RSS

Самая частая ошибка — закрыть ленты в robots.txt и считать задачу решенной. Это не отключение и не полноценная деиндексация. Если URL уже в индексе, одного запрета в robots обычно недостаточно.

Вторая ошибка — отключить только /feed/, забыв про фиды рубрик, меток, авторов и комментариев. В WordPress их несколько, и если закрыть только один адрес, остальные останутся доступными.

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

И еще один нюанс: если RSS использовался внешними сервисами, после отключения они перестанут получать обновления. Это не проблема WordPress, а следствие изменения логики публикации. Поэтому сначала проверьте, не забирает ли кто-то ваши ленты по расписанию.

Что выбрать на практике

Если сайт небольшой и RSS не нужен ни людям, ни сервисам, проще всего отключить ленты полностью. Это убирает лишние URL и не оставляет поводов для дублей.

Если ленты нужны как канал доставки контента, но вы не хотите видеть их в поиске, оставьте их рабочими и добавьте X-Robots-Tag: noindex. Для WordPress это самый аккуратный вариант: он не ломает подписки и при этом решает задачу с индексацией.

Если вы хотите быстро убрать лишние дубли и технические URL на сайте, похожие задачи удобно решать через Clearfy Pro: у него есть инструменты для чистки WordPress от технического мусора и SEO-дублей. Но для RSS все равно важно понимать, что именно вы делаете — отключаете ленту или только закрываете ее от индексации.

В итоге выбор простой: нет потребности в RSS — отключайте; нужна доставка контента, но не нужна индексация — ставьте noindex на фиды. Это безопаснее, чем пытаться спрятать ленты только через robots.txt или оставлять их без контроля.

×
Страшно выгодная скидка!

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

Забери скидку сейчас ⋙