Как закрыть от индексации поисковые страницы WordPress без потери трафика

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

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

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

Речь не о контентных страницах, а о технических URL, которые генерируются автоматически. В типичном WordPress это:

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

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

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

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

Проверка в поиске и в исходном коде

Откройте проблемную страницу и посмотрите, есть ли в <head> мета-тег robots. Если его нет, страница может индексироваться по умолчанию. Также проверьте канонический URL: иногда страница закрыта не через noindex, а через rel="canonical".

<meta name="robots" content="noindex,follow">
<link rel="canonical" href="https://example.com/">

Проверка через Search Console

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

Проверка на уровне шаблона

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

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

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

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

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

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

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

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

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

    return $robots;
});

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

Если нужно закрыть только пустой поиск

Иногда полезно оставить индексируемыми страницы поиска, если они реально формируют посадочные страницы. Тогда закрывать стоит только пустые результаты:

<?php
add_filter('wp_robots', function ($robots) {
    if (is_search() && !have_posts()) {
        $robots['noindex'] = true;
        $robots['follow'] = true;
    }

    return $robots;
});

Здесь важно понимать ограничение: have_posts() работает в основном цикле. Если тема или плагин переопределяют запрос, проверку нужно тестировать именно на реальной странице поиска, а не только в коде.

Когда лучше использовать SEO-плагин

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

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

У плагина есть плюс: он обычно уже умеет корректно ставить noindex, canonical и управлять XML-картой сайта. Минус в том, что не все плагины одинаково хорошо работают с нестандартными шаблонами и параметрами URL. Если после настройки страница всё равно попадает в индекс, проверьте, не переопределяет ли тема robots-мета вручную.

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

После правки не ограничивайтесь просмотром исходника. Нужна проверка в трех местах.

  1. Откройте страницу поиска или архив и убедитесь, что в <head> появился noindex,follow.
  2. Проверьте HTTP-ответ и убедитесь, что страница не отдает редирект на другой URL без причины.
  3. В Search Console отправьте URL на повторную проверку и посмотрите, как поисковик интерпретирует страницу.

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

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

Закрывают весь поиск, хотя он приносит трафик

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

Ставят noindex, но оставляют страницу в sitemap

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

Используют robots.txt вместо noindex

Disallow в robots.txt запрещает обход, но не гарантирует удаление URL из индекса, если он уже известен поисковику. Для страниц, которые уже попали в выдачу, чаще нужен именно noindex или корректный canonical.

Ломают пагинацию

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

Чек-лист перед публикацией правок

  • Проверить, какие URL реально создаются темой и плагинами.
  • Убедиться, что полезные посадочные страницы не закрываются случайно.
  • Добавить noindex,follow только там, где это действительно нужно.
  • Проверить canonical и XML-карту сайта.
  • Тестировать изменения на одной странице и только потом раскатывать на весь тип URL.
  • После внедрения отправить URL на переобход в Search Console.

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

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

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

Если на сайте много дублей, пустых архивов и технических страниц, имеет смысл сначала навести порядок в структуре индексации, а уже потом заниматься контентом. Для этого полезно использовать инструменты, которые помогают чистить дубли и управлять SEO-настройками на уровне сайта, например Clearfy Pro: https://wpshop.ru/plugins/clearfy.

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

⭐⭐⭐⭐⭐