Стандартная XML-карта сайта в WordPress часто включается «по умолчанию», но это не значит, что она всегда полезна. На небольших проектах она обычно не мешает. Проблемы начинаются, когда в sitemap попадают служебные архивы, вложения, неканонические URL или разделы, которые вы не хотите отдавать поисковикам. В итоге в Search Console появляются лишние URL, а на стороне CMS сложнее контролировать, что именно уходит в индекс.
Ниже разберём практический сценарий: как отключить встроенную XML sitemap в WordPress, когда это оправдано, как проверить, что она действительно выключена, и чем заменить её, если нужен точечный контроль над разделами.
Когда встроенную sitemap лучше отключить
Речь не о том, чтобы «убрать карту сайта вообще». Задача обычно другая: убрать автоматическую генерацию, которая не совпадает с вашей SEO-логикой. Это актуально, если:
- у вас уже есть sitemap от SEO-плагина и две карты сайта конфликтуют;
- в индекс попадают медиа-вложения, архивы или таксономии, которые вы не хотите продвигать;
- нужно отдавать поисковикам только часть контента, а не весь набор публичных типов записей;
- вы обслуживаете сайт с кастомными post type и хотите управлять картой сайта через код, а не через «автоматику» ядра.
Если у вас одна карта сайта и она корректно отражает структуру сайта, отключать встроенную генерацию не обязательно. Но если в Search Console уже видны лишние URL, лучше сначала диагностировать источник, а потом менять конфигурацию.
Диагностика: откуда берётся sitemap и что именно индексируется
В WordPress 5.5 и новее XML sitemap есть в ядре. Обычно она доступна по адресу /wp-sitemap.xml. Если на сайте установлен SEO-плагин, он может создавать собственную карту сайта, например /sitemap_index.xml. Важно не перепутать источник проблемы: иногда отключать нужно не WordPress, а плагин.
Что проверить в первую очередь
- Откройте
/wp-sitemap.xmlв браузере и посмотрите, отдаётся ли файл. - Проверьте, нет ли второй карты сайта от SEO-плагина.
- Сравните список URL в sitemap с тем, что реально должно индексироваться.
- Посмотрите отчёт «Страницы» и «Файлы Sitemap» в Google Search Console.
Если в карте сайта есть лишние разделы, сначала решите, нужно ли отключать встроенную sitemap полностью или достаточно исключить отдельные типы записей и таксономии.
Как отключить XML sitemap в WordPress кодом
Самый надёжный способ — добавить фильтр в functions.php дочерней темы или в собственный мини-плагин. Для отключения встроенной генерации WordPress используется фильтр wp_sitemaps_enabled.
<?php
add_filter( 'wp_sitemaps_enabled', '__return_false' );После этого ядро перестанет отдавать /wp-sitemap.xml и связанные с ним XML-эндпоинты. Этот вариант подходит, если вы полностью переходите на карту сайта от SEO-плагина или строите sitemap вручную.
Если нужно не отключить всё, а убрать только часть разделов
Иногда правильнее не выключать sitemap целиком, а исключить конкретные типы записей или таксономии. Для этого есть фильтры WordPress sitemap. Например, можно убрать из карты сайта медиа-вложения:
<?php
add_filter( 'wp_sitemaps_post_types', function( $post_types ) {
unset( $post_types['attachment'] );
return $post_types;
} );Аналогично можно убрать таксономии, которые не должны участвовать в индексации:
<?php
add_filter( 'wp_sitemaps_taxonomies', function( $taxonomies ) {
unset( $taxonomies['post_tag'] );
return $taxonomies;
} );Это полезно, если вы хотите сохранить sitemap для записей и страниц, но не отдавать поисковикам служебные или малополезные разделы.
Сравнение подходов: плагин, код или SEO-плагин
| Подход | Когда подходит | Плюсы | Минусы |
|---|---|---|---|
| Отключить через код | Нужен полный контроль над sitemap ядра | Просто, прозрачно, без лишних зависимостей | Нужно не забыть про альтернативную карту сайта |
| Настроить SEO-плагин | Уже используется Yoast, Rank Math или аналог | Можно управлять разделами без кода | Есть риск получить дубли sitemap, если не отключить ядро |
| Оставить как есть | Сайт маленький и структура простая | Ничего не ломаете | Меньше контроля над тем, что уходит в индекс |
Если у вас уже есть SEO-плагин, сначала проверьте его настройки sitemap. В ряде случаев достаточно отключить карту сайта WordPress в ядре и оставить только плагин. Две активные sitemap на одном сайте — частая причина путаницы в Search Console.
Пошаговое решение без лишнего риска
- Проверьте, какая sitemap сейчас открывается по адресу
/wp-sitemap.xml. - Убедитесь, что SEO-плагин не создаёт вторую карту сайта с теми же разделами.
- Если нужна полная остановка встроенной sitemap, добавьте фильтр
wp_sitemaps_enabled. - Если нужно убрать только часть контента, используйте фильтры
wp_sitemaps_post_typesиwp_sitemaps_taxonomies. - Очистите кеш сайта и CDN, если они используются.
- Проверьте результат в браузере и в Search Console.
Как проверить, что решение сработало
Проверка должна быть не «на глаз», а по конкретным признакам. После отключения встроенной sitemap:
- адрес
/wp-sitemap.xmlдолжен отдавать 404 или пустой ответ, если вы отключили её полностью; - в исходном коде и в robots.txt не должно оставаться ссылок на старую карту сайта, если вы их не используете;
- в Search Console новая карта сайта должна быть отправлена уже из того источника, который вы оставили;
- в отчётах не должно появляться новых URL из отключённых разделов.
Если страница всё ещё открывается, проверьте кеширование на уровне плагина, сервера или CDN. Иногда sitemap уже выключена в WordPress, но старый ответ продолжает отдаваться из кеша.
Частые ошибки и как их исправить
Отключили не ту sitemap
Самая частая ошибка — выключить XML sitemap ядра, когда основная карта сайта создаётся SEO-плагином. В этом случае проблема не решается, а иногда ещё и ломается отправка URL в Search Console. Сначала определите источник sitemap, потом меняйте настройки.
Оставили две активные карты сайта
Если WordPress и SEO-плагин одновременно генерируют sitemap, поисковик может видеть дублирующиеся наборы URL. Это не всегда критично, но мешает контролю индексации. На практике лучше оставить один источник и привести его к единой логике.
Не очистили кеш
После правки кода sitemap может продолжать открываться из кеша. Особенно это заметно на сайтах с серверным кешированием или CDN. После изменений обязательно сбросьте кеш и проверьте ответ в режиме инкогнито или через curl.
Скрыли URL в sitemap, но не закрыли их от индексации
Удаление URL из sitemap не равно запрету на индексацию. Если страница доступна по ссылке и не закрыта мета-тегом noindex или robots.txt, поисковик может найти её другим способом. Sitemap — это подсказка, а не запрет.
Практические советы по безопасности и производительности
Если вы управляете sitemap через код, держите изменения в дочерней теме или в небольшом mu-plugin, а не в основной теме. Так вы не потеряете правки после обновления. Для сайтов с несколькими окружениями полезно хранить логику в отдельном мини-плагине: это проще переносить между staging и production.
Если sitemap генерируется тяжело из-за большого количества записей, проверьте, не тянет ли она лишние типы контента. Удаление ненужных разделов снижает объём карты сайта и упрощает её обслуживание. Это не «ускорение сайта» в прямом смысле, но на больших проектах уменьшает лишнюю нагрузку на генерацию.
Если вам нужен более широкий контроль над SEO-очисткой, дублями и техническими настройками WordPress, можно посмотреть в сторону Clearfy Pro. Но даже в этом случае важно понимать, что именно вы отключаете и какой источник sitemap остаётся основным.
Когда лучше не отключать sitemap полностью
Если сайт новый, структура простая, а SEO-плагин не используется, встроенная sitemap ядра обычно полезнее, чем ручная сборка. Она помогает поисковикам быстрее находить новые URL и не требует отдельного обслуживания. Полное отключение оправдано только тогда, когда у вас есть понятная альтернатива и вы действительно контролируете состав карты сайта.
Практический ориентир простой: сначала определите, какой sitemap должен быть единственным источником, затем отключите остальные. Тогда карта сайта перестанет быть случайным набором URL и станет рабочим инструментом индексации.