На WordPress дубли чаще всего появляются не из-за «плохого SEO-плагина», а из-за стандартной структуры сайта: архивы тегов, авторов, дат, страниц пагинации, вложений, поисковых страниц и иногда служебных таксономий. Если оставить их как есть, поисковик начинает индексировать много однотипных URL, а нужные страницы получают меньше внимания.
Задача здесь не в том, чтобы закрыть всё подряд. Важно понять, какие архивы реально полезны для пользователей и поиска, а какие только размазывают вес и создают мусор в индексе.
Какие дубли в WordPress встречаются чаще всего
В типичном проекте проблемы создают не отдельные записи, а их производные страницы. Например, одна и та же статья может быть доступна через основной URL, через архив рубрики, через архив тега, через страницу автора и через пагинацию. Формально это разные адреса, но контент на них либо одинаковый, либо почти одинаковый.
Особенно внимательно стоит смотреть на такие типы страниц:
- архивы тегов, если теги используются как «вторые рубрики»;
- архивы авторов на сайтах с одним автором;
- архивы дат, если они не несут самостоятельной ценности;
- страницы вложений медиафайлов;
- страницы поиска по сайту;
- страницы пагинации в тонких архивах;
- служебные таксономии и кастомные архивы, которые не планируется продвигать.
Диагностика: что именно нужно закрывать
Перед изменениями не полагайтесь на ощущение «у нас много дублей». Проверьте, какие URL уже попали в индекс и откуда они берутся. Для этого удобно использовать Google Search Console, а на самом сайте — посмотреть структуру архивов и шаблоны вывода.
Что проверить в первую очередь
- Есть ли у сайта один автор или несколько.
- Используются ли теги как полноценная навигация или они дублируют рубрики.
- Нужны ли архивы дат для пользователей.
- Есть ли отдельные страницы вложений с тонким или пустым содержимым.
- Индексируются ли страницы поиска и пагинация.
Если сайт маленький и теги почти не используются, закрытие теговых архивов обычно даёт больше пользы, чем вреда. Если это контентный проект с сильной внутренней перелинковкой по тегам, решение может быть другим: не закрывать всё, а оставить только полезные архивы.
Что закрывать через noindex, а что через robots.txt
Это ключевой момент. noindex говорит поисковику не держать страницу в индексе. robots.txt запрещает обход, но не гарантирует удаление уже известных URL из индекса. Поэтому для дублей, которые уже попали в поиск, чаще нужен именно noindex, а не только запрет в robots.txt.
| Подход | Когда использовать | Плюс | Минус |
|---|---|---|---|
| noindex, follow | Архивы, страницы поиска, тонкие таксономии | Страница уходит из индекса, ссылки можно обходить | Нужно корректно внедрить в шаблон или SEO-плагин |
| robots.txt | Технические разделы, которые не должны обходиться | Снижает лишний crawl | Не решает уже проиндексированные дубли |
| canonical | Похожие страницы с допустимой альтернативой | Подсказывает основную версию | Не всегда достаточно, если дубль уже массово индексируется |
Пошаговое решение
1. Закройте ненужные архивы в SEO-плагине
Если на сайте уже используется SEO-плагин, сначала проверьте его настройки. В большинстве случаев проще и безопаснее закрыть архивы там, чем писать собственный код. Например, в популярных SEO-плагинах можно отключить индексацию архивов автора, даты, тегов или отдельных таксономий.
Смысл такой: если архив не нужен как посадочная страница, он не должен конкурировать с основным контентом. Но не отключайте всё без разбора. Сначала проверьте, есть ли у архива трафик, входящие ссылки и реальная навигационная ценность.
2. Добавьте noindex для страниц поиска и вложений
Страницы поиска почти всегда бесполезны для индексации. То же касается attachment-страниц, если они выводят только медиафайл без контекста. Для них лучше явно поставить noindex.
Если вы не хотите зависеть от интерфейса плагина, можно добавить фильтр в тему или мини-плагин. Ниже пример для wp_robots, который добавляет noindex, follow на поиск и вложения:
<?php
add_filter( 'wp_robots', function( array $robots ) {
if ( is_search() || is_attachment() ) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
} );Такой вариант работает на уровне генерации meta robots и не ломает обход ссылок внутри страницы. Для большинства сайтов этого достаточно.
3. Уберите страницы вложений из индекса и редиректите их на файл или запись
Если у вас много старых медиа-страниц, лучше не просто закрыть их, а перевести пользователя на более полезный URL. В WordPress это обычно делается через редирект со страницы вложения на сам файл или на родительскую запись, если она есть.
<?php
add_action( 'template_redirect', function() {
if ( is_attachment() ) {
$parent = wp_get_post_parent_id( get_queried_object_id() );
if ( $parent ) {
wp_safe_redirect( get_permalink( $parent ), 301 );
exit;
}
$file = wp_get_attachment_url( get_queried_object_id() );
if ( $file ) {
wp_safe_redirect( $file, 301 );
exit;
}
}
} );Это не универсальное правило для всех проектов, но для большинства контентных сайтов такой редирект уменьшает количество бесполезных страниц и улучшает поведение пользователя.
4. Проверьте canonical на архивных страницах
Если архив остаётся открытым, у него должен быть корректный canonical на сам себя. Если canonical указывает не туда или дублируется несколькими плагинами, поисковик может начать игнорировать ваши сигналы. Это особенно часто случается, когда одновременно работают два SEO-плагина или в теме вручную добавлен свой <link rel="canonical">.
Проверьте исходный код страницы и убедитесь, что canonical один, а не два и не три. Для пагинации canonical должен вести на текущую страницу, а не на первую страницу архива, если вы не понимаете последствия такого решения.
Проверка результата после внедрения
После изменений не ограничивайтесь визуальной проверкой. Нужно убедиться, что поисковик видит именно те сигналы, которые вы хотели отправить.
- Откройте страницу архива или поиска и проверьте исходный код на наличие
noindex. - Проверьте, что в
robots.txtнет случайного запрета на важные разделы сайта. - В Google Search Console посмотрите, как меняется статус страниц: «Исключено тегом noindex» или «Просканировано, но не проиндексировано».
- Проверьте редиректы для attachment-страниц через браузер или
curl -I. - Сравните количество мусорных URL в отчёте по индексированию до и после изменений.
Пример проверки заголовков через командную строку:
curl -I https://example.com/?s=test
curl -I https://example.com/sample-attachment/Если на странице поиска вы видите X-Robots-Tag: noindex или meta robots с noindex, а на attachment-странице срабатывает 301-редирект, базовая схема работает.
Частые ошибки и как их исправить
Закрыли в robots.txt, но URL остались в индексе
Это ожидаемое поведение. Если страница уже известна поисковику, одного запрета на обход мало. Нужно добавить noindex и дождаться переобхода, а в некоторых случаях — дать редирект или удалить страницу совсем.
Поставили noindex на всё подряд
Так часто ломают теги, рубрики и даже полезные архивы. Если архивы реально приводят трафик и помогают навигации, их не нужно закрывать автоматически. Сначала смотрите на данные, потом на настройки.
Два SEO-плагина одновременно управляют meta robots
В результате на странице может появиться конфликт: один плагин ставит index, другой — noindex. Поисковик в такой ситуации не обязан угадывать вашу логику. Оставьте один источник управления SEO-метками.
Редирект attachment-страниц ведёт в никуда
Если у вложения нет родителя, а файл удалён, редирект нужно строить аккуратно. Иначе вы получите цепочки 404 и лишнюю нагрузку на сервер. Перед массовым редиректом проверьте, что URL действительно существует.
Практические советы по безопасности и производительности
Любые изменения лучше вносить не в активную тему, а в дочернюю тему или мини-плагин. Тогда обновление шаблона не сотрёт вашу логику. Если правок много, удобнее собрать их в отдельный mu-plugin.
Для производительности полезно убрать из индекса и обхода страницы, которые не дают трафика и только расходуют crawl budget. Но не стоит превращать это в чистку «по ощущениям»: сначала смотрите отчёты, потом режьте лишнее.
Если нужен более системный подход к дублям, каноникалам, очистке служебных страниц и базовой SEO-гигиене, можно посмотреть в сторону Clearfy Pro: https://wpshop.ru/plugins/clearfy?utm_source=wptemp.ru&utm_medium=article&utm_campaign=zakryt-dubli-stranits-tagov-i-arhivov-v-robots-i-noindex. Но и в этом случае настройки всё равно нужно проверять вручную, особенно если на сайте есть нестандартные таксономии или кастомные шаблоны архивов.
Когда лучше не закрывать архив, а переработать его
Иногда проблема не в индексации, а в том, что архив сам по себе слабый. Если теговая или рубричная страница может стать полезной посадочной, её лучше доработать: добавить описание, нормальный заголовок, внутренние ссылки, блок с пояснением и релевантные материалы. В таком случае закрытие от индексации только уберёт потенциальную точку входа.
Рабочее правило простое: если архив не нужен пользователю и не имеет самостоятельной ценности, закрывайте его. Если может быть полезен, сначала улучшайте, а не прячьте.