Параметрические URL в WordPress появляются чаще, чем кажется: UTM-метки из рекламы, сортировка, фильтры, внутренний поиск, служебные параметры плагинов. Для пользователя это одна и та же страница, а для поисковика — набор разных адресов. В итоге в индексе копятся дубли, размывается вес, а в отчётах Search Console появляются странные URL, которые не должны ранжироваться сами по себе.
Задача здесь не в том, чтобы «запретить все параметры подряд». Это слишком грубо и часто ломает полезные сценарии. Нужен точечный контроль: какие параметры можно оставить для аналитики, какие надо закрыть от индексации, а какие лучше вообще не отдавать в каноникал.
Как понять, что проблема именно в параметрах URL
Сначала проверьте, действительно ли поисковик видит дубли, а не просто ваш трекинг в аналитике. Для этого достаточно нескольких быстрых проверок.
- В Google Search Console откройте отчёт по страницам и посмотрите, есть ли URL с
?utm_,?sort=,?filter=или другими параметрами. - Сравните HTML одной и той же страницы без параметров и с параметром: совпадает ли
<link rel="canonical">. - Проверьте, не индексируются ли страницы внутреннего поиска, если они открываются через
?s=. - Посмотрите серверные логи или отчёты краулера: если бот часто ходит по десяткам вариантов одного URL, проблема уже влияет на обход сайта.
Если параметрические адреса отдают тот же контент, но имеют собственный canonical на себя или вообще без canonical, поисковик может начать воспринимать их как отдельные страницы. Это и есть типичный сценарий для чистки.
Какие параметры закрывать, а какие оставить
Не все параметры одинаковы. UTM-метки нужны маркетингу, но не должны становиться отдельными страницами в индексе. Фильтры каталога, сортировки и пагинация могут быть полезны пользователю, но в поиске часто создают шум. Внутренний поиск обычно вообще не должен индексироваться.
| Сценарий | Что делать | Компромисс |
|---|---|---|
utm_source, utm_medium, utm_campaign | Оставить для аналитики, но закрыть от индексации | URL будет длиннее, но данные кампаний сохранятся |
sort, filter, price | Проверить, нужен ли индексируемый листинг | Если страница полезна для SEO, лучше отдельная посадочная, а не параметр |
s для поиска | Обычно закрыть от индексации | Пользовательский поиск останется рабочим |
| служебные параметры плагинов | Смотреть по факту: иногда можно исключить только их | Нужна аккуратная настройка, а не глобальный запрет |
Пошаговое решение: как закрыть параметрические URL
1. Настройте canonical на основную страницу
Если страница с параметром должна существовать для пользователя, но не должна конкурировать в поиске, canonical должен указывать на чистый URL без параметров. В большинстве SEO-плагинов это делается автоматически, но лучше проверить руками.
<link rel="canonical" href="https://example.com/page/" />Если canonical уже есть, но указывает на URL с параметром, это надо исправить на уровне темы, SEO-плагина или фильтра генерации заголовков. Иначе закрытие через robots.txt не решит вопрос: поисковик может продолжать хранить URL в индексе как известный, но не сканируемый.
2. Добавьте noindex для служебных параметров
Для страниц поиска и некоторых фильтров безопаснее использовать noindex,follow. Это позволяет не индексировать саму страницу, но не ломает переходы по ссылкам внутри неё.
Ниже пример, который добавляет noindex только для запросов с параметром s и для UTM-меток. Его можно положить в functions.php дочерней темы или в небольшой mu-plugin.
<?php
add_action('wp_head', function () {
if (is_admin()) {
return;
}
$noindex = false;
if (isset($_GET['s']) && $_GET['s'] !== '') {
$noindex = true;
}
$utm_keys = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content'];
foreach ($utm_keys as $key) {
if (!empty($_GET[$key])) {
$noindex = true;
break;
}
}
if ($noindex) {
echo '<meta name="robots" content="noindex,follow" />' . "\n";
}
}, 1);Этот вариант не универсален, но он рабочий и понятный. Если на сайте уже стоит SEO-плагин, проверьте, не дублируете ли вы его логику. Два разных источника robots-мета — частая причина конфликтов.
3. Уберите параметрические URL из sitemap и внутренних ссылок
Если sitemap генерируется корректно, параметрические адреса туда не попадут. Но иногда их добавляют вручную, через фильтры или кастомные шаблоны. Проверьте, что в карте сайта только канонические URL.
Во внутренних ссылках тоже не стоит сохранять UTM-метки. Для аналитики лучше использовать события, а не размножать адреса сайта. Если метки нужны только в рекламных кампаниях, не вставляйте их в меню, хлебные крошки и блоки «похожие материалы».
4. Для отдельных шаблонов запретите индексацию на уровне шаблона
Если у вас есть отдельные страницы поиска, фильтрации или архивы с параметрами, иногда проще управлять индексацией прямо в шаблоне. Например, для страницы поиска можно добавить условие в wp_head или использовать фильтр SEO-плагина, если он у вас уже установлен.
<?php
add_action('wp_head', function () {
if (is_search()) {
echo '<meta name="robots" content="noindex,follow" />' . "\n";
}
});Это не отменяет canonical, но помогает закрыть типичный мусорный сценарий, когда поисковик активно обходит страницы поиска по внутренним ссылкам.
Когда robots.txt помогает, а когда мешает
Закрыть параметрические URL через robots.txt можно только в отдельных случаях. Если вы полностью запрещаете сканирование, поисковик может не увидеть canonical и noindex на самой странице. Для уже известных URL это иногда ухудшает ситуацию, а не улучшает.
Практическое правило такое: robots.txt годится для снижения нагрузки и отсечения явно бесполезных маршрутов, но не как единственный инструмент борьбы с дублями. Для индексации важнее canonical и meta robots.
Если параметр нужен для работы страницы, но не для индекса, лучше оставить доступ к URL и управлять индексированием на уровне HTML. Если же это технический мусор, который создаёт лишнюю нагрузку, тогда можно дополнительно ограничить обход через robots.txt.
Проверка результата после внедрения
После настройки не ограничивайтесь визуальной проверкой страницы. Нужно убедиться, что поисковик видит именно то, что вы задумали.
- Откройте страницу без параметров и с параметром в браузере.
- Сравните исходный код: canonical должен вести на чистый URL.
- Проверьте наличие
noindex,followна страницах поиска и UTM-вариантах. - В Search Console отправьте проверку URL и посмотрите, как Google видит страницу.
- Через несколько дней проверьте отчёт по индексированию: параметрические URL должны исчезать из списка страниц, пригодных к индексации.
Если у вас есть доступ к краулеру, прогоните сайт ещё раз и сравните количество URL с параметрами до и после. Это самый честный способ понять, сработала ли настройка.
Частые ошибки и как их исправить
Закрыли URL в robots.txt, но не добавили canonical
Такой подход часто оставляет старые URL в индексе. Поисковик знает о них, но не может нормально переобойти и переоценить. Исправление: вернуть доступ к странице, добавить canonical на чистый адрес и только потом при необходимости ограничивать обход.
Поставили noindex на всё подряд
Иногда в коде или SEO-плагине случайно закрывают не только параметры, но и обычные страницы. Это особенно опасно на шаблонах архива и поиска. Исправление: проверяйте условия, при которых выводится robots-мета, и тестируйте несколько типов URL.
Оставили UTM в внутренних ссылках
Если метки размножаются по сайту, вы сами создаёте поток дублей. Исправление: уберите UTM из внутренних ссылок и используйте их только во внешних кампаниях.
Смешали логику SEO-плагина и собственного кода
Когда canonical и robots-мета генерируются в двух местах, результат становится непредсказуемым. Исправление: оставьте один источник правды. Если используете SEO-плагин, сначала проверьте его настройки и только потом добавляйте код.
Практические советы по безопасности и производительности
Если на сайте много параметрических URL, это не только SEO-проблема. Боты могут тратить лишние запросы на обход бесполезных комбинаций, а сервер — отдавать одинаковые страницы снова и снова.
- Не генерируйте бесконечные комбинации фильтров без необходимости.
- Следите, чтобы сортировки и фильтры не создавали отдельные архивы без каноникализации.
- Если используете плагины для чистки дублей и SEO-настроек, проверяйте их совместимость на staging-сайте.
- Не закрывайте важные страницы от индексации только потому, что у них есть параметры в адресе.
Если нужен более системный контроль дублей, параметров и служебных страниц, удобно смотреть в сторону инструментов, которые умеют работать с SEO-настройками и чисткой сайта без ручного редактирования каждого шаблона. В экосистеме WPShop для таких задач может пригодиться Clearfy Pro, если вам нужен набор точечных настроек без лишней самодеятельности в коде.
Но даже с плагином логика остаётся той же: сначала диагностируете, какие параметры реально создают мусор, потом задаёте canonical и noindex, и только после этого проверяете индексацию в Search Console. Если пропустить первый шаг, можно закрыть не то, что нужно, и получить новые проблемы вместо старых.