Как отключить XML sitemap для отдельных типов записей в WordPress

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

Ниже — рабочие способы убрать отдельные типы записей из XML sitemap в WordPress: через настройки плагина, через код и через проверку результата. Без выдуманных хуков и без лишней магии.

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

Не стоит вырезать из sitemap всё подряд. Сначала проверьте, что у вас именно техническая задача, а не попытка спрятать контент от индексации “на всякий случай”. Убирать тип записей из sitemap имеет смысл, если:

  • тип записей служебный и не должен попадать в поиск;
  • в нём много дублей или почти пустых страниц;
  • контент создаётся автоматически и не рассчитан на SEO;
  • нужно сократить мусор в карте сайта перед переобходом;
  • часть записей уже закрыта через noindex, но вы хотите убрать их ещё и из sitemap.

Важно: удаление из sitemap не запрещает индексацию само по себе. Если URL уже где-то есть во внутренних ссылках или внешних ссылках, поисковик может найти его и без карты сайта. Поэтому sitemap — это не замена noindex и не замена правильной архитектуре ссылок.

Диагностика: что именно попадает в sitemap

В WordPress XML sitemap генерируется ядром, если вы не отключали его или не заменяли плагином. Сначала откройте карту сайта и посмотрите, какие типы записей там есть. Обычно это что-то вроде /wp-sitemap-posts-post-1.xml, /wp-sitemap-posts-page-1.xml и отдельные карты для кастомных типов.

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

Как понять, кто генерирует sitemap

  • Если URL карты начинается с /wp-sitemap-, это ядро WordPress.
  • Если карта выглядит как /sitemap_index.xml или похожа на индекс плагина, проверьте настройки SEO-плагина.
  • Если sitemap отдаёт 404 или пустую страницу, сначала проверьте постоянные ссылки и конфликт плагинов.

Способ 1: убрать тип записей через настройки SEO-плагина

Если sitemap генерирует SEO-плагин, самый безопасный путь — отключить нужный тип записей в его интерфейсе. У разных плагинов это делается по-разному, но логика одна: найти раздел XML sitemap и снять галочку с нужного post type.

Плюс этого подхода в том, что вы не завязываетесь на код темы и не рискуете потерять настройку при обновлении. Минус — если плагин сменится, настройку придётся повторять.

ПодходКогда подходитМинус
Настройка в плагинеЕсли sitemap уже генерирует SEO-плагинЗависимость от интерфейса и конкретного плагина
Код в functions.php или мини-плагинеЕсли нужен точечный контрольНужно следить за обновлениями и тестировать
Отключение типа записей целикомЕсли тип не нужен публичноМожет сломать архивы и внутренние ссылки

Способ 2: убрать тип записей из ядра WordPress через код

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

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

<?php
add_filter( 'wp_sitemaps_post_types', function( $post_types ) {
    // Убираем служебный тип записей из XML sitemap.
    unset( $post_types['product'] );
    unset( $post_types['portfolio'] );

    return $post_types;
} );

В примере product и portfolio — это условные post type. Подставьте свои реальные имена. Их можно посмотреть в коде плагина или темы, которая регистрирует тип записей, либо через get_post_types() в отладочном коде.

Если нужно убрать только часть записей, а не весь тип

Фильтр выше отключает тип целиком. Если задача тоньше — например, убрать только записи со статусом черновика, скрытые записи или записи с определённой меткой — тогда нужен другой подход. Ядро sitemap не даёт удобного публичного фильтра “по одной записи” на уровне постов так же просто, как на уровне типов. В таких случаях обычно проще либо закрыть записи от индексации, либо использовать SEO-плагин с более гибкой логикой, либо исключать записи на уровне генерации карты сайта в плагине.

Способ 3: отключить карту для конкретного типа в SEO-плагине

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

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

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

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

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

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

Быстрая техническая проверка

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

Команда не покажет содержимое XML, но поможет быстро понять, отдаётся ли карта вообще. Если у вас SEO-плагин, замените URL на реальный адрес sitemap.

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

  • Отключили не тот sitemap. Часто путают карту записей, таксономий и авторов. Сначала посмотрите, какой именно URL содержит лишние ссылки.
  • Правят родительскую тему. После обновления изменения исчезают. Для кода используйте дочернюю тему или мини-плагин.
  • Ожидают мгновенного удаления из индекса. Sitemap обновляется быстро, а поисковая выдача — нет. Это разные процессы.
  • Убирают тип из sitemap, но оставляют на него внутренние ссылки. Поисковик всё равно найдёт URL через сайт.
  • Путают noindex и удаление из sitemap. Это разные механизмы. Иногда нужны оба, иногда достаточно одного.

Что делать, если тип записей нужен в админке, но не нужен в поиске

Это самый частый рабочий сценарий. В таком случае не удаляйте тип записей полностью и не ломайте его публичность без необходимости. Лучше:

  • убрать тип из XML sitemap;
  • проверить, нужен ли ему архив;
  • при необходимости добавить noindex на отдельные записи или архив;
  • убрать лишние внутренние ссылки на служебные страницы;
  • оставить контент доступным только там, где он реально нужен пользователю.

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

Практические советы по безопасности и производительности

Код для sitemap лучше держать в отдельном мини-плагине или в дочерней теме, а не в основной теме. Так вы не потеряете изменения при обновлении дизайна. Если сайт большой, после правок проверьте кеш: иногда старая версия sitemap продолжает отдаваться из страницы, CDN или серверного кеша.

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

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

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

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

Как создать резервную копию WordPress с помощью PHP скрипта
03.10.2026
WordPress отладка и логирование ошибок: практическое руководство
27.09.2026
Удаление пустых метаданных в WordPress: как оптимизировать базу данных
03.10.2026
Как убрать дубли страниц из XML sitemap в WordPress
11.09.2026
Как создать многоязычный сайт на WordPress с помощью Polylang
26.09.2026