Как вывести в индекс только основную версию страницы в WordPress

Если в поиске начинают всплывать не те URL, проблема часто не в «плохом SEO», а в том, что WordPress отдает несколько технически разных адресов на один и тот же контент. Это бывает из-за пагинации, параметров, архивов автора, тегов, страниц вложений, версий с ?amp, ?replytocom и похожих хвостов. В результате поисковик тратит обход на мусорные адреса, а основная страница конкурирует сама с собой.

Ниже — рабочая схема, как оставить в индексе только основную версию страницы, не ломая сайт и не закрывая лишнее вслепую.

Когда это действительно проблема

Сначала стоит убедиться, что речь именно о дублях, а не о нормальном поведении сайта. Один и тот же контент может открываться по нескольким URL, но это не всегда ошибка. Проблема начинается, когда:

  • в site:ваш-домен видны страницы с параметрами вместо чистых URL;
  • в Google Search Console растет число «Просканировано, но не проиндексировано» для архивов и параметров;
  • в выдаче появляются страницы вложений, теги, авторские архивы, хотя они не нужны;
  • одна и та же статья доступна через несколько адресов из-за неправильных редиректов или настроек темы;
  • каноникал указывает на одно, а в индексе остается другое.

Что проверить в первую очередь

  • откройте страницу с разными вариантами URL и сравните HTML-код;
  • посмотрите, какой rel="canonical" реально отдается;
  • проверьте, не создают ли дубли плагины фильтров, поиска, комментариев или кеширования;
  • сравните ответ сервера для основного URL и вариантов с параметрами.

Если canonical уже правильный, но дубли все равно индексируются, значит одной каноникализации мало. Нужны дополнительные ограничения: редирект, noindex или запрет обхода там, где это безопасно.

Схема решения: что закрывать, а что оставлять

Не стоит одинаково обрабатывать все «лишние» URL. Для одних сценариев лучше редирект, для других — noindex,follow, для третьих — вообще убрать генерацию ссылок на уровне темы или плагина.

СценарийЧто делатьКомпромисс
Страницы вложенийРедирект на родительскую запись или на сам файл, если это медиа-страница нужнаНужно проверить, не сломаются ли старые ссылки
Архивы тегов и автораnoindex,follow или отключение архива, если он не нуженМожет снизиться внутренний трафик из архивов
Параметры сортировки, поиска, трекингаКаноникал на чистый URL и при необходимости редиректНельзя редиректить параметры, которые реально меняют контент
ПагинацияОставить индексируемой только первую страницу там, где это оправданоНужно аккуратно с каталогами и списками записей

Проверка проблемы через исходный код и заголовки

Перед правками посмотрите, что уже отдает сайт. Это быстрее, чем гадать по поведению выдачи.

curl -I https://example.com/sample-page/?replytocom=123

В ответе важно увидеть, есть ли редирект, какой код ответа возвращается и не ведет ли он на неожиданный адрес. Для HTML-страницы откройте исходник и найдите canonical:

<link rel="canonical" href="https://example.com/sample-page/" />

Если canonical указывает на чистый URL, но страница с параметром все равно доступна и индексируется, значит нужен более жесткий контроль на уровне сервера или WordPress.

Пошаговая настройка в WordPress

1. Уберите генерацию лишних URL там, где это возможно

Часть дублей создается не поисковиком, а самим сайтом. Например, страницы вложений, архивы автора на сайте без редакторов, теги без смысла, комментарийные параметры. Если эти разделы не несут ценности, лучше не давать им жить своей жизнью.

Для страниц вложений безопасный вариант — редирект на родительскую запись, если она есть. Это можно сделать через template_redirect:

add_action('template_redirect', function () {
    if (!is_attachment()) {
        return;
    }

    $parent_id = wp_get_post_parent_id(get_queried_object_id());

    if ($parent_id) {
        wp_safe_redirect(get_permalink($parent_id), 301);
        exit;
    }
});

Такой подход лучше, чем просто оставлять attachment-страницы в индексе: они редко дают самостоятельную ценность и часто только размазывают сигналы.

2. Поставьте canonical на основную версию

Если дубль нужен пользователю, но не должен конкурировать в поиске, canonical — нормальный первый шаг. В WordPress его обычно выводят SEO-плагины, но иногда тема или кастомный код ломают адрес.

Проверьте, не подменяется ли canonical вручную. Если нужно задать его для конкретного шаблона, можно использовать фильтр wpseo_canonical в Yoast SEO или аналогичный механизм в другом SEO-плагине. Но если плагин не используется, лучше не городить собственный canonical без понимания всей цепочки URL.

3. Для архивов и служебных страниц используйте noindex осознанно

