Как исключить отдельные страницы из XML Sitemap в WordPress без плагина

Ситуация типичная: сайт уже работает, sitemap подключен, а в индексную карту попадают страницы, которые не должны там быть — служебные разделы, тестовые страницы, дубли, архивы с пустым или слабым содержимым. Если просто закрыть URL в robots.txt, это не решает задачу: поисковик может продолжить видеть адрес, но уже без нормального сигнала из sitemap. В WordPress правильнее убрать такие URL именно из XML Sitemap.

Когда это действительно нужно

Исключать URL из sitemap имеет смысл не «на всякий случай», а когда страница не должна участвовать в обходе и переобходе поисковиком. Обычно это:

  • служебные страницы вроде «Спасибо за заявку» или «Личный кабинет»;
  • дубли контента, которые уже закрыты каноникалами или редиректами;
  • временные посадочные страницы;
  • архивы, которые не дают ценности в поиске;
  • страницы с параметрами, если они попали в карту через сторонний плагин.

Если речь о полноценной странице, которая должна ранжироваться, убирать её из sitemap не стоит: это ослабляет сигнал для индексации. В таком случае сначала проверьте canonical, мета-robots и внутренние ссылки.

Диагностика: где именно появляется лишний URL

Перед правкой важно понять источник. В WordPress sitemap может формировать ядро, SEO-плагин или отдельный плагин для карт сайта. От этого зависит способ исключения.

Проверьте, кто генерирует sitemap

Откройте адрес вроде /wp-sitemap.xml — это стандартный sitemap WordPress. Если у вас вместо него используется /sitemap_index.xml или похожий адрес, карту, скорее всего, генерирует SEO-плагин. Тогда фильтры ядра WordPress могут не сработать.

Сверьте URL в самой карте

Посмотрите, в каком разделе sitemap находится лишняя страница: в постах, страницах, таксономиях или пользовательском типе записей. Это помогает не отключать лишнее целиком.

ПодходКогда подходитМинус
Фильтр WordPressЕсли используется стандартный sitemap ядраНе влияет на sitemap SEO-плагинов
Настройки SEO-плагинаЕсли sitemap генерирует Yoast, Rank Math и т.п.Нужно искать нужный экран настроек
Код в теме или мини-плагинеЕсли нужен точечный контрольТребует аккуратного тестирования после обновлений

Пошаговое решение через код

Если у вас стандартный sitemap WordPress, отдельные записи можно убрать через фильтр wp_sitemaps_posts_query_args. Он позволяет исключить конкретные ID из выборки, из которой собирается карта сайта.

<?php
add_filter( 'wp_sitemaps_posts_query_args', function( $args, $post_type ) {
	if ( 'page' !== $post_type ) {
		return $args;
	}

	// Исключаем конкретные страницы из sitemap.
	$excluded_ids = array( 42, 108 );

	if ( empty( $args['post__not_in'] ) ) {
		$args['post__not_in'] = array();
	}

	$args['post__not_in'] = array_merge( $args['post__not_in'], $excluded_ids );

	return $args;
}, 10, 2 );

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

Если нужно убрать целый тип записей

Иногда проще не вычищать отдельные ID, а полностью отключить тип записей из sitemap. Для этого есть фильтр wp_sitemaps_post_types.

<?php
add_filter( 'wp_sitemaps_post_types', function( $post_types ) {
	unset( $post_types['attachment'] );
	unset( $post_types['landing'] );

	return $post_types;
} );

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

Как сделать это через SEO-плагин

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

Практически всегда стоит проверить три места:

  • настройки типа записей;
  • настройки таксономий;
  • исключения на уровне конкретной записи или страницы.

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

Проверка результата после внедрения

После правки не ограничивайтесь визуальной проверкой в браузере. Нужно убедиться, что URL действительно исчез из sitemap, а не просто перестал отображаться в кэше.

  1. Откройте sitemap в режиме инкогнито.
  2. Проверьте, что исключённый URL больше не присутствует в XML.
  3. Если используется кеш на уровне плагина или сервера, очистите его.
  4. Переоткройте sitemap и убедитесь, что изменения сохранились.
  5. Проверьте исходный код XML: иногда страница исчезает из интерфейса, но остаётся в старой версии кеша.

Дополнительно можно посмотреть ответ сервера через curl:

curl -I https://example.com/wp-sitemap.xml

Если sitemap отдаётся с кэшированием, а изменения не видны, проблема может быть не в коде, а в CDN, reverse proxy или плагине кеша.

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

Пытаются закрыть URL в robots.txt вместо sitemap

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

Правят functions.php и теряют изменения после обновления темы

Для постоянного решения используйте мини-плагин или mu-plugin. Это особенно важно на сайтах, где тема часто обновляется.

Не учитывают, что sitemap генерирует SEO-плагин

Фильтры WordPress не повлияют на карту, если её строит сторонний плагин. В этом случае сначала найдите его настройки, а уже потом добавляйте код.

Удаляют из sitemap страницу, которая должна индексироваться

Такое часто случается при массовой чистке дублей. Перед исключением проверьте, есть ли у страницы входящие ссылки, canonical и поисковый спрос. Иначе можно случайно ослабить важный URL.

Чек-лист перед публикацией изменений

  • Поняли, кто именно генерирует sitemap: ядро WordPress или SEO-плагин.
  • Определили точный тип URL: страница, запись, CPT, таксономия.
  • Добавили исключение точечно, а не отключили всё целиком.
  • Очистили кеш сайта, сервера и CDN.
  • Проверили sitemap в браузере и через curl.
  • Убедились, что нужные страницы не исчезли из sitemap случайно.

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

С точки зрения производительности точечное исключение через фильтр почти не влияет на нагрузку. Но если вы начинаете строить сложную логику на каждом запросе sitemap, лучше не делать лишних обращений к базе. Жёстко заданный список ID или заранее подготовленный массив обычно надёжнее.

Если на сайте много служебных URL, имеет смысл разнести ответственность: sitemap должен содержать только то, что реально нужно поиску, а не быть свалкой всех доступных адресов. Для сайтов на WordPress это часто решается комбинацией настроек SEO-плагина и небольшого кода. Если нужен более широкий контроль над дублями и технической чисткой, можно посмотреть в сторону Clearfy Pro: https://wpshop.ru/plugins/clearfy?utm_source=wpinfo.ru&utm_medium=article&utm_campaign=otklyuchit-otdelnye-stranicy-iz-xml-sitemap-wordpress

Если после внедрения URL всё ещё появляется в индексе, это не всегда ошибка sitemap. Иногда поисковик уже знает адрес из старых ссылок или внешних источников. Тогда нужно отдельно проверить canonical, редиректы и статус страницы.

Как убрать из индекса архивы тегов и рубрик в WordPress
08.10.2026
Как отладить проблемы с отображением визуального редактора Gutenberg в WordPress
22.09.2026
Как автоматически переводить посты WordPress на другие языки
16.09.2026
Как отключить отправку писем из staging-версии WordPress
11.08.2026
Оптимизация изображений в WordPress для ускорения сайта
01.10.2026