Если в поиске начали появляться одинаковые страницы с разными параметрами в адресе, это почти всегда признак лишних дублей. В WordPress так обычно выглядят ссылки с UTM-метками, параметрами фильтров, сортировки, пагинации, служебными значениями для корзины, сравнения или отслеживания. Полностью «запретить все параметры» нельзя и не нужно: часть из них нужна для аналитики, часть — для работы сайта, а часть действительно создаёт мусорные URL, которые поисковику лучше не индексировать.
Задача здесь не в том, чтобы механически закрыть всё подряд, а в том, чтобы отделить полезные параметры от бесполезных и выбрать правильный способ обработки для каждого случая. Для одних URL достаточно подсказки поисковику через canonical, для других нужен запрет на индексацию, а для некоторых — вообще ничего делать не надо.
Какие параметры в URL обычно создают лишние дубли
В WordPress и на сайтах на его базе чаще всего встречаются такие группы параметров:
- UTM-метки —
?utm_source=...,?utm_medium=...,?utm_campaign=...и похожие. Они нужны для аналитики, но не должны создавать отдельные индексируемые страницы. - Фильтры каталога — например,
?color=red,?size=m,?brand=.... Если фильтр меняет только отображение списка товаров или записей, поисковику обычно не нужен каждый его вариант. - Сортировка и вид списка —
?orderby=price,?order=asc,?view=grid. Такие параметры редко несут самостоятельную ценность для поиска. - Служебные параметры — идентификаторы сессии, временные токены, параметры сравнения, добавления в корзину, внутренние служебные флаги плагинов.
- Пагинация и навигационные параметры —
?paged=2,?page=3и похожие. Их нельзя бездумно закрывать, потому что они помогают обходу и навигации по большим разделам.
Главный ориентир простой: если параметр не меняет смысл страницы для пользователя и не должен ранжироваться отдельно, его обычно не стоит пускать в индекс. Если же параметр нужен для нормальной навигации по контенту или для аналитики, его лучше не ломать.
Что закрывать, а что оставить
На практике удобнее смотреть на параметры по назначению. Ниже — рабочая логика, которой обычно хватает для большинства сайтов на WordPress.
| Тип параметра | Что делать | Почему |
|---|---|---|
| UTM-метки | Не индексировать, но не мешать аналитике | Они нужны для трекинга кампаний, а не для поиска |
| Фильтры каталога | Чаще закрывать от индексации или отдавать canonical на основную категорию | Иначе быстро появляются десятки и сотни дублей |
| Сортировка | Обычно закрывать от индексации | Это тот же контент в другом порядке |
| Пагинация | Оставлять доступной, не запрещать бездумно | Это часть структуры сайта и навигации |
| Служебные параметры корзины, сравнения, сессии | Закрывать от индексации | Такие URL не должны попадать в поиск |
Если коротко: UTM и служебные параметры почти всегда лишние в индексе, фильтры — по ситуации, пагинация — осторожно, потому что она нужна не только поисковику, но и пользователю.
Самый безопасный способ: не запрещать всё через robots.txt
Первая ошибка, которую часто делают на сайтах WordPress, — пытаются закрыть параметры через robots.txt. Это работает не так, как ожидают. Запрет в robots.txt мешает обходу, но не гарантирует исключение URL из индекса, если поисковик уже знает такой адрес. Кроме того, если закрыть слишком много, можно случайно спрятать полезные страницы с параметрами, которые должны быть доступны.
Поэтому robots.txt — не основной инструмент для решения задачи с параметрами. Он полезен для ограничения обхода отдельных разделов, но не для тонкой настройки индексации URL с query string. Для этой задачи обычно лучше подходят:
rel="canonical"на основную версию страницы;noindexдля страниц, которые не должны попадать в поиск;- корректная внутренняя перелинковка без лишних параметров;
- настройки SEO-плагина или фильтрация параметров на уровне шаблона.
Как закрыть страницы с параметрами в WordPress на практике
Универсального переключателя в самом WordPress нет, поэтому способ зависит от того, как именно у вас появляются параметры. Ниже — рабочие варианты по убыванию удобства.
1. Использовать SEO-плагин, если он умеет управлять параметрами
Если на сайте уже стоит SEO-плагин, сначала проверьте его возможности. Многие плагины позволяют задавать canonical, noindex для архивов, фильтров и страниц с параметрами, а также управлять индексированием отдельных шаблонов. Это самый безопасный путь, потому что он не требует правки ядра WordPress и не ломает генерацию страниц.
Но здесь есть важная оговорка: не каждый плагин умеет именно закрывать URL с произвольными параметрами. Иногда он может только ставить canonical на основную страницу, а этого достаточно не всегда. Если фильтр создаёт много комбинаций, одной canonical-логики может быть мало, особенно если поисковик всё равно активно обходит эти адреса.
2. Добавить noindex для страниц, которые открываются с параметрами
Если у вас есть конкретные шаблоны или страницы, которые не должны индексироваться при наличии параметров, можно добавить мета-тег noindex,follow только для таких URL. Это уже точечное решение, и оно обычно лучше, чем глобальные запреты.
В WordPress это можно сделать через хук wp_head. Пример ниже подходит для темы или небольшого кастомного плагина. Перед внесением изменений сделайте резервную копию и проверьте, что условие действительно срабатывает только на нужных URL.
<?php
add_action( 'wp_head', function () {
if ( is_admin() ) {
return;
}
if ( empty( $_GET ) ) {
return;
}
$tracked_params = array( 'utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content' );
$has_tracked_param = false;
foreach ( $tracked_params as $param ) {
if ( isset( $_GET[ $param ] ) ) {
$has_tracked_param = true;
break;
}
}
if ( $has_tracked_param ) {
echo '<meta name="robots" content="noindex,follow" />' . "\n";
}
} );Этот пример показывает только принцип: если на странице есть UTM-параметры, в <head> добавляется noindex,follow. Для реального проекта лучше сузить условие, чтобы не ставить noindex на все URL с любыми параметрами подряд. Например, можно отдельно обработать только страницы каталога, только архивы или только определённые служебные параметры.
Важно понимать: noindex — это не мгновенное удаление из поиска. Поисковику нужно заново обойти страницу, чтобы увидеть новый сигнал.
3. Использовать canonical на чистую версию URL
Если параметр не меняет смысл страницы, но создаёт альтернативный адрес, canonical часто решает проблему мягче, чем жёсткий запрет. Например, для страницы категории с UTM-меткой canonical должен указывать на чистый URL категории без параметров.
Для WordPress это особенно полезно, когда:
- страница должна оставаться доступной для пользователя;
- параметр нужен для аналитики или навигации;
- не хочется закрывать URL от обхода полностью;
- нужно объединить сигналы на одну основную страницу.
Но canonical не является магической командой. Если URL с параметрами генерирует много мусора, а поисковик видит их в ссылках сайта, лучше дополнительно убрать такие ссылки из шаблонов и внутренних блоков.
Как не сломать аналитику и навигацию
Самая частая ошибка — закрыть от индексации всё, что содержит знак ?. Так делать не стоит. UTM-метки нужны маркетингу, а некоторые параметры помогают понять, откуда пришёл трафик и как пользователь взаимодействует с сайтом. Если вы начнёте удалять их на лету или переписывать URL без необходимости, аналитика станет грязной, а часть кампаний будет считаться неверно.
Правильный подход такой:
- не мешать UTM-меткам работать в ссылках;
- не делать их частью внутренней перелинковки;
- не создавать отдельные индексируемые страницы под каждый набор UTM;
- для фильтров и сортировки использовать canonical или noindex там, где это оправдано;
- служебные параметры не выводить в публичные ссылки вообще.
Если на сайте есть фильтры каталога, отдельно проверьте, как они формируют URL. Иногда проблема не в индексации, а в том, что фильтры бесконечно комбинируются и создают тысячи адресов. В таком случае закрытие от индексации — только часть решения. Нужно ещё ограничить генерацию бесполезных комбинаций, убрать их из sitemap и не плодить внутренние ссылки на такие страницы.
Как проверить, что всё настроено правильно
После настройки не стоит полагаться только на визуальную проверку. Откройте несколько URL с параметрами и проверьте три вещи:
- в исходном коде страницы есть
noindex, если он был нужен; canonicalуказывает на чистую основную версию URL;- страница не попадает в XML-карту сайта, если она не должна индексироваться.
Дальше проверьте поведение в поисковых системах через инструменты для вебмастеров. Если URL уже был в индексе, удаление может занять время. Это нормально: поисковик сначала должен переобойти страницу и увидеть новые сигналы.
Ещё один практический тест — открыть страницу с параметром в режиме инкогнито и сравнить HTML с чистой версией. Если canonical и robots-мета отличаются там, где должны, значит логика работает. Если нет, ищите конфликт с темой, SEO-плагином или кэшем. На сайтах с серверным или плагинным кэшированием изменения в wp_head иногда не видны сразу, пока не очищен кэш.
Когда лучше не трогать параметры вручную
Если сайт использует сложный каталог, фильтры, faceted search или нестандартную логику построения URL, ручная правка в теме быстро становится хрупкой. В таком случае лучше решать задачу на уровне SEO-плагина, шаблона или отдельного мини-плагина, а не вставлять условия прямо в файл темы. Это особенно важно, если тема обновляется или на сайте работает несколько разработчиков.
Также не стоит закрывать параметры «на всякий случай», если вы не понимаете, как они используются. Сначала посмотрите, какие URL реально индексируются, какие из них дают трафик, а какие просто создают шум. Иногда достаточно убрать из индекса только UTM и служебные параметры, а фильтры оставить под canonical. Такой подход обычно безопаснее и чище, чем тотальная блокировка.
Если нужен именно инструмент для удаления дублей и наведения порядка в SEO-настройках WordPress, у WPShop есть Clearfy Pro. Но даже с плагином принцип остаётся тем же: сначала определите, какие параметры нужны для аналитики и навигации, а какие только плодят дубли, и уже потом настраивайте noindex или canonical.