Если в Search Console всплывают странные дубли, а в индексе оказываются служебные страницы, проблема часто не в контенте, а в технических файлах WordPress: robots.txt, XML-картах сайта, архивах автора, тегах, пагинации и страницах вложений. На живом сайте это обычно выглядит так: одна и та же страница доступна по нескольким адресам, а поисковик выбирает не тот URL, который вы считаете основным.
Ниже разберём, как найти источник дублей, что именно править в WordPress и как проверить, что после изменений сайт не потерял нужные страницы из индекса.
Когда проблема действительно в robots.txt и sitemap
Не каждый дубль связан с картой сайта. Сначала стоит понять, где именно ломается логика обхода. Если в отчётах видны URL вида /feed/, /page/2/, /attachment/, ?replytocom= или служебные страницы таксономий, это чаще всего следствие некорректной генерации sitemap, открытых архивов или слишком широких правил в robots.txt.
Что проверить в первую очередь
- есть ли в индексе страницы вложений и их канонические URL;
- не попали ли в sitemap теги, авторы и архивы, которые вы не хотите продвигать;
- не закрыт ли
robots.txtтак, что поисковик не может нормально обойти важные разделы; - не дублируются ли URL из-за HTTP/HTTPS, www/non-www или слэша на конце;
- не генерирует ли SEO-плагин отдельную карту сайта для таксономий, которые вы уже закрыли от индексации.
Диагностика: где именно появляется дубль
Начните с простого сравнения: откройте /robots.txt и XML-карту сайта, затем посмотрите исходный код проблемной страницы. Важно не гадать, а проверить, какой URL поисковик видит как основной и какие адреса он получает в sitemap.
Проверка robots.txt
В WordPress файл robots.txt часто виртуальный, и его содержимое формирует плагин или тема. Если там есть слишком широкие запреты, например на весь /wp-content/ или на папки, где лежат изображения, это может мешать обходу ресурсов. Если же в файл добавлены лишние директивы для архивов или параметров, поисковик может начать игнорировать нужные страницы.
Проверка sitemap
Откройте XML-карту сайта и посмотрите, не включены ли туда:
- архивы авторов на сайтах с одним автором;
- теги без контента;
- страницы вложений;
- служебные таксономии;
- страницы пагинации, если они не нужны в индексе.
Если sitemap строится SEO-плагином, сначала меняйте настройки плагина, а не лезьте в ядро WordPress. Ручные правки в шаблоне sitemap быстро ломаются после обновлений.
Пошаговое решение: как убрать дубли без лишнего риска
Самый безопасный путь — сначала сократить количество ненужных URL в sitemap, затем привести robots.txt к минимально необходимому виду и только после этого проверить канонические ссылки на страницах.
Шаг 1. Исключите лишние типы страниц из sitemap
Если вы используете SEO-плагин, отключите в нём карты для архивов, которые не должны индексироваться. На практике это обычно теги, авторы и медиа-страницы. Если плагин не даёт гибко управлять картой, можно фильтровать список URL на уровне кода.
<?php
add_filter('wp_sitemaps_posts_query_args', function ($args, $post_type) {
if ($post_type === 'attachment') {
$args['post__in'] = array(0);
}
return $args;
}, 10, 2);
add_filter('wp_sitemaps_taxonomies', function ($taxonomies) {
unset($taxonomies['post_tag']);
return $taxonomies;
});Этот пример не отключает sitemap целиком, а убирает из него то, что чаще всего создаёт мусорные URL. Если у вас вложения используются как отдельные страницы, не применяйте этот код без проверки.
Шаг 2. Сделайте robots.txt коротким и предсказуемым
В robots.txt не нужно пытаться “лечить” индексацию всех дублей сразу. Файл должен помогать обходу, а не заменять canonical и noindex. Для большинства сайтов достаточно аккуратного базового варианта:
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://example.com/sitemap_index.xmlЕсли у вас есть отдельные служебные разделы, закрывайте их точечно. Не добавляйте туда правила вида Disallow: /*?* без понимания последствий: можно случайно отрезать полезные страницы с фильтрами, UTM-метками или страницами поиска.
Шаг 3. Отключите страницы вложений как отдельные записи
Страницы вложений — частый источник дублей. Изображение уже есть в записи, но WordPress создаёт для него отдельную страницу с тонким содержимым. Если вам не нужны такие страницы, лучше перенаправлять их на файл или на родительскую запись.
<?php
add_action('template_redirect', function () {
if (is_attachment()) {
$parent = wp_get_post_parent_id(get_queried_object_id());
if ($parent) {
wp_redirect(get_permalink($parent), 301);
exit;
}
wp_redirect(home_url('/'), 301);
exit;
}
});Это рабочий вариант для небольших и средних сайтов. Если медиатека большая, сначала проверьте, не используют ли вложения как посадочные страницы в старом контенте.
Шаг 4. Проверьте canonical и noindex
Если страница должна существовать, но не должна конкурировать с основной версией, нужен корректный canonical. Для архивов и пагинации это особенно важно. Не стоит закрывать всё подряд через robots.txt: поисковик может перестать видеть сигналы, которые нужны для правильной индексации.
Для служебных страниц удобнее использовать noindex,follow, а не блокировку обхода. Так поисковик увидит ссылки и сможет передавать вес дальше, но не будет держать страницу в индексе.
Сравнение подходов: плагин, код или ручная настройка
| Подход | Когда подходит | Минус |
|---|---|---|
| Настройки SEO-плагина | Нужно быстро убрать теги, авторов, медиа и лишние архивы | Не всегда хватает гибкости |
| Код в теме или mu-plugin | Нужен точечный контроль над sitemap и редиректами | Требует тестирования после обновлений |
| Ручная правка robots.txt | Нужно убрать явные ошибки в обходе | Легко переборщить и закрыть лишнее |
Если сайт уже живёт в продакшене, обычно лучше сочетать настройки SEO-плагина и небольшой код в mu-plugin, чем городить сложные правила в robots.txt.
Проверка результата после внедрения
После изменений не ограничивайтесь визуальной проверкой. Нужно убедиться, что поисковик видит именно те URL, которые вы оставили.
- откройте
/robots.txtи проверьте, что там нет лишних запретов; - проверьте XML-карту сайта и убедитесь, что из неё исчезли ненужные типы страниц;
- посмотрите исходный код страниц и найдите корректный
rel="canonical"; - в Search Console отправьте sitemap на повторную обработку;
- проверьте, не выросло ли число исключённых страниц из-за случайной блокировки.
Если вы убирали страницы вложений, откройте несколько старых URL и убедитесь, что они отдают 301 на родительскую запись или на главную, а не 200 с пустой страницей.
Частые ошибки и как их исправить
Закрыли URL в robots.txt, но не убрали их из sitemap
Это одна из самых частых ошибок. Поисковик видит URL в карте сайта, но не может нормально обойти его. В итоге страница висит в отчётах как обнаруженная, но не проиндексированная. Решение простое: сначала уберите URL из sitemap, потом уже решайте, нужен ли запрет в robots.
Использовали Disallow вместо noindex
Если страница уже в индексе, Disallow не всегда быстро решает проблему. Поисковику нужно увидеть страницу, чтобы обработать сигнал noindex или canonical. Для архивов и служебных страниц чаще лучше разрешить обход и запретить индексацию на уровне мета-тегов.
Сломали медиа и поиск по сайту
Слишком агрессивные правила в robots.txt могут задеть скрипты, стили или внутренний поиск. После этого страница может выглядеть нормально в браузере, но поисковик увидит её иначе. Проверяйте не только HTML, но и ресурсы, которые нужны для рендеринга.
Оставили страницы вложений без редиректа
Если вложения не перенаправлять, они продолжают жить как отдельные URL и создают дубли. Особенно это заметно на сайтах, где изображения массово вставлялись в записи и потом переиспользовались в галереях.
Практические советы по безопасности и производительности
Любые изменения в sitemap и robots лучше вносить через дочернюю тему или mu-plugin, а не править ядро и плагины напрямую. Так обновления не сотрут ваши настройки. Перед правками сделайте резервную копию файлов и базы, а после изменений очистите кеш страниц и кеш объекта, если он есть.
Если сайт большой, не генерируйте sitemap вручную на каждом запросе. Используйте штатный механизм WordPress или SEO-плагина: он уже умеет разбивать карту на части и не перегружать сервер. Для сайтов с большим количеством медиа полезно отдельно отслеживать, не растёт ли число URL вложений после импорта изображений.
Когда нужно быстро убрать дубли, но не хочется собирать всё вручную, удобно использовать инструменты, которые умеют чистить технические хвосты и управлять SEO-настройками без лишнего кода. Например, в Clearfy Pro есть функции для удаления дублей и технической оптимизации: https://wpshop.ru/plugins/clearfy.
Если после внедрения всё сделано правильно, в индексе останутся только нужные страницы, а служебные URL перестанут конкурировать с основным контентом. Главное — не пытаться лечить индексацию одним только robots.txt: в WordPress это почти всегда вопрос связки sitemap, canonical, редиректов и настроек архивов.