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

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

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

Какие параметры обычно нужно закрывать

GET-параметры — это часть URL после знака ?. Например, /shop/?sort=price или /search/?s=книга. Для поисковика это уже не просто исходная страница, а новый адрес. Если таких комбинаций много, индекс быстро разрастается мусорными URL.

Чаще всего закрывают от индексации:

  • сортировку: ?sort=, ?orderby=;
  • фильтры: ?color=, ?size=, ?brand= и похожие;
  • внутренний поиск: ?s=;
  • трекинговые метки: ?utm_source=, ?utm_medium=, ?gclid=, ?fbclid=;
  • технические параметры, которые не должны жить в поиске.

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

Что выбрать: robots.txt, noindex или canonical

Для страниц с параметрами в WordPress обычно используют три подхода, и они решают разные задачи.

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

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

Как закрыть параметры через robots.txt

Если у вас есть типовые URL с одинаковым шаблоном параметра, их можно запретить в robots.txt. Это удобно для массовых фильтров, сортировок и внутренних поисковых URL.

Пример для стандартных параметров поиска и UTM-меток:

User-agent: *
Disallow: /*?s=
Disallow: /*?sort=
Disallow: /*?orderby=
Disallow: /*?utm_
Disallow: /*?gclid=
Disallow: /*?fbclid=

Такой вариант работает не на всех хостингах одинаково предсказуемо, потому что поддержка шаблонов в robots.txt зависит от того, как именно поисковик интерпретирует правила. Для Google и Яндекса подобные директивы обычно применяются, но это не заменяет проверку в панели вебмастера.

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

Когда нужен noindex и как его поставить в WordPress

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

Если плагин позволяет закрыть от индексации конкретные типы страниц, проверьте в первую очередь:

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

Если нужно закрывать именно страницы с определёнными параметрами, а плагин этого не умеет, остаётся программный вариант. Для WordPress это обычно делают через фильтр wp_robots, который позволяет добавить директиву noindex на нужных URL.

Ниже пример, который ставит noindex, follow на URL с параметрами sort, orderby и s. Код лучше добавлять в дочернюю тему или в небольшой mu-plugin, а не в основной файл темы, чтобы не потерять изменения после обновления.

add_filter('wp_robots', function ($robots) {
    if (is_admin()) {
        return $robots;
    }

    $keys = ['sort', 'orderby', 's'];

    foreach ($keys as $key) {
        if (isset($_GET[$key]) && $_GET[$key] !== '') {
            $robots['noindex'] = true;
            $robots['follow'] = true;
            break;
        }
    }

    return $robots;
});

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

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

Что делать с уже проиндексированными URL

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

Рабочая последовательность обычно такая:

  1. На параметрических страницах поставить noindex.
  2. Если URL не нужен вообще, настроить редирект или убрать генерацию ссылки на него.
  3. Добавить или оставить canonical на основную версию страницы, если это уместно.
  4. Проверить, не блокирует ли robots.txt обход страницы раньше, чем поисковик увидит noindex.

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

Как проверить, что закрытие работает

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

Проверьте три вещи:

  • открывается ли URL с параметром в браузере;
  • есть ли на странице мета-тег noindex или заголовок X-Robots-Tag, если вы использовали этот способ;
  • не закрыт ли URL в robots.txt раньше, чем поисковик сможет увидеть директиву noindex.

Если используете Google Search Console или Яндекс Вебмастер, отправьте тестовый URL на проверку. Важно смотреть именно на параметрическую версию адреса, а не на основную страницу без параметров. Частая ошибка — проверять только канонический URL и делать вывод, что всё настроено правильно.

Типичные ошибки, из-за которых страницы всё равно лезут в индекс

Самая частая ошибка — закрыть только часть параметров. Например, вы запретили ?sort=, но забыли про ?orderby= или ?filter_. В результате поисковик продолжает находить новые комбинации URL.

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

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

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

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

Как ускорить загрузку изображений в WordPress с помощью lazy load и оптимизации
20.09.2026
Как убрать дубли страниц пагинации в WordPress
19.10.2026
Как установить и настроить Redis кэш в WordPress для ускорения сайта
28.09.2026
Оптимизация загрузки шаблонов и стилей в WordPress: практические решения
25.09.2026
Как закрыть от индексации архивы рубрик в WordPress
02.10.2026