Если в индексе появляются одинаковые страницы WordPress, проблема почти всегда упирается не в «плохую индексацию», а в конкретный источник дублей: архивы, параметры в URL, пагинацию, версии со слешем и без него, а иногда и шаблон темы, который выводит один и тот же контент по разным адресам. Канонический URL помогает подсказать поисковику, какая версия должна считаться основной, но сам по себе он не убирает причину дубля. Поэтому правильный порядок такой: сначала найти, откуда берутся лишние адреса, потом закрыть или склеить их, и только после этого проверить, что в индексе осталась нужная версия.
Ниже — практический разбор для WordPress-сайта: как определить источник дублей, что именно править в настройках и коде, где уместен canonical, а где лучше поставить редирект или закрыть архив от индексации.
Откуда в WordPress берутся дубли страниц
У WordPress есть несколько типичных сценариев, когда один и тот же материал доступен по разным URL. Самые частые из них:
- архивы рубрик, тегов, авторов и дат, которые повторяют фрагменты контента или даже целые записи в списках;
- параметры в адресе, например сортировка, фильтрация, UTM-метки, служебные query string;
- страницы пагинации архивов и списков;
- версии URL со слешем и без него, а также http и https;
- страницы вложений медиафайлов, если они индексируются отдельно;
- одинаковый контент, который тема выводит на нескольких шаблонах или в нескольких разделах сайта.
Важно различать два типа проблем. Первый — когда поисковик видит несколько адресов с одинаковым или почти одинаковым содержимым. Второй — когда на сайте реально есть несколько URL для одной сущности, и они отдают 200 OK. В первом случае обычно достаточно канонического URL и настройки индексации. Во втором лучше добиваться единственного основного адреса через редирект или изменение логики генерации ссылок.
Как найти источник дублей
Начинать стоит не с плагинов, а с проверки конкретных URL. Откройте несколько подозрительных адресов и сравните:
- одинаков ли заголовок страницы;
- одинаков ли основной контент;
- есть ли в HTML тег
link rel="canonical"; - какой код ответа отдаёт сервер — 200, 301 или 404;
- не меняется ли адрес после обновления страницы или перехода по ссылке.
Если у вас есть доступ к Search Console, посмотрите отчёты по страницам, которые дублируются, и сравните URL, которые поисковик считает похожими. Это помогает быстро понять, что именно плодит копии: архивы, параметры или отдельные шаблоны.
Для технической проверки удобно открыть исходный код страницы и найти canonical. В норме на основной странице он должен указывать на саму себя. Если canonical ведёт на другой адрес, это уже сигнал, что тема, плагин или ручная настройка переопределяют логику WordPress.
Что закрывать, а что оставлять в индексе
Не все архивы и служебные страницы нужно удалять из индекса. Ошибка многих сайтов — закрыть слишком много и потерять полезный трафик. Ориентируйтесь на смысл страницы.
| Тип URL | Что обычно делать | Почему |
|---|---|---|
| Основная запись или страница | Оставить в индексе, canonical на себя | Это целевая страница |
| Архив рубрики с полезной навигацией | Оставить, если он нужен пользователям и даёт трафик | Архив может быть самостоятельной посадочной |
| Архив тегов, авторов, дат | Часто закрывают от индексации или отключают, если он не несёт ценности | Именно они чаще всего создают тонкие дубли |
| Страницы с параметрами сортировки и фильтрации | Обычно закрывают или канонизируют на чистый URL | Одна и та же страница доступна в нескольких вариантах |
| Страницы вложений изображений | Чаще редиректят на файл или на родительскую запись | Отдельная страница вложения редко нужна в поиске |
Если архив реально полезен и должен ранжироваться, не закрывайте его только потому, что он похож на другие страницы. В таком случае лучше доработать уникальный текст, заголовок и внутреннюю перелинковку, а canonical оставить на сам архив.
Как настроить канонические URL в WordPress
WordPress сам умеет выводить canonical для записей, страниц, архивов и многих таксономий. В большинстве случаев это делает ядро через функцию rel_canonical(), которая подключается в <head> темы. Если тема не ломает стандартный вывод, отдельный ручной код не нужен.
Проблемы начинаются, когда:
- тема убрала стандартный canonical из шаблона;
- SEO-плагин подменяет canonical не той страницей;
- один и тот же контент доступен через несколько шаблонов, и canonical указывает не туда;
- нужно задать канонический адрес для нестандартного шаблона или страницы с параметрами.
Если вы правите тему, canonical можно вывести в header.php внутри блока <head>, но только если он не дублируется плагином или ядром. На практике безопаснее не добавлять второй canonical вручную, а сначала проверить, что уже выводится на странице.
Для нестандартной логики можно использовать фильтр wpseo_canonical в Yoast SEO или аналогичный фильтр вашего SEO-плагина, если он есть. Но это уже точечная настройка под конкретный плагин. Если SEO-плагина нет, а canonical нужен для отдельного шаблона, лучше формировать его через стандартные WordPress-функции и выводить один раз.
Пример нужен только в том случае, если вы добавляете canonical для собственного шаблона и точно знаете, что он не выводится где-то ещё. Тогда в functions.php или в плагине можно повесить вывод на wp_head:
add_action( 'wp_head', function () {
if ( is_page( 'promo' ) ) {
echo '<link rel="canonical" href="' . esc_url( home_url( '/promo/' ) ) . '" />' . "\n";
}
}, 1 );Этот вариант подходит только для точечного случая. Если canonical уже есть в теме или SEO-плагине, не добавляйте второй тег: поисковик увидит конфликтующие сигналы, и это только ухудшит ситуацию.
Когда нужен редирект, а когда достаточно canonical
Canonical и редирект решают разные задачи. Canonical — это подсказка поисковику, а редирект — жёсткое перенаправление пользователя и робота на основной адрес. Если дубль не должен существовать как отдельная страница, лучше использовать 301-редирект. Если страница нужна пользователю, но есть несколько технических вариантов URL, чаще достаточно canonical.
Практически это выглядит так:
- http → https — редирект 301;
- www → без www или наоборот — редирект 301;
- страницы вложений — редирект на родительскую запись или на сам файл, если это оправдано;
- URL с параметрами сортировки, которые не нужны в поиске, — canonical на чистую версию или редирект, если параметр не должен работать отдельно;
- архивы, которые не нужны в индексе, — noindex или отключение архива, а не canonical на главную.
Если сделать только canonical там, где нужен редирект, поисковик и дальше будет обходить лишние URL. Это не всегда критично, но на больших сайтах создаёт лишнюю нагрузку и размывает сигналы.
Как убрать дубли, которые создаёт архив или шаблон темы
Если источник дублей — тема, сначала проверьте, не выводит ли она один и тот же контент в нескольких местах. Такое бывает у тем с нестандартными шаблонами: один и тот же блок записей может открываться как главная, как архив рубрики и как отдельная посадочная страница.
Что обычно помогает:
- отключить индексацию архивов тегов, авторов и дат, если они не нужны;
- убрать из меню и внутренних ссылок страницы, которые дублируют основной контент;
- исправить шаблон, если он формирует отдельный URL для одинакового набора записей;
- проверить, не создаёт ли плагин фильтрации отдельные индексируемые URL для каждого сочетания параметров.
Если архив нужен, но в нём мало уникального текста, добавьте короткое описание рубрики, нормальный title и понятный canonical на сам архив. Если архив не нужен совсем, лучше закрыть его от индексации или удалить шаблонный вывод, чем надеяться на canonical.
Как проверить, что всё работает после правок
После настройки не ограничивайтесь визуальной проверкой. Нужны три вещи: правильный адрес в браузере, корректный canonical в исходном коде и нужный код ответа сервера.
Проверьте по шагам:
- Откройте основной URL и несколько старых или альтернативных вариантов.
- Убедитесь, что лишние версии либо редиректят на основной адрес, либо отдают canonical на него.
- Посмотрите исходный код и найдите
link rel="canonical". - Проверьте, что canonical совпадает с основным URL без лишних параметров.
- Если меняли редиректы, проверьте, что цепочки не длиннее одного перехода.
В Search Console изменения обычно не видны мгновенно. После правок поисковику нужно время, чтобы переобойти страницы и пересобрать сигналы. Если дубль был вызван параметрами или архивами, старые URL могут ещё какое-то время появляться в отчётах, даже когда на сайте уже всё исправлено.
Что не стоит делать при борьбе с дублями
Есть несколько типичных ошибок, которые только ухудшают ситуацию. Не ставьте canonical на главную страницу для всех дублей подряд — это слишком грубый сигнал, и он не объясняет поисковику, какая именно страница является основной. Не закрывайте от индексации всё подряд через noindex, если среди архивов есть полезные страницы. И не удаляйте массово URL без проверки, если они уже дают трафик или внешние ссылки.
Ещё одна частая ошибка — пытаться решить проблему только плагином, не понимая, откуда берётся дубль. Если источник в теме или в структуре URL, плагин лишь замаскирует симптом. Для устойчивого результата нужно убрать саму причину появления одинаковых адресов.
Если на сайте много архивов, параметров и нестандартных шаблонов, удобно сначала составить список всех вариантов одного и того же контента, а потом для каждого решить: редирект, canonical, noindex или полное отключение. Такой подход быстрее и безопаснее, чем точечные правки наугад.
Если нужен именно инструмент для чистки дублей и SEO-настроек в WordPress, можно посмотреть Clearfy Pro: https://wpshop.ru/plugins/clearfy?utm_source=wpnews.ru&utm_medium=article&utm_campaign=kak-udalit-dubli-stranic-v-wordpress-i-nastroit-kanonicheskie-url. Но даже с плагином логика остаётся той же: сначала находите источник дубля, потом выбираете правильный способ его убрать.