Как настроить RSS-ленты в WordPress, чтобы не тянуть полный контент и дубли

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

Ниже разберём рабочий сценарий: как ограничить RSS, что именно менять в WordPress, как проверить результат и где чаще всего ломают ленту плагинами или темой.

Когда RSS становится проблемой

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

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

Что обычно видно в диагностике

  • в RSS отображается полный текст записи вместо анонса;
  • в ленте есть блоки, которые не нужны подписчикам: кнопки, related posts, рекламные вставки;
  • агрегаторы подхватывают записи быстрее, чем поисковик видит ваш оригинал;
  • в письмах из RSS-рассылки ломается верстка из-за лишнего HTML;
  • в ленту попадают типы записей, которые не должны индексироваться и распространяться.

Сначала определите, что именно вы хотите изменить

У RSS в WordPress есть несколько уровней настройки. Не всегда нужно «отключать RSS» целиком — чаще достаточно изменить формат ленты или убрать из неё лишние элементы. Это безопаснее для пользователей и меньше ломает интеграции.

ПодходЧто делаетКогда подходитКомпромисс
Настройки WordPressМеняет количество записей и формат анонсаЕсли нужен стандартный RSS без кодаМало контроля над HTML
Код в теме или мини-плагинеТочно управляет содержимым лентыЕсли нужно убрать конкретные блокиНужно тестировать после обновлений
Плагин для SEO/чисткиСкрывает лишние элементы и дублиЕсли на сайте уже есть комплексная оптимизацияЗависимость от настроек плагина

Если у вас уже стоит плагин для технической чистки, например Clearfy Pro, часть задач можно закрыть через него. Но если нужна точечная логика для конкретного проекта, надёжнее добавить небольшой код и понимать, что он делает.

Пошаговая настройка RSS в WordPress

1. Переведите ленту с полного текста на анонс

Это базовая настройка, если вы не хотите раздавать полный контент. В админке откройте Настройки → Чтение и выберите вывод краткой версии записи в RSS.

Если нужен контроль через код, можно принудительно задать формат через фильтр pre_option_rss_use_excerpt. Такой вариант полезен, если тему или плагин кто-то уже переопределил в админке.

<?php
add_filter( 'pre_option_rss_use_excerpt', function() {
    return 1;
} );

Этот код лучше добавлять в мини-плагин или в functions.php дочерней темы. Если вставляете в тему, помните: при смене темы настройка исчезнет.

2. Уберите лишние блоки из RSS-вывода

WordPress позволяет фильтровать содержимое ленты до отправки. Это удобно, если в записи есть блоки, которые нужны на сайте, но не нужны в RSS: рекламные вставки, CTA, блоки авторов, виджеты, внутренние ссылки.

<?php
add_filter( 'the_content_feed', 'wpcource_trim_rss_content' );
add_filter( 'the_excerpt_rss', 'wpcource_trim_rss_content' );

function wpcource_trim_rss_content( $content ) {
    if ( is_feed() ) {
        $content = preg_replace( '#<div class="promo-box">.*?</div>#is', '', $content );
        $content = preg_replace( '#<section class="related-posts">.*?</section>#is', '', $content );
    }

    return $content;
}

Здесь важно не переусердствовать с регулярками. Если у вас сложная разметка, лучше удалять блоки на уровне шаблона контента или через отдельные хуки, а не пытаться «вычистить всё» одной регуляркой.

3. Ограничьте типы записей, которые попадают в ленту

Если на сайте есть кастомные типы записей, не всегда нужно отдавать их в общий RSS. Иногда это внутренние записи, карточки каталога, события или служебные материалы. У таких сущностей часто нет смысла в публичной ленте.

Для этого можно использовать фильтр pre_get_posts и отдельно проверять запрос на feed. Пример ниже оставляет в RSS только обычные записи.

<?php
add_action( 'pre_get_posts', function( $query ) {
    if ( is_admin() || ! $query->is_main_query() || ! $query->is_feed() ) {
        return;
    }

    $query->set( 'post_type', array( 'post' ) );
} );

Если вам нужны ещё и страницы или отдельный CPT, добавьте их явно. Не полагайтесь на поведение темы или плагина по умолчанию.

Как проверить, что RSS стал работать как надо

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

  • Откройте /feed/ и проверьте, что в ленте отображается анонс, а не полный текст.
  • Посмотрите исходный XML: нет ли в нём лишних блоков, которые вы пытались убрать.
  • Проверьте отдельные рубрики: /category/slug/feed/.
  • Если используются кастомные типы записей, убедитесь, что они не попадают в общий поток.
  • Подпишитесь на ленту в тестовом агрегаторе или почтовом клиенте и проверьте отображение HTML.

Если у вас есть доступ к логам или аналитике, сравните количество обращений к /feed/ до и после изменений. Это не всегда даёт идеальную картину, но помогает заметить неожиданные боты и парсеры.

Частые ошибки и как их исправить

Лента пустая или отдает 500

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

В RSS пропали нужные изображения

Так бывает, если вы слишком агрессивно чистите HTML. Некоторые агрегаторы и почтовые сервисы плохо работают с нестандартной разметкой, но изображения в ленте всё же могут быть полезны. Если вы вырезаете блоки через регулярки, убедитесь, что не удаляете <img> вместе с контейнером записи.

Плагин SEO или кэш мешает увидеть изменения

Кэш может отдавать старую версию ленты даже после правок. Очистите серверный кэш, кэш плагина и, если есть, CDN. После этого откройте RSS в режиме инкогнито или через curl, чтобы исключить локальный браузерный кэш.

В ленте остаются лишние блоки из темы

Некоторые темы добавляют контент через фильтр the_content. Если вы чистите только the_content_feed, часть вставок может всё равно попадать в RSS. В таком случае нужно смотреть, на каком этапе тема добавляет блок, и отключать его точечно.

Безопасность и производительность

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

С точки зрения производительности RSS тоже стоит держать простым. Не добавляйте в ленту тяжёлые блоки, сложные шорткоды и динамические вставки, которые тянут дополнительные запросы. Лента должна генерироваться быстро и предсказуемо.

Если вам нужно централизованно чистить сайт от дублей, лишних элементов и технического мусора, имеет смысл посмотреть в сторону инструментов уровня Clearfy Pro: там часть задач закрывается без ручного кода. Но для точечной настройки RSS всё равно полезно понимать, какие фильтры и запросы вы меняете.

Практический чек-лист перед публикацией

  • RSS отдаёт анонс, а не полный текст.
  • Из ленты убраны рекламные и служебные блоки.
  • Кастомные типы записей не попадают в общий feed без необходимости.
  • Проверены рубрики и другие feed-URL.
  • Кэш очищен на всех уровнях.
  • Лента открывается без ошибок XML.
  • Тестовый агрегатор отображает контент корректно.

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

Как закрыть от индексации архив авторов в WordPress без потери полезных страниц
14.09.2026
Как удалить пустые теги meta в WordPress без плагинов
06.09.2026
Как отключить emoji и лишние Dashicons в WordPress без поломки админки
31.08.2026
Удаление неиспользуемых терминов таксономий в WordPress
24.09.2026
WooCommerce: автоматическое очищение корзин и отменённых заказов
23.08.2026

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