Если в XML Sitemap попадают служебные страницы, дубли архивов, вложения медиафайлов или URL с параметрами, поисковик тратит обход на мусор. Для небольшого сайта это обычно не критично, но на проектах с большим количеством записей, таксономий и медиа карта сайта быстро превращается в список всего подряд. В итоге в Search Console появляются лишние URL, а полезные страницы индексируются медленнее.
Ниже разберём, как найти источник дублей, что именно исключать из карты сайта и как проверить, что после правки sitemap стал чище, а не просто «исчезли лишние ссылки».
Когда проблема действительно в sitemap
Сначала стоит убедиться, что речь именно о карте сайта, а не о дублях в шаблонах, пагинации или внутренней перелинковке. Типичный симптом — в отчётах Search Console есть URL, которые не должны быть в индексе: вложения, архивы дат, авторов, страницы поиска, служебные таксономии, тестовые записи или старые типы записей.
Что проверить в первую очередь
- откройте
/wp-sitemap.xmlили sitemap, который генерирует SEO-плагин; - посмотрите, не попадают ли туда
attachment-страницы; - проверьте архивы таксономий, если они не нужны для поиска;
- сравните список URL из sitemap с реальными страницами, которые должны индексироваться;
- посмотрите, нет ли в карте старых типов записей, которые уже не используются.
Если карта сайта содержит только нужные URL, а дубли всё равно лезут в индекс, проблема, скорее всего, в canonical, внутренних ссылках или настройках robots.txt. Но если sitemap сам по себе раздут, начинать лучше именно с него.
Диагностика: откуда WordPress берёт URL для sitemap
В WordPress карта сайта может формироваться ядром или SEO-плагином. У ядра есть собственный XML Sitemap, а популярные SEO-плагины часто подменяют его своим генератором. Поэтому сначала нужно понять, кто именно отвечает за выдачу карты.
| Подход | Что делает | Когда подходит |
|---|---|---|
| Ядро WordPress | Генерирует базовый sitemap без плагинов | Если сайт простой и нужна минимальная настройка |
| SEO-плагин | Даёт тонкую настройку типов контента и таксономий | Если нужно исключать отдельные архивы и типы записей |
| Код в теме или mu-plugin | Позволяет точечно убрать лишние URL | Если нужен контроль без лишних зависимостей |
Для большинства рабочих задач удобнее не отключать sitemap целиком, а убрать из него конкретные типы контента. Это безопаснее для индексации и проще поддерживать после обновлений.
Пошаговое решение: убираем лишние URL из XML Sitemap
Если вы используете встроенный sitemap WordPress, можно отключить отдельные типы записей, таксономии или вложения через фильтры. Ниже пример для functions.php дочерней темы или, что лучше, для небольшого mu-plugin.
<?php
add_filter( 'wp_sitemaps_post_types', function( $post_types ) {
// Убираем вложения из sitemap
if ( isset( $post_types['attachment'] ) ) {
unset( $post_types['attachment'] );
}
// Пример: исключаем служебный тип записи
if ( isset( $post_types['landing'] ) ) {
unset( $post_types['landing'] );
}
return $post_types;
} );
add_filter( 'wp_sitemaps_taxonomies', function( $taxonomies ) {
// Убираем архивы меток, если они не несут ценности
if ( isset( $taxonomies['post_tag'] ) ) {
unset( $taxonomies['post_tag'] );
}
// Пример: исключаем служебную таксономию
if ( isset( $taxonomies['faq_category'] ) ) {
unset( $taxonomies['faq_category'] );
}
return $taxonomies;
} );Если sitemap генерирует SEO-плагин, логика будет другой: нужно искать настройки индексации для конкретных типов контента. У большинства плагинов есть переключатели для записей, страниц, таксономий и медиаархивов. Но если нужен точечный контроль, код всё равно удобнее: он не зависит от интерфейса и не ломается после смены настроек в админке.
Как убрать вложения из sitemap и не потерять изображения
Вложения часто создают лишние URL, особенно если медиафайлы открываются как отдельные страницы. Обычно такие страницы не нужны в индексе. При этом сами изображения в контенте остаются доступными, и это нормально.
<?php
add_filter( 'wp_sitemaps_post_types', function( $post_types ) {
unset( $post_types['attachment'] );
return $post_types;
} );Это не удаляет файлы из медиатеки и не ломает вставки изображений в записи. Оно лишь убирает отдельные attachment-страницы из карты сайта.
Как исключить конкретный тип записи
Если на сайте есть типы записей для тестов, внутренних заметок или временных лендингов, их лучше не отправлять в sitemap. Особенно если они не должны индексироваться вообще.
<?php
add_filter( 'wp_sitemaps_post_types', function( $post_types ) {
$exclude = array( 'landing', 'internal_note', 'draft_page' );
foreach ( $exclude as $post_type ) {
if ( isset( $post_types[ $post_type ] ) ) {
unset( $post_types[ $post_type ] );
}
}
return $post_types;
} );Важно: если тип записи уже используется в продакшене и должен быть доступен по прямой ссылке, сначала проверьте, не нужна ли ему отдельная стратегия индексации. Иногда правильнее оставить URL в sitemap, но закрыть его от индексации через noindex и canonical.
Если sitemap генерирует SEO-плагин
У SEO-плагинов обычно есть собственные настройки для sitemap. Там стоит проверить три вещи: какие типы контента включены, какие таксономии попадают в карту и не дублируется ли sitemap ядра WordPress с sitemap плагина.
Практический порядок такой:
- оставьте активным только один генератор sitemap;
- выключите архивы, которые не нужны в поиске;
- уберите медиаархивы, если они создают мусор;
- проверьте, не индексируются ли страницы пагинации таксономий;
- обновите sitemap и отправьте его в Search Console заново.
Если на сайте уже используется Clearfy Pro, часть задач по чистке дублей и технических страниц можно закрыть через его настройки. Но даже в этом случае полезно проверить итоговый XML вручную, а не полагаться только на чекбоксы в интерфейсе.
Ссылка на плагин: Clearfy Pro.
Проверка результата после внедрения
После изменений не ограничивайтесь открытием главной страницы sitemap. Нужно проверить, что исключённые URL действительно исчезли из всех связанных sitemap-файлов и не отдаются через старые кеши.
Что проверить вручную
- откройте
/wp-sitemap.xmlили sitemap SEO-плагина; - проверьте отдельные разделы: записи, страницы, таксономии, авторы, вложения;
- убедитесь, что исключённые URL не возвращаются в дочерних sitemap;
- посмотрите HTTP-ответ sitemap: должен быть
200 OK; - проверьте, не осталась ли старая версия в кеше CDN или плагина кеширования.
Если у вас есть доступ к Search Console, отправьте обновлённую карту сайта и посмотрите, как меняется список обнаруженных URL. Не ждите мгновенного пересчёта: поисковик обновляет данные не сразу.
Частые ошибки и как их исправить
Отключили sitemap целиком
Так делают, когда хотят быстро убрать мусор, но это слишком грубый ход. В результате поисковик теряет нормальный список важных страниц. Лучше исключить только проблемные типы контента.
Скрыли URL в robots.txt, но оставили в sitemap
Это частая путаница. Если URL уже есть в sitemap, а вы просто закрыли его в robots.txt, поисковик всё равно может его обнаружить. Для дублей и служебных страниц лучше сначала убрать их из sitemap, а затем уже решать вопрос с индексацией.
Не очистили кеш после правки
Если сайт использует page cache, object cache или CDN, старая версия sitemap может продолжать отдаваться ещё какое-то время. После изменений очистите кеш в плагине, на сервере и на CDN, если он есть.
Смешали sitemap ядра и SEO-плагина
Когда одновременно активны два генератора, в поисковую систему уходит путаница: разные наборы URL, разные приоритеты, иногда дубли разделов. Оставьте один источник sitemap.
Практические советы по безопасности и производительности
Если вы правите sitemap кодом, не вносите изменения напрямую в родительскую тему. После обновления они пропадут. Для таких задач лучше использовать дочернюю тему или mu-plugin. Это особенно важно, если сайт обслуживается не одним разработчиком.
Ещё один полезный момент: не добавляйте в sitemap всё подряд «на всякий случай». Чем больше мусорных URL, тем больше работы у поискового робота и тем сложнее анализировать отчёты. Карта сайта должна быть короткой и предсказуемой: только те URL, которые реально нужны в индексе.
Если на сайте много технических страниц, архивов и служебных шаблонов, имеет смысл сначала провести общую чистку дублей и технических URL, а уже потом настраивать sitemap. В таких сценариях удобно сочетать ручную настройку с инструментами вроде Clearfy Pro, если нужен быстрый контроль над дублями и служебными страницами.
Как понять, что решение сработало
Хороший результат выглядит просто: в sitemap остались только нужные типы контента, в Search Console не растёт список мусорных URL, а новые страницы попадают в карту автоматически без ручных правок после каждого обновления.
Если после внедрения изменений sitemap открывается без ошибок, исключённые разделы исчезли, а поисковик перестал получать лишние URL, значит настройка выполнена правильно. Дальше задача сводится к поддержанию структуры сайта: не плодить новые служебные типы записей и не возвращать их в карту сайта случайно через очередной плагин.