Как закрыть от индексации технические страницы WordPress и убрать лишние дубли

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

Здесь разберём не абстрактную теорию, а рабочую схему: что именно закрывать, чем лучше пользоваться — плагином, кодом или комбинацией, и как проверить, что всё сработало без побочных эффектов.

Какие страницы WordPress обычно создают лишние дубли

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

Типовые кандидаты на закрытие

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

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

Диагностика: как понять, что проблема есть

Не начинайте с массового noindex на всё подряд. Сначала проверьте, какие URL реально попали в индекс и откуда они берутся.

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

  • поиск по сайту в Google с оператором site:example.com;
  • отчёт «Страницы» в Google Search Console;
  • логи краулинга, если они доступны;
  • исходный код проблемной страницы: есть ли meta robots или заголовок X-Robots-Tag;
  • канонический URL: не указывает ли он сам на дубль.

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

Что лучше: плагин, код или оба варианта

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

ПодходКогда подходитПлюсМинус
SEO-плагинТиповой сайт, стандартные архивыБыстро, без правки темыМеньше гибкости
Код в теме/плагинеНужны точные правилаПолный контрольНужно тестировать после обновлений
КомбинацияЧасть URL закрывает плагин, часть — кодУдобно для сложных сайтовВажно не дублировать правила

Если у вас уже стоит Clearfy Pro, часть таких задач можно закрыть штатными настройками чистки сайта и SEO-опций, но всё равно проверяйте итоговый HTML и заголовки ответа. Автоматическая галочка в панели не гарантирует, что поисковик увидит именно то, что вы ожидаете.

Пошаговое решение через код

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

1. Закрываем архивы автора и даты

add_action('wp_head', function () {
    if (is_author() || is_date()) {
        echo '<meta name="robots" content="noindex,follow">' . "\n";
    }
});

Этот вариант работает, но для надёжности лучше отдавать X-Robots-Tag на уровне HTTP-заголовка, особенно если часть страниц рендерится не так, как ожидает тема.

add_action('send_headers', function () {
    if (is_author() || is_date()) {
        header('X-Robots-Tag: noindex, follow', true);
    }
});

Если вы используете оба способа, не делайте противоречивые правила. Например, noindex в заголовке и index в meta robots — плохая идея. Поисковик обычно ориентируется на более жёсткое ограничение, но смешивать сигналы не стоит.

2. Отключаем страницы вложений

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

add_action('template_redirect', function () {
    if (is_attachment()) {
        $parent = wp_get_post_parent_id(get_the_ID());

        if ($parent) {
            wp_redirect(get_permalink($parent), 301);
            exit;
        }

        wp_redirect(home_url('/'), 301);
        exit;
    }
});

Это не «закрытие от индексации» в чистом виде, а более жёсткая и часто более полезная мера: вместо бесполезной страницы вложения пользователь и робот попадают на релевантный URL.

Пошаговое решение через SEO-плагин

Если вы не хотите править код, ищите в плагине настройки для архивов автора, дат, вложений и мета robots. Логика простая: отключить индексацию там, где страница не несёт самостоятельной ценности, и не трогать полезные архивы.

На что смотреть в настройках

  • архивы автора: noindex или отключение архива для одного автора;
  • архивы по дате: чаще всего noindex;
  • вложения: редирект на родителя или noindex;
  • канонический URL на архивных страницах;
  • генерация robots для отдельных типов записей.

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

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

Проверка нужна не только в админке, но и снаружи. Иначе можно получить ситуацию, когда в интерфейсе всё включено, а в HTML или заголовках ничего не поменялось.

Чек-лист проверки

  • откройте проблемный URL в браузере и посмотрите исходный код;
  • убедитесь, что есть meta name="robots" content="noindex,follow" или X-Robots-Tag;
  • проверьте HTTP-заголовки через DevTools или curl -I;
  • посмотрите, не остался ли канонический URL на саму страницу;
  • проверьте, не ведут ли внутренние ссылки на закрытую страницу без необходимости.

Пример проверки заголовков через консоль:

curl -I https://example.com/author/admin/

В ответе вы должны увидеть либо X-Robots-Tag: noindex, follow, либо редирект на другой URL, если вы выбрали такой сценарий для вложений.

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

Закрыли полезный архив вместе с мусорным

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

Поставили noindex, но страница всё равно в индексе

Если страница уже была в индексе, поисковику нужно время на переобход. Кроме того, noindex на странице, которая давно не сканируется, может не сработать быстро. В таких случаях помогает сочетание: корректный noindex, внутренняя перелинковка без ссылок на дубль и, где уместно, 301-редирект.

Получили конфликт между плагином и кодом

Когда SEO-плагин ставит одно правило, а тема — другое, итоговый HTML становится непредсказуемым. Проверьте, нет ли двух источников мета robots, и оставьте один. Если плагин управляет SEO-глобально, кодом лучше закрывать только те URL, которые плагин не покрывает.

Редирект вложений сломал галереи

Если на сайте есть старые галереи или нестандартная логика медиа, редирект может повлиять на пользовательский сценарий. Тогда сначала протестируйте на staging-окружении и проверьте, не используется ли attachment page как часть контента. В редких случаях достаточно noindex без редиректа.

Безопасность и производительность: что не стоит делать

Не добавляйте тяжёлые условия в каждый запрос без необходимости. Если правило можно ограничить конкретным типом страницы, делайте это через is_author(), is_date() или is_attachment(), а не через громоздкий парсинг URI.

Если вы правите functions.php, помните, что ошибка в коде может положить сайт. Для рабочих проектов безопаснее вынести такие правила в небольшой mu-plugin или отдельный мини-плагин, чтобы не зависеть от темы.

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

Когда лучше не закрывать страницу, а оставить её в индексе

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

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