WordPress Notes WP-1

Как отключить индексацию отдельных страниц WordPress: noindex, robots.txt и canonical без ошибок

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

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

Какие страницы обычно нужно закрывать от индексации

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

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

Диагностика: где именно возникает проблема

Сначала не меняйте настройки вслепую. Откройте отчёт в Google Search Console и посмотрите, какие URL попадают в индекс или получают статус «Просканировано, но не проиндексировано». Если проблема массовая, обычно видно один из сценариев:

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

Полезно проверить и сам HTML. Откройте страницу и посмотрите, есть ли в коде <meta name="robots" content="noindex,follow"> или корректный canonical. Если тегов нет, значит WordPress или тема не отдают нужный сигнал.

Что не стоит делать сразу

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

Пошаговое решение: noindex, robots.txt и canonical

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

1. Закрываем служебные страницы через мета-тег robots

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

<?php
add_action( 'wp_head', function () {
    if ( is_search() || is_attachment() ) {
        echo '<meta name="robots" content="noindex,follow" />' . "\n";
    }
}, 1 );

Этот вариант простой, но его лучше использовать только если тема или SEO-плагин не управляют robots-тегами сами. Иначе можно получить два разных meta robots на одной странице.

2. Добавляем canonical для дублей с параметрами

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

<?php
add_filter( 'wpseo_canonical', function( $canonical ) {
    if ( is_search() ) {
        return home_url( '/' );
    }

    return $canonical;
} );

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

3. Используем robots.txt только для второстепенных ограничений

robots.txt полезен, когда нужно снизить лишнюю нагрузку на обход: например, закрыть технические каталоги или не пускать ботов в служебные разделы. Но это не замена noindex.

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /?s=
Disallow: /search/
Disallow: /tag/

С Disallow: /tag/ нужно быть осторожнее. Если теги уже в индексе и вы хотите их убрать, сначала поставьте noindex на сами страницы тегов, дождитесь переобхода, и только потом при необходимости ограничивайте обход.

Сравнение подходов: что выбрать в реальной задаче

СценарийЛучший вариантКомпромисс
Внутренний поискnoindex,followrobots.txt только как дополнительная мера
Дубли с параметрамиcanonicalСочетание noindex и canonical, если дубль уже в индексе
Служебные каталогиrobots.txtЕсли URL уже проиндексированы — сначала noindex или редирект
Страницы вложенийnoindex + редирект на файл или записьОставить доступными, если они реально нужны

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

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

  1. Откройте страницу в браузере и проверьте исходный код на наличие одного корректного meta robots.
  2. Убедитесь, что canonical указывает на правильный URL без лишних параметров.
  3. Проверьте ответ сервера через curl -I https://site.ru/page/ — для редиректов это особенно важно.
  4. В Google Search Console отправьте URL на переобход и посмотрите, как меняется статус индексации.
  5. Если страница должна исчезнуть из поиска, дождитесь повторного обхода, а не ждите мгновенного эффекта.

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

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

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

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

На странице два meta robots

Так бывает, когда SEO-плагин и тема одновременно печатают свои теги. В итоге один тег говорит index, другой — noindex. Нужно оставить один источник управления: либо настройки плагина, либо код в теме, но не оба сразу.

Canonical указывает на неправильную страницу

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

Закрыли от индексации полезные страницы

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

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

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

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

Если нужно быстро проверить, не ломает ли правка шаблон, делайте её сначала в дочерней теме или через небольшой mu-plugin. Так проще откатить изменения и не потерять их после обновления темы.

<?php
/**
 * Plugin Name: WP-1 Noindex Helpers
 */

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

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

×

Время действовать!

Суперцены на
WordPress!

-20%
на премиум темы

Не упусти шанс ⋙