Ситуация типовая: sitemap в WordPress есть, но он либо дублирует лишние URL, либо генерируется плагином, который вы уже не хотите держать на сайте, либо мешает при переезде на другую схему индексации. Важно не просто «выключить карту сайта», а сделать это так, чтобы поисковые системы не потеряли нужные страницы и не начали обходить мусорные адреса.
Ниже — рабочий сценарий для WordPress: как убрать XML sitemap, что проверить до отключения, чем заменить карту сайта при необходимости и как убедиться, что изменения не сломали индексацию.
Когда sitemap действительно стоит отключать
Отключение sitemap имеет смысл не всегда. Если сайт небольшой и карта сайта чистая, оставлять её обычно проще. Но есть несколько практических случаев, когда отключение оправдано:
- сайт использует несколько источников sitemap одновременно: ядро WordPress, SEO-плагин и отдельный плагин для изображений;
- в sitemap попадают URL, которые вы не хотите отдавать поисковикам: служебные страницы, архивы, вложения, тестовые записи;
- после миграции остались старые sitemap-адреса, которые отдают 200 OK, но содержат неактуальные ссылки;
- вы переходите на другой SEO-плагин и хотите убрать старую генерацию карты сайта до настройки новой;
- нужно временно отключить sitemap на staging или тестовой копии, чтобы она не светилась в индексе.
Что важно понять до изменений
XML sitemap не управляет индексацией напрямую. Она помогает поисковику быстрее находить URL. Если вы отключите карту сайта, но страницы доступны по внутренней перелинковке и не закрыты ошибочно, сайт не «выпадет» из поиска мгновенно. Проблема обычно возникает, когда вместе с sitemap ломают robots.txt, canonical, noindex или структуру ссылок.
Диагностика: откуда у вас вообще берётся sitemap
В WordPress карту сайта может генерировать ядро, SEO-плагин или отдельный плагин. Иногда они работают одновременно, и тогда в выдаче появляются несколько sitemap-адресов. Сначала нужно понять источник.
Проверьте стандартные адреса
Откройте в браузере и через curl несколько типовых URL:
https://example.com/wp-sitemap.xmlhttps://example.com/sitemap_index.xmlhttps://example.com/sitemap.xmlЕсли /wp-sitemap.xml открывается, это карта сайта ядра WordPress. Если есть /sitemap_index.xml, её часто генерирует SEO-плагин. Если оба адреса живые, у вас почти наверняка наложение источников.
Посмотрите robots.txt
Иногда sitemap указан прямо в robots.txt. Это не ошибка, но если вы отключаете карту сайта, ссылку в robots.txt тоже нужно убрать или заменить на актуальную.
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://example.com/wp-sitemap.xmlЕсли sitemap уже не нужен, строку Sitemap: лучше удалить. Иначе поисковик будет продолжать ходить по старому адресу и получать 404 или пустую страницу.
Пошаговое решение: отключаем sitemap в WordPress
Дальше есть два нормальных пути: через код или через настройки плагина. Выбор зависит от того, кто именно генерирует карту сайта.
| Подход | Когда использовать | Плюс | Минус |
|---|---|---|---|
| Код в functions.php или mu-plugin | Нужно отключить sitemap ядра WordPress | Без лишних плагинов | Требует аккуратного деплоя |
| Настройки SEO-плагина | Sitemap генерирует Yoast, Rank Math или другой SEO-плагин | Проще для редактора | Зависит от конкретного плагина |
| robots.txt | Нужно убрать ссылку на карту сайта или временно скрыть её | Быстро | Не отключает генерацию самой sitemap |
Отключаем sitemap ядра WordPress кодом
Если вам нужно убрать именно стандартную карту сайта WordPress, используйте фильтр wp_sitemaps_enabled. Это штатный хук ядра, он существует в WordPress 5.5+.
<?php
add_filter( 'wp_sitemaps_enabled', '__return_false' );Код можно добавить в functions.php дочерней темы, но для продакшена надёжнее вынести его в небольшой mu-plugin, чтобы он не зависел от темы.
<?php
/**
* Plugin Name: Disable WP Core Sitemap
*/
add_filter( 'wp_sitemaps_enabled', '__return_false' );После этого адрес /wp-sitemap.xml должен отдавать 404 или другой несуществующий маршрут, если его не подхватывает сторонний плагин.
Отключаем sitemap в SEO-плагине
У каждого SEO-плагина свой интерфейс. Универсального кода здесь нет, и выдумывать его не стоит. Практически всегда правильнее выключить карту сайта в настройках самого плагина, а затем проверить, не осталась ли старая ссылка в robots.txt.
Если вы используете несколько SEO-инструментов, оставьте только один источник sitemap. Иначе можно получить дубли, разные наборы URL и путаницу в Search Console.
Убираем ссылку из robots.txt
Если robots.txt отдаётся через WordPress, его можно фильтровать. Для этого есть хук robots_txt. Пример: удалить строку с sitemap и оставить остальное без изменений.
<?php
add_filter( 'robots_txt', function( $output, $public ) {
$lines = explode( "\n", $output );
$lines = array_filter( $lines, function( $line ) {
return stripos( $line, 'Sitemap:' ) !== 0;
} );
return implode( "\n", $lines );
}, 10, 2 );Этот вариант полезен, если robots.txt формируется динамически и вы не хотите редактировать файл вручную после каждого деплоя.
Если sitemap нужен, но его надо почистить
Иногда отключать карту сайта не нужно. Достаточно убрать из неё лишние типы записей, таксономии или медиа-вложения. Это более безопасный путь, если сайт уже получает трафик из поиска.
Практический ориентир простой: если URL полезен пользователю и должен индексироваться, он может остаться в sitemap. Если это служебный, пустой или дублирующий адрес — его лучше исключить на уровне генератора, а не маскировать через robots.txt.
Что проверить в первую очередь
- архивы вложений;
- страницы пагинации, если они не нужны в индексе;
- служебные CPT и таксономии;
- черновики и приватные записи, если они случайно попали в генерацию;
- URL с параметрами, если плагин их почему-то добавляет.
Проверка результата после внедрения
После отключения или чистки sitemap не ограничивайтесь открытием страницы в браузере. Нужна проверка по нескольким точкам.
- Откройте старый URL sitemap в браузере и убедитесь, что он больше не отдаёт актуальную карту.
- Проверьте
robots.txtи удалите устаревшую строкуSitemap:, если она больше не нужна. - Посмотрите заголовок ответа через curl или DevTools: карта сайта не должна возвращать 200 OK, если вы её отключали.
- Проверьте Search Console: нет ли новых ошибок обхода по старому sitemap-адресу.
- Сравните список важных URL в индексе и в внутренней перелинковке — они должны быть доступны без карты сайта.
Для быстрой проверки удобно использовать curl:
curl -I https://example.com/wp-sitemap.xml
curl -I https://example.com/robots.txtЕсли вы отключали sitemap ядра, первый запрос не должен возвращать рабочую XML-карту. Если меняли robots.txt, второй запрос должен показать актуальный текст без старой ссылки.
Частые ошибки и как их исправить
Отключили sitemap, но забыли убрать ссылку из robots.txt
В результате поисковик продолжает ходить по старому адресу. Исправление простое: удалите строку Sitemap: или замените её на новый адрес, если карта сайта осталась в другом месте.
Выключили только ядро WordPress, а плагин продолжил генерировать карту
Это частая путаница. Фильтр wp_sitemaps_enabled отключает только стандартную карту сайта WordPress. Если у вас активен SEO-плагин, он может продолжать отдавать свой sitemap отдельно.
Скрыли sitemap через robots.txt, но не отключили генерацию
Это не решение, а маскировка. Поисковик может не увидеть ссылку в robots.txt, но сама карта сайта останется доступной по прямому URL. Если цель — убрать источник, отключайте генерацию на уровне ядра или плагина.
Удалили sitemap на продакшене без проверки редиректов
Если старый адрес уже где-то зашит в шаблонах, плагинах или внешних сервисах, лучше заранее понять, нужен ли 301-редирект на новый sitemap или корректный 404. Для карты сайта чаще уместнее 404, чем редирект на случайную страницу.
Безопасность и производительность
С точки зрения нагрузки sitemap обычно не критична, но на больших сайтах она может быть заметной, особенно если генерируется динамически и включает много сущностей. Если карта сайта нужна, следите за тем, чтобы она не строилась на каждом запросе без кэша.
Если вы правите кодом, не вносите изменения в родительскую тему. Используйте дочернюю тему или mu-plugin. Так вы не потеряете настройку при обновлении. И не ставьте несколько SEO-плагинов одновременно только ради sitemap — это почти всегда приводит к дублям и лишней логике.
Если вам нужен более широкий набор инструментов для чистки дублей, управления техническими настройками и SEO-обвязкой, можно посмотреть Clearfy Pro: https://wpshop.ru/plugins/clearfy. Но даже с плагином сначала проверьте, кто именно генерирует sitemap, иначе можно отключить не тот источник.
Мини-чек-лист перед публикацией изменений
- понятно, какой именно sitemap отключается: ядро WordPress или SEO-плагин;
- из robots.txt убрана старая строка
Sitemap:; - важные URL доступны по внутренним ссылкам;
- в Search Console нет новых ошибок по старому адресу;
- на сайте не осталось второго генератора sitemap;
- изменения внесены через дочернюю тему или mu-plugin, а не в родительскую тему.
Если после отключения sitemap поисковик всё ещё видит старый адрес, проблема почти всегда в одном из трёх мест: кэш, второй плагин или забытая ссылка в robots.txt. Проверяйте именно их, а не только страницу в браузере.