Если в Search Console появляются лишние URL, а в XML sitemap попадают страницы, которые не должны индексироваться, проблема обычно не в поиске как таковом, а в настройках генерации карты сайта, правилах robots.txt и дублирующих URL из темы или плагинов. На WordPress это встречается чаще, чем кажется: архивы авторов, страницы вложений, теги, параметры сортировки, служебные URL и иногда дубли с www/без www или со слешем/без слеша.
Ниже разберём не абстрактную «оптимизацию SEO», а конкретный сценарий: как найти источник дублей, убрать их из sitemap и robots.txt, не сломав индексацию нужных страниц.
Когда проблема действительно в sitemap и robots.txt
Сначала стоит убедиться, что вы боретесь именно с причиной, а не с симптомом. Если страница уже открывается по нескольким адресам, robots.txt не решит вопрос каноникализации — он только ограничит обход. Но если в sitemap попадают архивы, вложения или технические страницы, поисковик получает лишние сигналы, и это лучше исправить на уровне генерации карты сайта.
Типичные признаки
- в XML sitemap есть URL, которые вы не хотите продвигать;
- в индексе появляются страницы вложений, архивы тегов, пагинация, служебные страницы;
- robots.txt закрывает важные разделы или, наоборот, не закрывает мусорные;
- в Search Console есть сообщения о «Просканировано — сейчас не проиндексировано» для дублей;
- одна и та же страница доступна по нескольким вариантам URL.
Что проверить в первую очередь
- Каким плагином или ядром генерируется sitemap.
- Не создаёт ли тема дополнительные архивы, таксономии или страницы автора.
- Нет ли в robots.txt ручных правил, которые конфликтуют с текущей структурой сайта.
- Не включены ли в индекс страницы вложений и служебные архивы.
Диагностика: откуда берутся дубли
На практике источник обычно один из трёх: SEO-плагин, тема или кастомный код. У WordPress есть встроенная XML-карта сайта, но многие сайты используют Yoast SEO, Rank Math или другой SEO-плагин, который переопределяет поведение. Поэтому сначала определите, кто именно отвечает за sitemap.
Откройте главную карту сайта, обычно это /sitemap_index.xml или аналогичный URL. Если там уже видны лишние разделы, проблема в генераторе sitemap. Если карта чистая, но в индексе есть мусор, смотрите канонические URL, архивы и robots.txt.
Для быстрой проверки полезно сравнить три вещи: фактический URL страницы, её canonical и наличие в sitemap. Если canonical указывает на один адрес, а в sitemap лежит другой или дублирующий вариант, поисковик получает противоречивые сигналы.
| Подход | Что делает | Плюс | Минус |
|---|---|---|---|
| SEO-плагин | Убирает типы записей и архивы из sitemap | Удобно без кода | Зависит от настроек плагина |
| Код в теме/плагине | Точечно исключает нужные URL | Точный контроль | Нужно следить за обновлениями |
| robots.txt | Ограничивает обход | Быстрое исправление | Не удаляет URL из индекса мгновенно |
Пошаговое решение
1. Уберите лишние разделы из XML sitemap
Если sitemap генерирует SEO-плагин, сначала используйте его настройки. Например, в Yoast SEO и Rank Math можно отключать архивы авторов, теги, категории или отдельные типы записей. Это предпочтительнее, чем править карту вручную.
Если нужен точечный контроль через код, у WordPress есть фильтр wp_sitemaps_post_types. Он позволяет убрать целые типы записей из встроенной карты сайта.
<?php
add_filter( 'wp_sitemaps_post_types', function( $post_types ) {
// Убираем служебный тип записей из XML sitemap.
unset( $post_types['attachment'] );
// Если у вас есть кастомный тип, который не должен индексироваться,
// исключите его здесь.
// unset( $post_types['news'] );
return $post_types;
} );Если проблема не в типе записей, а в таксономиях, используйте фильтр wp_sitemaps_taxonomies:
<?php
add_filter( 'wp_sitemaps_taxonomies', function( $taxonomies ) {
unset( $taxonomies['post_tag'] );
return $taxonomies;
} );Этот подход полезен, когда теги создают слишком много слабых страниц и вы сознательно не хотите включать их в sitemap.
2. Спрячьте страницы вложений и служебные URL
Страницы вложений часто становятся источником дублей: у них есть отдельный URL, но контент там минимальный. Если такие страницы не нужны, лучше перенаправить их на файл или родительскую запись, либо исключить из индексации на уровне SEO-настроек.
Для встроенной карты сайта можно убрать вложения из списка записей, как показано выше. Но если они уже существуют в индексе, дополнительно проверьте, не создаёт ли плагин медиа-страницы с отдельным canonical.
3. Проверьте robots.txt и не закрывайте лишнее
robots.txt нужен для управления обходом, а не для «удаления» страниц из индекса. Ошибка многих сайтов — закрыть там весь раздел, который должен индексироваться, или наоборот оставить открытыми служебные URL.
Пример аккуратного robots.txt для типового сайта:
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /?s=
Disallow: /search/
Sitemap: https://example.com/sitemap_index.xmlЗдесь закрыт административный раздел и внутренний поиск, но не тронуты важные страницы. Если у вас есть пагинация, фильтры или параметры сортировки, не пытайтесь закрыть всё подряд. Сначала разберитесь, какие URL реально создают дубли, а какие нужны для навигации.
4. Уберите дубли URL на уровне canonical и редиректов
Если одна и та же страница доступна с разными вариантами адреса, sitemap и robots.txt не спасут. Нужен один канонический URL и 301-редирект со всех альтернативных вариантов.
Проверьте, что сайт отдаёт единый формат:
- с www или без www;
- со слешем на конце или без него;
- без дублирующих параметров в URL;
- без страниц вложений, если они не нужны.
Если вы добавляете редирект через код, делайте это аккуратно и только для понятных случаев. Например, для вложений можно перенаправить их на родительскую запись, если она есть:
<?php
add_action( 'template_redirect', function() {
if ( is_attachment() ) {
$parent_id = wp_get_post_parent_id( get_queried_object_id() );
if ( $parent_id ) {
wp_safe_redirect( get_permalink( $parent_id ), 301 );
exit;
}
}
} );Это не универсальное решение, но для многих сайтов оно убирает один из самых частых источников дублей.
Как проверить, что исправление сработало
После изменений не ограничивайтесь визуальной проверкой sitemap. Нужна короткая техническая валидация.
- Откройте sitemap и убедитесь, что лишних URL там больше нет.
- Проверьте robots.txt в браузере и убедитесь, что он не блокирует важные разделы.
- Посмотрите исходный код страницы и найдите тег
rel="canonical". - В Search Console отправьте sitemap на повторную обработку.
- Проверьте несколько проблемных URL через инструмент проверки URL.
Если вы убрали тип записей из sitemap, но страницы всё ещё доступны по прямым ссылкам, это нормально. Задача sitemap — не прятать контент, а показывать поисковику только те URL, которые вы хотите индексировать.
Частые ошибки и как их исправить
Закрывают страницу в robots.txt вместо удаления из индекса
Это частая путаница. Если URL уже в индексе, robots.txt может помешать его переобходу, но не гарантирует быстрое удаление. Для удаления мусорных страниц обычно нужен canonical, noindex или редирект — в зависимости от сценария.
Удаляют из sitemap, но оставляют дубли в архиве автора или тегах
Если архивы продолжают генерироваться темой или плагином, поисковик всё равно найдёт их по внутренним ссылкам. В этом случае нужно либо отключить архивы, либо ограничить их индексацию и убрать из меню и блоков навигации.
Правят robots.txt, не проверив, кто генерирует sitemap
На сайтах с SEO-плагином встроенная карта сайта WordPress может вообще не использоваться. Тогда вы редактируете не тот источник проблемы. Сначала определите, какой sitemap реально открыт и какой URL отправлен в Search Console.
Ставят слишком жёсткие Disallow
Если закрыть в robots.txt слишком широкий путь, можно случайно спрятать полезные страницы, изображения или CSS/JS ресурсы. Это уже влияет не только на SEO, но и на рендеринг страницы.
Практические советы по безопасности и производительности
Любые изменения в sitemap, robots.txt и редиректах лучше вносить через дочернюю тему или небольшой кастомный плагин, а не прямо в файлы основной темы. Так вы не потеряете правки после обновления.
Если на сайте много служебных архивов, подумайте о сокращении их количества ещё на этапе настройки темы и SEO-плагина. Чем меньше лишних URL генерируется, тем меньше мусора попадает в карту сайта и внутреннюю перелинковку.
Для сайтов, где нужна более жёсткая чистка дублей, можно посмотреть в сторону Clearfy Pro: он помогает управлять техническими страницами, дублями и частью SEO-настроек без ручного разбрасывания по нескольким плагинам. Если используете такой инструмент, всё равно проверяйте итоговый sitemap и canonical вручную, а не полагайтесь только на переключатели в интерфейсе.
Главная идея простая: sitemap должен содержать только те URL, которые вы готовы продвигать, robots.txt — только те ограничения, которые действительно нужны, а дубли нужно устранять у источника, а не маскировать поверхностными запретами.