wpstart.ru wordpress wpstart.ru

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

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

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

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

Этот подход нужен, если у вас есть повторяющийся тип URL, который не должен участвовать в поиске. Например:

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

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

Диагностика: где именно появляется лишняя индексация

Перед правкой важно понять, что именно происходит с URL. Иногда страница уже закрыта через noindex, но всё ещё видна в поиске как «страница без описания». Иногда она заблокирована в robots.txt, но при этом уже успела попасть в индекс по внешним ссылкам. Это разные ситуации, и лечатся они по-разному.

Проверьте тип страницы и источник генерации

Сначала откройте проблемный URL и посмотрите:

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

Если URL создаётся параметром, например ?s=, ?orderby= или ?filter=, закрывать нужно не только саму страницу, но и источник генерации ссылок. Иначе поисковик продолжит находить новые варианты адреса.

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

Посмотрите исходный код страницы и найдите:

  • <meta name="robots" content="noindex"> или похожую комбинацию;
  • canonical — куда он указывает;
  • есть ли блокировка в robots.txt;
  • не отдаёт ли страница код 200 OK там, где должен быть 404 или 410.

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

Как выбрать способ: плагин, код или robots.txt

Для WordPress есть три нормальных пути. Выбор зависит от того, где живёт проблема и насколько она массовая.

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

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

Пошаговое решение через код: закрываем шаблонные URL от индексации

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

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

add_filter('wp_robots', function ($robots) {
    if (is_search() || is_tag()) {
        $robots['noindex'] = true;
        $robots['follow']  = true;
    }
    return $robots;
});

Здесь лучше использовать именно фильтр wp_robots, потому что WordPress сам формирует корректный robots-мета для современных версий. Вывод через wp_head оставлен как запасной пример, но в реальном проекте достаточно одного нормального механизма, если тема и плагины не конфликтуют.

Если нужно закрыть не тип страницы, а URL с параметром, логика будет другой. Например, для страниц с ?s= или фильтрами можно добавить условие по $_GET и выставлять noindex только при наличии параметра:

<?php
add_filter('wp_robots', function ($robots) {
    if (!empty($_GET['s']) || !empty($_GET['filter']) || !empty($_GET['orderby'])) {
        $robots['noindex'] = true;
        $robots['follow']  = true;
    }
    return $robots;
});

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

Как сделать это через SEO-плагин без кода

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

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

Что делать с robots.txt и когда он действительно нужен

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

Пример аккуратного правила:

User-agent: *
Disallow: /?s=
Disallow: /search/
Disallow: /tag/
Disallow: /page/

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

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

После правки не ограничивайтесь просмотром страницы в браузере. Проверьте несколько уровней:

  • в исходном коде есть noindex для нужных шаблонов;
  • канонический URL указывает туда, куда вы ожидаете;
  • страница не попадает в XML-карту сайта, если она не должна индексироваться;
  • в robots.txt нет случайной блокировки важных разделов;
  • в Search Console URL доступен для проверки и не конфликтует с другими сигналами.

Для быстрой проверки можно открыть страницу и посмотреть исходный код, либо использовать команду:

curl -I https://example.com/tag/sample/

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

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

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

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

Поставили noindex, но оставили ссылку в sitemap

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

Использовали слишком широкое условие

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

Смешали canonical и noindex без логики

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

Чек-лист перед публикацией изменений

  • Проверили, какой именно шаблон или параметр создаёт лишний URL.
  • Выбрали способ: плагин, код или robots.txt.
  • Убедились, что закрытые страницы не нужны в поиске.
  • Удалили их из XML Sitemap, если они там были.
  • Проверили исходный код на наличие noindex.
  • Сверили canonical и внутренние ссылки.
  • Протестировали несколько URL одного типа, а не только один пример.

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

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

Если же URL технический и не должен существовать в поиске вообще, иногда правильнее отдать 404 или 410, чем пытаться «прятать» его мета-тегами. Это уже зависит от того, нужен ли адрес пользователям и есть ли на него внешние ссылки.

×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше