Как отключить rss в wordpress

Как отключить rss в wordpress

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

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

Для начала следует отключить генерацию фидов, используя фильтры WordPress: do_feed, do_feed_rdf, do_feed_rss, do_feed_rss2 и do_feed_atom. Также стоит убедиться, что ссылки на ленты не попадают в <head> сайта. Это можно сделать через функцию remove_action для хука wp_head.

Дополнительно рекомендуется заблокировать доступ к RSS-адресам на уровне сервера: через .htaccess в Apache или nginx.conf в NGINX. Это гарантирует, что попытки обращения к фидам не будут обрабатываться даже при прямом вводе URL, независимо от настроек WordPress.

Удаление ссылок на RSS из шаблона темы

Удаление ссылок на RSS из шаблона темы

По умолчанию большинство тем WordPress автоматически добавляют ссылки на RSS-ленты в <head> сайта. Для их удаления необходимо вручную отредактировать файл functions.php активной темы.

  • Откройте файл functions.php в корневой директории темы, расположенной по пути /wp-content/themes/название_темы/.
  • Добавьте следующий код для отключения RSS-ссылок из <head>:
remove_action('wp_head', 'feed_links', 2);
remove_action('wp_head', 'feed_links_extra', 3);
  • Откройте файл header.php.
  • Удалите все строки вида:
    • <link rel="alternate" type="application/rss+xml" ...>
    • <link rel="alternate" type="application/atom+xml" ...>

Если в теме используются пользовательские хуки или функции, проверьте наличие вызовов bloginfo('rss2_url'), get_bloginfo('rss_url'), get_feed_link() и удалите их или замените.

Не забудьте очистить кэш сайта и браузера после внесения изменений, чтобы убедиться в полном отсутствии RSS-ссылок.

Отключение RSS-лент через functions.php

Отключение RSS-лент через functions.php

Чтобы полностью отключить RSS-ленты на сайте WordPress, откройте файл functions.php активной темы и добавьте следующий код:


function disable_rss_feeds() {
wp_die( __('RSS-ленты отключены. Посетите сайт напрямую.') );
}
add_action('do_feed', 'disable_rss_feeds', 1);
add_action('do_feed_rdf', 'disable_rss_feeds', 1);
add_action('do_feed_rss', 'disable_rss_feeds', 1);
add_action('do_feed_rss2', 'disable_rss_feeds', 1);
add_action('do_feed_atom', 'disable_rss_feeds', 1);

remove_action('wp_head', 'feed_links', 2);
remove_action('wp_head', 'feed_links_extra', 3);

Таким образом, WordPress перестанет публиковать RSS-ссылки в коде страниц и возвращать содержимое лент. После внесения изменений очистите кэш сайта и проверьте доступность URL, оканчивающихся на /feed/.

Перенаправление запросов к RSS на главную страницу

Перенаправление запросов к RSS на главную страницу

Чтобы исключить доступ к RSS-лентам и перенаправить все соответствующие запросы на главную страницу сайта, добавьте следующий код в файл functions.php активной темы:

function disable_rss_redirect() {
if (is_feed()) {
wp_redirect(home_url(), 301);
exit;
}
}
add_action('template_redirect', 'disable_rss_redirect');

Этот код перехватывает любые обращения к стандартным RSS-адресам WordPress (например, /feed/, /comments/feed/) и выполняет постоянное перенаправление (301 Moved Permanently) на главную страницу.

После внесения изменений очистите кэш сайта и, при наличии, кэш-плагины. Проверьте работу редиректа, обратившись к URL вида https://ваш-домен.ru/feed/. Должен произойти переход на главную страницу без отображения XML-ленты.

Удаление RSS с помощью фильтров WordPress

Удаление RSS с помощью фильтров WordPress

Для отключения RSS-лент в WordPress через фильтры необходимо использовать хук add_filter(), позволяющий изменить поведение встроенных функций без вмешательства в ядро. Основная задача – перехватить запросы к RSS и перенаправить их или отключить генерацию содержимого.

Добавьте в файл functions.php вашей темы следующий код:

function disable_rss_feed() {
wp_die( 'RSS-ленты отключены. Пожалуйста, посетите сайт напрямую.' );
}
add_action( 'do_feed', 'disable_rss_feed', 1 );
add_action( 'do_feed_rdf', 'disable_rss_feed', 1 );
add_action( 'do_feed_rss', 'disable_rss_feed', 1 );
add_action( 'do_feed_rss2', 'disable_rss_feed', 1 );
add_action( 'do_feed_atom', 'disable_rss_feed', 1 );

Для предотвращения появления ссылок на ленты в коде страницы удалите действия, добавляющие RSS в <head> сайта:

remove_action( 'wp_head', 'feed_links', 2 );
remove_action( 'wp_head', 'feed_links_extra', 3 );

Отключение RSS в файле .htaccess

Отключение RSS в файле .htaccess

Для блокировки RSS-лент через .htaccess, необходимо запретить доступ к соответствующим URL-адресам, связанным с генерацией XML-лент. Добавьте следующий код в корневой .htaccess файл WordPress-сайта:


RewriteEngine On
RewriteCond %{THE_REQUEST} /(feed|comments/feed)/? [NC]
RewriteRule ^ - [F,L]

Эта директива блокирует любые обращения к /feed/ и /comments/feed/, возвращая статус 403 Forbidden. Используется модуль mod_rewrite, который должен быть активен на сервере.

Для более жёсткой фильтрации добавьте правило, перекрывающее доступ к основным RSS- и Atom-форматам:


Order Allow,Deny
Deny from all

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

Проверка отсутствия RSS через инструменты разработчика

Проверка отсутствия RSS через инструменты разработчика

Для того чтобы убедиться в том, что на сайте WordPress отключён RSS, можно использовать инструменты разработчика, доступные в браузере. Эти инструменты позволяют анализировать запросы и убедиться в отсутствии ссылок на RSS-канал.

1. Откройте страницу вашего сайта в браузере (например, Google Chrome) и нажмите правую кнопку мыши. Выберите «Просмотр кода страницы» или используйте горячие клавиши Ctrl+Shift+I для Windows или Cmd+Option+I для macOS.

2. Перейдите на вкладку «Network» (Сеть). Это позволяет отслеживать все запросы, которые отправляются на сервер при загрузке страницы.

3. Обновите страницу с помощью кнопки «Reload» или клавиши Ctrl+R. В панели «Network» появятся все запросы, связанные с загрузкой контента.

4. В поле фильтра введите rss, чтобы проверить, появляются ли запросы, связанные с RSS. Если они не отображаются, это подтверждает, что RSS-канал на сайте отключён.

5. Если вы всё же обнаружили запросы, связанные с RSS (например, адреса типа /feed или /rss), это может означать, что отключение RSS было выполнено некорректно, и вам нужно перепроверить настройки или плагины, которые должны были это отключить.

Также можно проверить наличие мета-тегов, указывающих на RSS. Для этого перейдите на вкладку «Elements» (Элементы) и ищите теги link, содержащие атрибуты типа type=»application/rss+xml» или rel=»alternate» с указанием RSS-канала. Если таких тегов нет, это ещё один показатель того, что RSS отключён.

Вопрос-ответ:

Зачем нужно отключать RSS на сайте WordPress?

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

Что происходит, если отключить RSS ленты на сайте WordPress?

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

Можно ли вернуть RSS ленты на WordPress, если они были отключены?

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

Ссылка на основную публикацию