В WordPress дубли в индексе часто появляются не из-за одной ошибки, а из-за цепочки архивов: рубрики, метки, пользовательские таксономии, их вложенные уровни и страницы пагинации. На небольшом сайте это долго не заметно, но в Search Console обычно быстро видно лишние URL, которые не несут трафика и размазывают сигналы релевантности.
Если у вас уже закрыты страницы автора, дат и поиска, следующий типичный источник мусора — вложенные архивы таксономий. Это особенно заметно на сайтах с глубокой структурой рубрик или с таксономиями, которые генерируются плагинами и редакторами контента.
Когда вложенные архивы действительно нужно закрывать
Не каждый архив надо убирать из индекса. Проблема возникает, когда архив существует технически, но не даёт самостоятельной ценности: на нём мало записей, контент повторяет родительскую страницу, а в выдаче он конкурирует с более сильными URL.
Типовые признаки:
- в Search Console есть URL вида
/category/parent/child/или архивы пользовательской таксономии, которые не должны ранжироваться отдельно; - одна и та же запись доступна через несколько архивов;
- вложенные архивы создаются автоматически, но не используются как посадочные страницы;
- на сайте есть фильтрация по таксономиям, и часть архивов дублирует смысл основных разделов.
Что не стоит закрывать без проверки
Если вложенный архив — это полноценная посадочная страница с уникальным текстом, внутренними ссылками и стабильным спросом, его лучше оставить открытым. В противном случае вы просто уберёте из индекса страницу, которая могла бы собирать трафик.
Диагностика проблемы: где именно появляются дубли
Сначала посмотрите, какие URL реально индексируются. Не ориентируйтесь только на структуру сайта в админке — WordPress может генерировать архивы, которые не видны в меню, но доступны роботам.
- Откройте Google Search Console и проверьте разделы с исключёнными и проиндексированными страницами.
- Сравните URL из индекса с реальной структурой рубрик и таксономий.
- Проверьте, есть ли у архивов уникальный контент: описание термина, список материалов, хлебные крошки, блоки навигации.
- Посмотрите исходный код страницы: есть ли
<meta name="robots"и какой там статус.
Если архивы уже отдают 200 OK и не закрыты мета-тегом или заголовком, поисковик будет их обходить и индексировать как обычные страницы.
Пошаговое решение: закрываем архивы через код
Самый надёжный способ — задать правила на уровне темы или небольшого mu-plugin. Так вы не зависите от интерфейса SEO-плагина и не теряете настройки при смене темы.
Ниже пример для таксономий. Он закрывает архивы конкретной таксономии от индексации, но оставляет доступ для обхода ссылок. Это полезно, когда вам не нужен трафик на архив, но страницы должны открываться пользователю.
<?php
add_filter( 'wp_robots', function( array $robots ) {
if ( is_tax( array( 'product_cat', 'topic' ) ) ) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
} );Если нужно закрыть только вложенные архивы, а верхний уровень оставить открытым, проверяйте глубину термина через get_queried_object(). У термина есть parent, и по нему можно понять, вложенный это архив или нет.
<?php
add_filter( 'wp_robots', function( array $robots ) {
if ( is_tax( 'topic' ) ) {
$term = get_queried_object();
if ( $term instanceof WP_Term && ! empty( $term->parent ) ) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
}
return $robots;
} );Такой вариант удобен, если у вас есть иерархическая таксономия и закрывать нужно только дочерние уровни.
Альтернатива через SEO-плагин: когда код не нужен
Если на сайте уже стоит SEO-плагин, иногда проще управлять индексированием через его интерфейс. Это нормально для редакторских сайтов и проектов, где настройками занимается не разработчик.
| Подход | Плюсы | Минусы |
|---|---|---|
| Код в теме или mu-plugin | Контроль, предсказуемость, не зависит от интерфейса | Нужно тестировать после обновлений |
| Настройка в SEO-плагине | Проще для контент-менеджера | Легко потерять логику при смене плагина |
| robots.txt | Быстро закрывает обход | Не решает проблему индексации уже найденных URL |
Если нужен не только noindex, но и чистка дублирующих архивов, мета-тегов и служебных страниц, можно посмотреть в сторону Clearfy Pro: Clearfy Pro. Но даже в этом случае логику лучше понимать и проверять вручную.
Что делать с robots.txt и canonical
Не путайте закрытие от индексации и запрет обхода. Если вы просто добавите правило в robots.txt, URL может остаться в индексе без содержимого, если на него уже есть ссылки. Для архивов это обычно слабое решение.
Если архив должен открываться, но не индексироваться, используйте noindex, follow. Если у архива есть каноническая версия, проверьте, что rel="canonical" указывает на нужный URL, а не на сам архив по умолчанию.
Когда canonical полезен, а когда мешает
Canonical хорошо работает, если у вас несколько URL с одинаковым контентом. Но если архивы реально разные по смыслу, каноникал на главную рубрики может стереть полезную структуру. В таких случаях лучше закрыть лишние архивы от индексации, а нужные оставить с уникальным контентом.
Проверка результата после внедрения
После изменения не ограничивайтесь просмотром страницы в браузере. Нужно проверить именно то, что видит робот.
- Откройте архив и посмотрите исходный код: должен появиться
noindex. - Проверьте HTTP-заголовки, если вы используете заголовок
X-Robots-Tag. - В Search Console отправьте URL на повторную проверку.
- Убедитесь, что страница не выпала из навигации и не сломались хлебные крошки.
Для быстрой проверки через терминал можно использовать curl:
curl -I https://example.com/category/parent/child/Если вы закрывали страницу через wp_robots, ищите в HTML мета-тег robots. Если использовали заголовок, смотрите ответ сервера. Важно проверить именно тот вариант, который вы внедрили.
Частые ошибки и как их исправить
Закрыли архив в robots.txt, но он всё равно в индексе
Это нормальная ситуация. Robots.txt не удаляет URL из индекса, если поисковик уже знает о нём. Для таких страниц нужен noindex и последующая переобходка.
Поставили noindex на все архивы подряд
Так часто ломают полезные посадочные страницы. Перед массовым закрытием проверьте, какие архивы реально дают трафик и имеют уникальный контент.
Не учли пагинацию внутри архива
Если закрыт только первый URL архива, а страницы /page/2/ и дальше остаются открытыми, дубли никуда не исчезают. Нужно проверять всю цепочку архива целиком.
Сделали правило в теме, а потом сменили тему
Если логика критична для SEO, лучше вынести её в небольшой mu-plugin. Тогда правило не исчезнет после смены темы или обновления шаблона.
Чек-лист перед публикацией изменений
- Проверены URL, которые реально индексируются.
- Определено, какие архивы должны остаться открытыми.
- Добавлено правило
noindexтолько для нужных таксономий или уровней вложенности. - Проверен исходный код страницы и, при необходимости, заголовки ответа.
- Отправлен запрос на переобход в Search Console.
- Убедились, что навигация и внутренние ссылки не сломались.
Практические советы по безопасности и производительности
Если вы вносите правило через код, не редактируйте файл темы напрямую на боевом сайте. Используйте дочернюю тему или mu-plugin. Это снижает риск потерять настройку при обновлении и упрощает откат.
Не перегружайте wp_robots сложной логикой на каждом запросе. Проверка термина и его родителя — дешёвая операция, но если у вас много условий и внешних вызовов, лучше упростить код и оставить только нужные проверки.
Если задача шире и включает чистку служебных страниц, дублей и SEO-настроек, можно рассмотреть инструменты вроде Clearfy Pro, но использовать их как помощника, а не как замену пониманию структуры сайта. В технических вопросах это особенно важно: автоматическая настройка не всегда совпадает с вашей архитектурой контента.
После внедрения полезно ещё раз пройтись по внутренним ссылкам: если на закрытые архивы ведут меню, хлебные крошки или блоки похожих материалов, поисковик всё равно будет их находить. Закрытие от индексации не отменяет необходимость убрать лишние ссылки там, где они не нужны.