В WordPress дубли чаще всего появляются не из-за «плохого SEO», а из-за штатной логики: архивы категорий и тегов, страницы пагинации, вложения медиафайлов, результаты поиска, параметры сортировки и UTM в URL. Если это не контролировать, поисковик тратит обход на мусорные страницы, а в индексе оказываются версии одного и того же контента.
Ниже — рабочая схема: сначала быстро диагностируем, какие типы дублей у вас уже есть, затем закрываем их без поломки сайта и проверяем результат.
Какие дубли в WordPress встречаются чаще всего
Проблема обычно не одна. На одном сайте могут одновременно индексироваться:
- страницы вложений медиафайлов вида
/image-name/; - архивы тегов, которые дублируют рубрики;
- страницы поиска
?s=; - страницы пагинации архивов;
- URL с параметрами
?utm_,?replytocom=,?ampи другими служебными хвостами; - авторские архивы на сайтах с одним автором;
- страницы с одинаковым контентом на разных таксономиях.
Если сайт небольшой, часть этих URL может не попадать в индекс. Но рассчитывать на это нельзя: поисковик сам выбирает, что считать полезным, а что — нет. Задача владельца сайта — явно показать приоритетные страницы и убрать лишние варианты.
Диагностика: где именно рождаются дубли
Начинать лучше не с плагинов, а с проверки фактических URL. Это помогает не закрыть лишнее и не сломать индексацию нужных страниц.
Проверьте индекс и сниппеты
В поиске используйте запросы вида site:example.com, site:example.com inurl:tag, site:example.com inurl:attachment, site:example.com inurl:?s=. Смотрите, какие типы страниц реально попали в выдачу. Если в индексе есть страницы вложений, поиск по тегам или служебные параметры, это уже повод для настройки.
Сравните канонические URL
Откройте несколько подозрительных страниц и проверьте исходный код. Важно понять, какой адрес WordPress считает основным. Ищите тег <link rel="canonical" ...>. Если каноникал указывает на не ту страницу или отсутствует, поисковик может индексировать дубли как отдельные документы.
Посмотрите, что отдает сервер и тема
Иногда дубли появляются не из-за WordPress, а из-за темы или SEO-плагина. Например, тема может выводить архив автора даже на сайте с одним автором, а плагин — создавать отдельные страницы для вложений. В таких случаях правка только в настройках WordPress не поможет.
Пошаговое решение: что закрывать в первую очередь
Самый безопасный порядок — сначала убрать явно лишние типы страниц, потом уже трогать спорные архивы и параметры.
1. Закройте страницы вложений
Вложения почти всегда бесполезны как отдельные страницы. Если пользователь открывает изображение, ему обычно нужна статья, а не пустая страница с файлом. В SEO-плагинах для этого обычно есть настройка перенаправления attachment URL на родительскую запись или на сам файл.
Если хотите сделать это кодом, можно перенаправлять страницы вложений в template_redirect:
<?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;
}
wp_safe_redirect( home_url( '/' ), 301 );
exit;
}
} );Такой вариант рабочий, если вам нужно именно перенаправление. Но если сайт уже использует SEO-плагин, проверьте, не делает ли он то же самое. Двойная логика редиректов — частая причина циклов.
2. Уберите из индекса служебные страницы поиска
Страницы внутреннего поиска почти никогда не должны индексироваться. Они нестабильны: зависят от запроса пользователя и часто содержат мало контента. Обычно их закрывают от индексации и оставляют доступными для обхода.
Если нужен кодовый вариант, можно добавить noindex на поисковые страницы через wp_head:
<?php
add_action( 'wp_head', function () {
if ( is_search() ) {
echo '<meta name="robots" content="noindex,follow" />' . "\n";
}
} );Это не заменяет настройку SEO-плагина, но помогает, если вы не используете отдельное решение для мета-тегов.
3. Закройте теги, если они дублируют рубрики
На многих сайтах теги создаются «на всякий случай», а потом дублируют структуру рубрик. Если у тега нет самостоятельной ценности, его лучше закрыть от индексации или вообще не использовать. Но не удаляйте теги массово без проверки: старые URL могут уже иметь входящие ссылки.
Практический подход такой: оставьте в индексе только те теги, которые реально собирают отдельный поисковый спрос или помогают навигации. Остальные — noindex. В SEO-плагинах это обычно настраивается для таксономий отдельно.
4. Проверьте пагинацию архивов
Страницы /page/2/, /page/3/ и дальше не всегда нужно закрывать. Если архив большой и полезный, пагинация может быть нормальной частью сайта. Но если на второй и последующих страницах почти нет уникальной ценности, они часто становятся техническим шумом.
Здесь важно не делать грубый запрет на все пагинированные URL. Лучше смотреть по типу архива: категории с контентом можно оставить, а теги и авторские архивы — закрыть.
5. Нормализуйте параметры URL
Параметры вроде ?utm_source= полезны для аналитики, но создают альтернативные адреса одной и той же страницы. Обычно их не закрывают через robots.txt, потому что это не решает проблему каноникализации. Правильнее убедиться, что на странице стоит канонический URL без параметров.
Если у вас есть собственная логика генерации ссылок, проверьте, не добавляет ли тема лишние параметры в навигацию, хлебные крошки или кнопки шаринга.
Что выбрать: плагин, код или оба варианта
Для большинства сайтов проще и надежнее использовать SEO-плагин для мета-тегов и каноникалов, а код — только для точечных исключений. Ниже короткое сравнение.
| Подход | Когда подходит | Минус |
|---|---|---|
| SEO-плагин | Нужно быстро закрыть теги, архивы, поиск, вложения | Меньше гибкости для нестандартных кейсов |
| Код в теме/плагине | Нужна точечная логика для конкретных типов страниц | Требует тестирования после обновлений |
| Комбинация | Есть базовая SEO-настройка и несколько исключений | Нужно следить, чтобы правила не конфликтовали |
Если нужен именно инструмент для чистки дублей и служебных страниц, у WPShop есть Clearfy Pro: https://wpshop.ru/plugins/clearfy. Его имеет смысл рассматривать как слой для типовых SEO-настроек, а не как замену проверке структуры сайта.
Как проверить, что решение сработало
После внедрения не ограничивайтесь визуальной проверкой в админке. Нужны признаки на уровне HTML и индекса.
- На страницах поиска и служебных архивах появился
noindex,follow, если вы его добавляли. - Страницы вложений отдают 301 на родительскую запись или на главную, если родителя нет.
- В исходном коде у основных страниц указан корректный
canonical. - В поиске
site:постепенно исчезают нежелательные типы URL. - В Google Search Console в отчете по индексированию уменьшается число страниц с дублями и альтернативными каноническими URL.
Для быстрой технической проверки удобно открыть URL через curl и посмотреть заголовки ответа:
curl -I https://example.com/sample-attachment/
curl -I https://example.com/?s=testЕсли вы ожидаете редирект, в ответе должен быть статус 301 и заголовок Location. Если ожидаете noindex, проверьте HTML-ответ, а не только заголовки.
Частые ошибки и как их исправить
Закрыли robots.txt вместо noindex
Это частая ошибка. Запрет в robots.txt не убирает URL из индекса, если он уже известен поисковику. Он просто ограничивает обход. Для дублей обычно нужен noindex или каноникал, а не только robots.
Поставили noindex на все архивы подряд
Так можно случайно убрать из поиска полезные страницы категорий. Если архивы дают трафик и помогают навигации, не закрывайте их без анализа. Сначала проверьте, какие архивы реально нужны.
Сделали редирект вложений на главную без логики
Это рабочий костыль, но он ухудшает пользовательский сценарий, если у вложения есть родительская запись. Лучше вести на родительский пост. На главную — только если родителя нет.
Одновременно включили несколько SEO-решений
Если один плагин ставит canonical, другой — noindex, а тема еще и добавляет свои мета-теги, результат может быть непредсказуемым. Оставьте один источник правды для мета-логики и отключите дублирующиеся функции в остальных местах.
Не проверили старые URL после миграции
После переноса сайта часто остаются старые адреса вложений, тегов и архивов. Если вы меняли структуру ссылок, обязательно проверьте редиректы и карту сайта. Иначе дубли просто переедут на новый домен.
Практические советы по безопасности и производительности
Чем меньше лишних страниц индексируется и обходится, тем меньше мусора в логах и в отчетах. Но не стоит превращать SEO-настройку в набор хаотичных редиректов.
- Не добавляйте редиректы на уровне PHP без необходимости, если это можно сделать в SEO-плагине или на сервере.
- Не используйте одинаковые правила в нескольких местах: в теме, в mu-plugin и в плагине одновременно.
- После правок очистите кеш страницы и, если есть, объектный кеш.
- Проверяйте, не ломают ли редиректы RSS, REST API и служебные URL админки.
Если у вас много контента и регулярно появляются новые дубли, удобно вынести базовую SEO-гигиену в отдельный инструмент и дальше поддерживать только исключения кодом. Это дешевле, чем вручную ловить каждый новый архив или параметр URL.
В итоге задача сводится не к «закрыть все лишнее», а к тому, чтобы поисковик видел одну основную версию каждой важной страницы и не тратил ресурсы на технический шум. В WordPress это решается комбинацией настроек, каноникалов и точечных редиректов — без агрессивных запретов и без лишних костылей.