Дубли в WordPress обычно появляются не из-за одной ошибки, а из-за набора типовых настроек: архивы тегов, страницы авторов, пагинация, вложения медиафайлов, служебные URL и одинаковые сниппеты на нескольких типах страниц. Если это не контролировать, поисковик тратит краулинговый бюджет на мусорные URL, а в индексе остаются страницы, которые не должны конкурировать с основными материалами.
Ниже — рабочая схема: сначала находим, какие именно дубли есть на сайте, потом закрываем их без поломки индексации нужных страниц, а затем проверяем результат через инструменты поиска и сам сайт.
Какие дубли в WordPress встречаются чаще всего
На практике проблема редко ограничивается одним типом URL. Чаще всего всплывают такие сценарии:
- страницы вложений медиафайлов, которые дублируют контент записи;
- архивы тегов с почти пустым содержимым;
- страницы авторов на сайтах с одним автором;
- пагинация архивов, которая индексируется без необходимости;
- страницы поиска и служебные URL с параметрами;
- дубли из-за HTTP/HTTPS, www/без www или слеша в конце, если каноникал и редиректы настроены криво.
Если сайт небольшой, часть этих страниц можно закрыть точечно. Если контента много, лучше сначала посмотреть, какие URL реально попали в индекс и какие из них получают показы.
Диагностика: что именно закрывать, а что оставить
Не стоит ставить noindex на всё подряд. Сначала нужно понять, какие страницы полезны для поиска, а какие создают шум. Самый быстрый способ — посмотреть отчёты в Google Search Console и сопоставить их со структурой сайта.
Что проверить вручную
- есть ли в индексе страницы вложений вида
/attachment/или отдельные URL медиафайлов; - показываются ли в поиске архивы тегов и авторов;
- есть ли у пагинации отдельные сниппеты и трафик;
- не индексируются ли страницы поиска вида
?s=; - не появляются ли дубли одной и той же записи по нескольким адресам.
Если у вас уже есть SEO-плагин, проверьте, не конфликтуют ли его настройки с темой или кастомным кодом. Частая ошибка — когда canonical указывает на одну страницу, а robots meta говорит другое.
Быстрая проверка через поиск
Можно начать с простых запросов в Google:
site:example.com inurl:attachment
site:example.com inurl:?s=
site:example.com inurl:/tag/
site:example.com inurl:/author/Это не заменяет полноценный аудит, но быстро показывает, какие типы URL уже попали в индекс.
Пошаговое решение: закрываем дубли без лишнего риска
Лучше идти по слоям: сначала технические редиректы и каноникал, затем noindex для служебных страниц, затем очистка архивов, которые не несут ценности.
1. Уберите страницы вложений с индексации
Если медиафайл открывается как отдельная страница вложения, это почти всегда лишний URL. В WordPress можно сразу перенаправлять такие страницы на сам файл или на родительскую запись. Если у вас SEO-плагин это уже делает, дополнительный код не нужен.
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);
} else {
wp_safe_redirect(home_url('/'), 301);
}
exit;
}
});Этот вариант полезен, если вложения уже успели попасть в индекс и вы хотите быстро убрать их из выдачи. Для новых сайтов лучше сразу отключить страницы вложений на уровне SEO-настроек или темы.
2. Закройте пустые или бесполезные архивы тегов
Теги часто создают десятки архивов с 1–2 записями. Если теговая страница не даёт пользователю дополнительной навигации, её лучше закрыть от индексации. Для этого можно использовать SEO-плагин или добавить noindex точечно.
add_filter('wp_robots', function (array $robots) {
if (is_tag() && !have_posts()) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
});Такой подход аккуратнее, чем глобально закрывать все теги. Если часть тегов у вас реально собирает трафик и помогает навигации, их можно оставить открытыми.
3. Ограничьте индексацию архивов авторов на сайтах с одним автором
Когда на сайте один автор, архив автора почти всегда дублирует ленту записей. В этом случае архив лучше закрыть или перенаправить на главную страницу блога. Если авторов несколько и у каждого есть уникальная страница с биографией и подборкой материалов, архив можно оставить.
add_action('template_redirect', function () {
if (is_author() && count_users()['total_users'] === 1) {
wp_safe_redirect(home_url('/'), 301);
exit;
}
});Если редирект кажется слишком жёстким, альтернативой будет noindex через SEO-плагин или фильтр wp_robots.
4. Проверьте пагинацию архивов
Пагинация сама по себе не всегда проблема. Но если страницы /page/2/, /page/3/ и дальше не дают ценности, их часто закрывают от индексации, оставляя follow. Это снижает шум в индексе, но не ломает обход ссылок.
Важно не путать закрытие пагинации с удалением страниц. Их не нужно возвращать 404, если они участвуют в навигации сайта.
Сравнение подходов: плагин, код или комбинация
| Подход | Когда подходит | Плюсы | Минусы |
|---|---|---|---|
| SEO-плагин | Нужно быстро закрыть архивы, теги, автора, медиа | Удобно, меньше риска сломать шаблоны | Не всегда хватает гибкости для точечных правил |
| Код в теме или mu-plugin | Нужна точная логика по типам страниц | Полный контроль, можно учесть условия сайта | Нужно тестировать после обновлений |
| Комбинация | Есть SEO-плагин, но часть правил нужна отдельно | Баланс удобства и контроля | Важно не задвоить noindex и редиректы |
Если у вас уже стоит плагин вроде Clearfy Pro, часть задач можно решить в его настройках: убрать дубли, отключить лишние архивы и служебные страницы. Но даже в этом случае полезно понимать, что именно он меняет, чтобы не закрыть нужные URL случайно.
Проверка результата после внедрения
После настройки не ограничивайтесь визуальной проверкой. Нужно убедиться, что поисковик видит именно то, что вы задумали.
- откройте проблемный URL и проверьте
<meta name="robots">в исходном коде; - убедитесь, что канонический URL указывает на основную страницу;
- проверьте HTTP-статус: редирект должен быть
301, а не302; - посмотрите, не остались ли старые URL в sitemap;
- в Search Console отправьте страницу на повторную проверку после изменений;
- проверьте, не выросло ли число 404 из-за слишком агрессивных редиректов.
Если вы закрывали страницы через noindex, не ждите мгновенного исчезновения из индекса. Поисковику нужно время на переобход. Если делали 301-редирект, результат обычно заметен быстрее, но старые URL всё равно могут какое-то время всплывать в отчётах.
Частые ошибки и как их исправить
Ставят noindex и одновременно запрещают сканирование в robots.txt
Это частая ошибка. Если страница закрыта в robots.txt, поисковик может не увидеть noindex и продолжит хранить URL в индексе как известный, но недоступный. Для удаления из выдачи обычно лучше оставить страницу доступной для обхода и поставить noindex, если речь не идёт о действительно техническом мусоре.
Редиректят всё на главную
Массовый редирект всех дублей на главную страницу выглядит просто, но часто ухудшает качество сигнала. Для вложений логичнее вести на родительскую запись, для старых дублей — на ближайший релевантный URL, а не на homepage.
Закрывают полезные архивы
Если теговый архив приносит трафик и реально помогает навигации, не надо автоматически ставить на него noindex. Сначала посмотрите, есть ли у страницы поисковый спрос, входящие ссылки и поведенческая ценность.
Дублируют правила в нескольких местах
Когда canonical, noindex, редирект и sitemap настраиваются разными способами в теме, плагине и вручную, легко получить конфликт. Лучше выбрать один источник правды: либо SEO-плагин, либо собственный код, либо чёткое разделение зон ответственности.
Практические советы по безопасности и производительности
Любые правки для индексации лучше вносить через дочернюю тему или mu-plugin, а не в файлы основной темы. Так обновление не затрёт изменения. Если код небольшой и должен работать всегда, mu-plugin обычно надёжнее.
Перед массовыми изменениями сделайте резервную копию базы и файлов. Особенно если планируете трогать редиректы и правила каноникализации: ошибка здесь может быстро превратить нормальные URL в цепочки редиректов или 404.
Если на сайте много служебных страниц и дублей, имеет смысл посмотреть и на общую чистку SEO-настроек. В некоторых проектах удобнее один раз привести в порядок архивы, мета-теги и дубли через специализированный плагин, чем поддерживать набор разрозненных сниппетов в теме.
Когда стоит остановиться и не закрывать страницу
Не все страницы, похожие на дубли, действительно вредны. Если архив или служебная страница получает трафик, участвует во внутренней перелинковке и закрывает конкретный пользовательский сценарий, её лучше оставить открытой и просто улучшить контент. Закрывать стоит то, что не несёт самостоятельной ценности и мешает индексации основных материалов.
Хороший ориентир простой: если URL не нужен пользователю как отдельная точка входа, но создаёт шум для поисковика, его можно закрывать. Если нужен — оставляйте и улучшайте, а не прячьте от индексации.