Если в XML sitemap попадают страницы поиска, вложения, служебные архивы или пустые таксономии, поисковик тратит обход на мусорные URL. Это не всегда критично, но на больших сайтах такие ошибки быстро превращаются в шум в индексации и лишнюю нагрузку на краулер.
Ниже — рабочий сценарий: как найти лишние URL в карте сайта, отключить их на уровне WordPress и проверить, что важные страницы остались в sitemap.
Когда проблема действительно есть
Сначала не трогайте код. Откройте XML sitemap и посмотрите, какие типы URL туда попадают. Если у вас обычный блог, корпоративный сайт или статейник, в карте сайта обычно должны быть только записи, страницы и нужные таксономии. Всё остальное нужно оценивать отдельно.
Типичные признаки лишних URL в sitemap
- в sitemap есть
/search/или URL с параметрами поиска; - попадают вложения медиафайлов, хотя они не нужны как отдельные страницы;
- есть архивы авторов, дат или меток без реального контента;
- в карту сайта попадают черновые или пустые таксономии;
- в Search Console появляются URL, которые вы не хотите продвигать.
Важно: если у вас включён SEO-плагин, он может генерировать sitemap сам. Тогда править нужно его настройки, а не только тему.
Диагностика: кто именно формирует карту сайта
В WordPress XML sitemap встроен в ядро начиная с версии 5.5. Но SEO-плагины часто подменяют стандартный механизм своим. Поэтому сначала определите источник.
| Источник sitemap | Как проверить | Что делать дальше |
|---|---|---|
| Ядро WordPress | Откройте /wp-sitemap.xml | Используйте фильтры ядра |
| SEO-плагин | Посмотрите его настройки sitemap | Отключайте типы URL в настройках плагина |
| Кастомный код темы | Ищите фильтры и переопределения | Правьте код в дочерней теме или плагине |
Если sitemap открывается по адресу /sitemap_index.xml, скорее всего, его генерирует SEO-плагин. Если по /wp-sitemap.xml — это стандартный механизм WordPress.
Пошаговое решение для встроенного sitemap WordPress
У ядра есть фильтры, которые позволяют убрать ненужные типы контента и отдельные URL. Самый безопасный путь — отключать не всё подряд, а только конкретные источники.
1. Уберите целые типы записей или таксономий
Если у вас есть кастомные типы записей, которые не должны индексироваться, можно исключить их из sitemap через фильтр wp_sitemaps_post_types.
<?php
add_filter( 'wp_sitemaps_post_types', function( $post_types ) {
// Убираем служебный тип записей из sitemap
unset( $post_types['portfolio'] );
return $post_types;
} );Аналогично можно убрать таксономии через wp_sitemaps_taxonomies.
<?php
add_filter( 'wp_sitemaps_taxonomies', function( $taxonomies ) {
// Не выводим архив тегов, если они не несут ценности
unset( $taxonomies['post_tag'] );
return $taxonomies;
} );Не копируйте эти примеры без проверки структуры сайта. На новостном проекте теги могут быть полезны, а на корпоративном сайте — нет.
2. Исключите отдельные записи или страницы
Если проблема не в типе контента, а в конкретных URL, используйте фильтр wp_sitemaps_posts_query_args. Он позволяет подменить аргументы запроса для sitemap.
<?php
add_filter( 'wp_sitemaps_posts_query_args', function( $args, $post_type ) {
if ( 'page' === $post_type ) {
$args['post__not_in'] = array( 123, 456 ); // ID ненужных страниц
}
return $args;
}, 10, 2 );Такой подход удобен, когда нужно убрать, например, страницу поиска, техническую страницу благодарности или внутренний лендинг, который не должен попадать в карту сайта.
3. Уберите вложения из sitemap
Вложение как отдельная страница часто не нужно. Если медиафайлы у вас открываются как тонкие страницы без пользы для SEO, их лучше исключить из sitemap и при необходимости закрыть от индексации отдельно.
<?php
add_filter( 'wp_sitemaps_post_types', function( $post_types ) {
unset( $post_types['attachment'] );
return $post_types;
} );Это не ломает загрузку изображений в контенте. Убирается только отдельный URL вложения, а не сам файл.
Если sitemap делает SEO-плагин
У популярных SEO-плагинов обычно есть свои настройки. Это предпочтительнее, чем править ядро, потому что плагин сам управляет картой сайта и не перезатрёт ваши изменения при обновлении.
Что обычно нужно проверить в настройках:
- включены ли в sitemap архивы авторов;
- попадают ли в карту сайта теги и категории без записей;
- есть ли отдельные типы записей, которые не должны индексироваться;
- не выводятся ли медиа-вложения как отдельные страницы;
- не создаёт ли плагин отдельные sitemap для служебных разделов.
Если плагин позволяет отключить конкретный тип контента в интерфейсе, используйте это. Код оставляйте для тех случаев, когда настройки не дают нужной точности.
Проверка результата после внедрения
После правок не ограничивайтесь визуальной проверкой страницы sitemap. Нужно убедиться, что карта сайта действительно изменилась и не содержит старых URL.
- Откройте
/wp-sitemap.xmlили sitemap от SEO-плагина. - Проверьте, исчезли ли ненужные разделы и URL.
- Скачайте sitemap и выполните поиск по ключевым словам:
search,attachment,author,tag. - В Search Console отправьте sitemap на переобход, если карта сайта изменилась существенно.
- Проверьте логи краулинга или отчёт по индексированию через несколько дней, если сайт крупный.
Если URL остались в кеше поисковика, это нормально. Главное — чтобы они больше не появлялись в актуальной карте сайта.
Частые ошибки и как их исправить
Удалили слишком много и сломали индексацию
Иногда отключают весь тип записей, а потом обнаруживают, что важные страницы исчезли из sitemap. Проверьте, не убрали ли вы вместе со служебным контентом полезные разделы. Возвращайте типы по одному и тестируйте каждый шаг.
Правят functions.php в родительской теме
Если код вставлен в родительскую тему, он может исчезнуть после обновления. Для стабильности используйте дочернюю тему или небольшой mu-plugin.
Путают sitemap и robots.txt
Закрытие URL в robots.txt не удаляет их из sitemap. Это разные механизмы. Если URL уже попал в карту сайта, сначала уберите его оттуда, а потом решайте вопрос с индексацией.
Оставляют дубли в нескольких sitemap
На сайте может одновременно работать встроенный sitemap WordPress и sitemap от плагина. Тогда поисковик видит дублирующиеся карты. Оставьте один источник и отключите второй.
Чек-лист перед публикацией изменений
- понятно, кто генерирует sitemap: ядро или плагин;
- ненужные типы контента исключены точечно, а не целиком;
- важные записи и страницы остались в карте сайта;
- в sitemap нет поиска, вложений и пустых архивов;
- после правок sitemap открывается без ошибок;
- в Search Console отправлена актуальная карта сайта.
Практика по безопасности и производительности
Не храните такие правки в случайном сниппете из интернета. Если код нужен надолго, вынесите его в отдельный mu-plugin или в дочернюю тему и подпишите, что именно он исключает. Так проще сопровождать сайт и не потерять логику при обновлениях.
Если на сайте много служебных страниц, имеет смысл не только чистить sitemap, но и убрать лишние архивы, дубли и технические URL из общей SEO-логики. Для этого удобно использовать инструменты вроде Clearfy Pro, если вам нужен именно набор точечных настроек без ручного разбрасывания по разным файлам. Ссылка: Clearfy Pro.
Если после внедрения карта сайта стала короче, но важные разделы на месте, задача решена правильно. Если же исчезли нужные URL, откатите последний фильтр и проверьте, какой именно источник sitemap вы правили.