Как отключить XML sitemap в WordPress и заменить его своим вариантом

Встроенная XML-карта сайта в WordPress удобна, пока не появляется задача тонкой настройки: исключить часть архивов, отдать отдельный sitemap для медиа, убрать служебные URL или вообще передать генерацию карты сайта внешнему плагину. В таких случаях важно не просто «выключить sitemap», а сделать это так, чтобы поисковики не получили пустой файл, дубли или цепочку редиректов.

Ниже — рабочий сценарий: как понять, что именно мешает, чем отключать встроенный sitemap, как подключить свой вариант и что проверить после внедрения.

Когда встроенный sitemap WordPress действительно мешает

С 5.5 WordPress умеет отдавать XML sitemap из коробки. Для небольших сайтов это нормально, но на практике проблемы возникают в нескольких типовых ситуациях:

  • нужно исключить из карты сайта служебные типы записей, которые не должны индексироваться;
  • у сайта уже есть sitemap от SEO-плагина, и оба варианта доступны одновременно;
  • нужно разделить sitemap по логике проекта: записи, страницы, таксономии, изображения, видео;
  • карта сайта отдаёт URL, которые потом закрыты robots.txt или noindex, и это создаёт шум для обхода;
  • после миграции остались старые sitemap-адреса, а новые уже генерируются другим инструментом.

Диагностика: что именно проверить перед изменениями

Сначала убедитесь, что проблема не в дублирующемся источнике sitemap. Откройте в браузере:

  • /wp-sitemap.xml — встроенный sitemap WordPress;
  • /sitemap_index.xml — часто это SEO-плагин;
  • /robots.txt — там может быть указан только один из вариантов;
  • логи ответа сервера, если sitemap отдаёт 404, 403 или редирект.

Если у вас одновременно доступны /wp-sitemap.xml и /sitemap_index.xml, это уже повод выбрать один источник и убрать второй из поля зрения поисковиков.

Как отключить встроенный XML sitemap в WordPress

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

<?php
add_filter( 'wp_sitemaps_enabled', '__return_false' );

Код можно добавить в functions.php дочерней темы или в небольшой mu-plugin, если решение должно переживать смену темы. Для production mu-plugin обычно надёжнее: меньше шансов потерять настройку после обновления темы.

Вариант через mu-plugin

Создайте файл, например wp-content/mu-plugins/disable-wp-sitemap.php:

<?php
/**
 * Plugin Name: Disable WP Sitemap
 */
add_filter( 'wp_sitemaps_enabled', '__return_false' );

После этого встроенный /wp-sitemap.xml должен перестать открываться. Если он всё ещё доступен, проверьте кэш на сервере или CDN: иногда старый ответ продолжает отдаваться из кэша.

Чем заменить sitemap: сравнение вариантов

Выбор зависит от того, кто должен управлять картой сайта и насколько сложная у вас структура.

ПодходКогда подходитПлюсыМинусы
Встроенный sitemap WordPressПростой сайт без тонкой SEO-логикиНе нужен плагин, минимум настроекСлабый контроль над исключениями и структурой
SEO-плагинНужны правила индексации, исключения и отдельные sitemapУдобно управлять типами контента и таксономиямиНужно следить, чтобы не было второго sitemap
Свой генератор через кодНужен нестандартный формат или интеграция с внешней системойПолный контрольНужно поддерживать код и тестировать обновления

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

Как подключить свой sitemap и не сломать индексацию

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

Минимальный сценарий выглядит так:

  1. отключаете встроенный sitemap WordPress;
  2. включаете sitemap в SEO-плагине или своём коде;
  3. проверяете, что старый адрес отдаёт 404 или 410, а не дублирует контент;
  4. обновляете ссылку на sitemap в robots.txt;
  5. проверяете, что в карте нет URL, закрытых от индексации.

Пример: добавить ссылку на sitemap в robots.txt

Если robots.txt у вас формируется вручную, достаточно оставить один актуальный адрес:

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

Sitemap: https://example.com/sitemap_index.xml

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

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

После отключения и замены sitemap проверьте не только открытие URL в браузере, но и фактический ответ сервера.

  • /wp-sitemap.xml должен быть недоступен или отдавать 404/410, если вы сознательно убрали встроенный вариант;
  • новый sitemap должен открываться без редиректов;
  • внутри карты не должно быть URL с noindex, 404 или редиректами;
  • в robots.txt должен быть указан только актуальный sitemap;
  • в Search Console или Яндекс Вебмастере не должно быть ошибок чтения карты сайта.

Проверить код ответа можно через curl:

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

Если старый адрес отвечает 200 OK, значит отключение не сработало или ответ кэшируется. Если новый sitemap отдаёт 301 или 302, лучше убрать редирект и отдавать конечный URL сразу.

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

Отключили sitemap, но поисковик всё ещё видит старый адрес

Чаще всего причина в кэше на сервере, CDN или в том, что sitemap уже был отправлен в Search Console и ещё не переобходился. Сначала проверьте реальный HTTP-ответ, а потом уже смотрите в панели вебмастера.

Оставили два sitemap одновременно

Это типичная ошибка после установки SEO-плагина поверх встроенной функции WordPress. В итоге поисковик видит два источника, а часть URL дублируется. Решение простое: отключить встроенный sitemap через wp_sitemaps_enabled и оставить только один генератор.

Закрыли sitemap в robots.txt вместо отключения

Так делать можно только как временную меру. Robots.txt не убирает endpoint из сайта, а лишь ограничивает обход. Если нужен чистый результат, отключайте генерацию на уровне WordPress или плагина.

Сломали sitemap после обновления темы

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

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

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

  • не добавляйте в sitemap всё подряд, особенно служебные архивы и технические страницы;
  • не генерируйте карту на каждом запросе, если пишете свой вариант — используйте кэширование;
  • следите, чтобы sitemap не раскрывал закрытые разделы сайта;
  • после миграций удаляйте старые sitemap-адреса и проверяйте редиректы;
  • не полагайтесь только на robots.txt для управления индексацией.

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

Что должно получиться в итоге

После внедрения у вас должен остаться один понятный sitemap-источник, без дублей и лишних URL. Старый встроенный /wp-sitemap.xml либо отключён, либо намеренно недоступен, а новый sitemap открывается напрямую и соответствует реальной структуре сайта. Это легко проверить вручную, через curl и в панели вебмастера — и именно на этом этапе чаще всего всплывают ошибки, которые не видны в админке WordPress.

Как закрыть дубли страниц авторов в WordPress через robots.txt и noindex
03.09.2026
Как отключить XML sitemap в WordPress и заменить его своим вариантом
10.09.2026
Как отключить XML-RPC в WordPress и проверить, что он действительно закрыт
06.09.2026
Как закрыть страницы поиска WordPress от индексации и убрать дубли в выдаче
10.09.2026