Архивы тегов, автора, дат и служебные страницы не всегда нужно удалять. Иногда они полезны для навигации, но не должны попадать в индекс. В этом случае noindex,follow — рабочий компромисс: поисковик не индексирует страницу, но может пройти по ссылкам дальше.

Если вы используете SEO-плагин, настройте это в интерфейсе. Если делаете кодом, не пытайтесь массово ставить noindex на все подряд. Сначала определите, какие архивы реально нужны.

Код для точечной обработки параметров

Иногда проблема не в архиве, а в параметрах, которые WordPress или тема пропускают в URL. Например, ?replytocom для комментариев или служебные параметры сортировки. Если параметр не меняет смысл страницы, его можно убрать редиректом на чистый адрес.

add_action('template_redirect', function () {
    if (is_admin()) {
        return;
    }

    $remove_params = ['replytocom'];
    $has_bad_param = false;

    foreach ($remove_params as $param) {
        if (isset($_GET[$param])) {
            $has_bad_param = true;
            break;
        }
    }

    if (!$has_bad_param) {
        return;
    }

    $url = remove_query_arg($remove_params, home_url(add_query_arg([], $GLOBALS['wp']->request)));
    wp_safe_redirect($url, 301);
    exit;
});

Этот пример нужно применять аккуратно: не редиректите параметры, которые реально влияют на контент или фильтрацию. Если параметр нужен для работы формы, корзины, поиска или AJAX-логики, его нельзя просто вырезать.

Как проверить, что решение сработало

После внедрения не ограничивайтесь визуальной проверкой в браузере. Нужны три уровня контроля:

  • HTTP-ответ — параметрический URL должен отдавать 301 на чистый адрес или корректный 200, если он должен жить;
  • HTML — canonical должен указывать на основную версию страницы;
  • индексация — в Search Console нужно смотреть, уменьшается ли число дублей и служебных URL в отчете по страницам.

Для быстрой проверки удобно сравнить заголовки:

curl -I https://example.com/sample-page/
curl -I https://example.com/sample-page/?replytocom=123

Если второй URL все еще отдает 200 без canonical или редиректа, значит проблема не решена. Если он редиректит на чистый адрес, а в исходнике у чистой страницы canonical совпадает с ней самой, это уже правильная база.

Частые ошибки и как их исправить

Ставят noindex на все архивы подряд

Так делают, когда хотят быстро «почистить индекс». В итоге можно случайно убрать полезные страницы категорий, которые дают трафик и внутреннюю перелинковку. Решение: сначала разделите архивы на полезные и служебные, потом закрывайте только лишнее.

Редиректят параметры, которые меняют контент

Например, сортировку, пагинацию каталога или фильтр, если он реально нужен пользователю. В таком случае редирект ломает навигацию и может мешать поисковой системе понять структуру сайта. Решение: оставляйте такие URL доступными, но управляйте индексацией через canonical и robots meta, если это оправдано.

Путают canonical и редирект

Canonical — это подсказка, а не жесткий запрет. Если дубль уже успел попасть в индекс, одной подсказки может быть мало. Решение: для явно лишних URL используйте 301, а canonical оставляйте как дополнительный сигнал.

Правят только SEO-плагин, игнорируя тему и плагины

Иногда дубли генерирует не SEO-модуль, а тема: выводит лишние ссылки на вложения, архивы, пагинацию или параметры. Решение: проверьте шаблоны, functions.php и плагины, которые добавляют URL в контент и навигацию.

Что делать, если нужен быстрый аудит без ручной возни

Если сайт уже оброс архивами, дублями и служебными страницами, удобнее сначала собрать список проблемных URL, а потом уже решать по группам. Для этого полезно смотреть:

  • отчеты Search Console по страницам и исключениям;
  • лог обхода, если он доступен;
  • исходный код страниц с параметрами;
  • список архивов и таксономий в админке WordPress;
  • настройки SEO-плагина и шаблоны темы.

Если нужен более прикладной способ чистить технические дубли и служебные страницы, можно посмотреть Clearfy Pro: https://wpshop.ru/plugins/clearfy. Но даже с плагином важно понимать, какие URL вы закрываете и почему — иначе легко убрать лишнее вместе с полезным.

В рабочем проекте лучший результат обычно дает не один «магический» переключатель, а связка из трех вещей: убрать генерацию мусорных URL, поставить правильный canonical и точечно редиректить то, что не должно существовать как отдельная страница.

Создание динамических ролей пользователей в WordPress
07.09.2026
Как создать нестандартные типы постов с аксессуарами в WordPress
02.10.2026
Как добавить проверку и валидацию форм в WordPress
30.09.2026
Как создать автоматические записи с обновляемым контекстом в WordPress
19.09.2026
Как создать собственный виджет в WordPress с примерами кода
26.09.2026