Как закрыть дубли страниц в WordPress через robots.txt, noindex и canonical

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

Ниже — рабочая схема, как понять, что именно дублируется, и чем закрывать каждый тип URL: robots.txt, noindex, canonical или настройками плагина. Без универсальных советов — только те случаи, которые реально встречаются на обычном WordPress-сайте.

Диагностика: какие дубли у вас уже есть

Сначала не трогайте настройки наугад. Посмотрите, какие URL уже попали в индекс и какие из них являются вторичными версиями страниц. Самый быстрый способ — выгрузить данные из Google Search Console и пройтись по сайту вручную.

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

  • страницы тегов и категорий, которые дублируют рубрики или отдельные статьи;
  • архивы автора на сайтах с одним автором;
  • страницы вложений медиафайлов;
  • пагинацию архивов и комментариев;
  • URL с параметрами сортировки, поиска, фильтров;
  • версии с и без слеша на конце, если сервер или тема настроены криво;
  • дубли из-за пагинации в хлебных крошках и блоках навигации.

Если у вас стоит SEO-плагин, посмотрите, не генерирует ли он отдельные мета-теги для архивов и таксономий. Часто проблема не в WordPress как таковом, а в том, что тема или плагин создают лишние страницы, а потом ещё и открывают их для индексации.

Что закрывать через noindex, а что — через robots.txt

Это ключевой момент. robots.txt не удаляет страницу из индекса, если она уже известна поисковику. Он только ограничивает обход. noindex говорит поисковику не показывать страницу в выдаче. Поэтому для дублей, которые уже доступны по URL, обычно нужен именно noindex, а не запрет в robots.txt.

ПодходКогда использоватьМинус
noindexДля архивов, тегов, страниц автора, служебных страницСтраница может ещё какое-то время оставаться в индексе до переобхода
robots.txtДля блокировки обхода технических разделов и бесконечных параметровНе гарантирует удаление из индекса
canonicalКогда есть основная версия страницы и её вариантыНужно правильно выбрать канонический URL, иначе сигнал будет слабым

Если задача — убрать из индекса архивы тегов, но оставить их доступными для пользователя, обычно достаточно noindex, follow. Если же URL создаётся технически и не должен даже обходиться, тогда уже смотрим в сторону robots.txt или серверных правил.

Пошаговое решение для типовых дублей

1. Закройте лишние архивы в SEO-плагине

Если у вас есть SEO-плагин, начните с него. Это безопаснее, чем писать жёсткие правила в коде, потому что плагин обычно сам ставит корректные мета-теги и canonical. Для типового сайта имеет смысл закрыть:

  • архивы тегов, если они не несут отдельной ценности;
  • архивы автора на сайте с одним автором;
  • страницы вложений;
  • служебные архивы, которые не нужны в поиске.

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

2. Для вложений делайте редирект на родительскую запись

Страницы вложений — частый источник мусора. Пользователь открывает изображение, а поисковик получает отдельную тонкую страницу без смысла. Правильнее отправлять такие URL на родительскую запись или на сам файл, если это осознанный сценарий.

<?php
add_action('template_redirect', function () {
    if (is_attachment()) {
        $parent = wp_get_post_parent_id(get_queried_object_id());
        if ($parent) {
            wp_redirect(get_permalink($parent), 301);
            exit;
        }
    }
});

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

3. Уберите индексацию страниц автора, если автор один

На сайтах с одним автором архив автора повторяет ленту записей и не даёт поиску ничего нового. В таком случае архив автора обычно закрывают от индексации, а при необходимости ещё и скрывают из карты сайта.

<?php
add_filter('wpseo_robots', function ($robots) {
    if (is_author()) {
        return 'noindex,follow';
    }
    return $robots;
});

Если у вас не Yoast SEO, а другой плагин, логика та же: нужен мета-тег noindex на страницах автора. Не пытайтесь решать это через robots.txt — архив всё равно может остаться в индексе как URL без контента.

4. Для параметров и фильтров используйте canonical

Когда одна и та же страница открывается с параметрами сортировки или фильтрации, поисковику нужно явно показать основную версию. Например, /catalog/?sort=price должен ссылаться на канонический URL без параметра, если сортировка не создаёт отдельную ценность.

<?php
add_filter('wpseo_canonical', function ($canonical) {
    if (!empty($_GET['sort']) || !empty($_GET['filter'])) {
        return strtok($canonical, '?');
    }
    return $canonical;
});

Это пример для Yoast SEO. Если у вас другой SEO-плагин, ищите аналогичный фильтр для canonical. Смысл один: вторичные версии должны указывать на основную страницу, а не конкурировать с ней.

Когда нужен robots.txt, а когда он вреден

robots.txt полезен для обхода, но опасен, если использовать его как замену noindex. Типичная ошибка — закрыть в robots.txt архивы тегов и потом удивляться, что они всё ещё торчат в поиске. Поисковик может видеть URL по внешним ссылкам, но не получать сигнал на удаление.

Имеет смысл ограничивать обход:

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

Но не блокируйте в robots.txt то, для чего вам нужен noindex и корректный переобход. Иначе поисковик не увидит мета-тег и не поймёт, что страницу надо убрать.

Проверка результата после внедрения

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

  1. Откройте проблемный URL и проверьте исходный код страницы.
  2. Убедитесь, что на дубле стоит noindex или корректный canonical.
  3. Проверьте, что основная версия страницы не закрыта случайно.
  4. В Search Console отправьте переобход для нескольких URL и посмотрите, как меняется статус.
  5. Сравните карту сайта: в ней не должно быть страниц, которые вы закрыли от индексации.

Если используете командную строку, можно быстро проверить заголовки и canonical через curl:

curl -I https://example.com/author/admin/
curl -s https://example.com/some-page/ | grep -i canonical

Для страниц с noindex важно проверить именно HTML-ответ, а не только HTTP-заголовки. Иногда плагин ставит мета-тег, но тема подменяет шаблон и ломает логику.

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

Закрыли страницу в robots.txt, но не поставили noindex

Это самая частая ошибка. URL остаётся в индексе, потому что поисковик не получает явного сигнала на удаление. Исправление: уберите запрет на обход, дайте странице один раз переобойтись и поставьте noindex.

Сломали canonical на всех страницах

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

Закрыли полезные архивы

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

Не учли страницы вложений и медиа

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

Практические советы по безопасности и производительности

Чем меньше лишних URL генерирует сайт, тем проще и безопаснее его обслуживать. Это не только про SEO. Меньше дублей — меньше нагрузки на обход, меньше мусора в логах, меньше шансов, что какой-то плагин начнёт плодить бесконечные комбинации параметров.

  • не ставьте одновременно несколько SEO-плагинов с пересекающимися функциями;
  • проверяйте, не создаёт ли тема отдельные шаблоны архивов без нужды;
  • не открывайте в индексацию внутренний поиск и страницы с параметрами сортировки без необходимости;
  • после обновления плагинов повторно проверяйте canonical и robots-метки;
  • если используете кеш, очищайте его после изменения правил индексации, иначе будете смотреть на старую версию HTML.

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

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

Как закрыть дубли страниц в WordPress через robots.txt, noindex и canonical
27.08.2026