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

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

Важно не путать две задачи: закрыть от индексации и не допустить появления дублей. Иногда достаточно noindex, иногда нужен canonical, а иногда лучше вообще убрать генерацию параметра на уровне темы или плагина. Ниже — рабочий порядок действий без лишней теории.

Когда параметр в URL становится проблемой

Не каждый query string вреден. Например, ?s= для поиска или ?add-to-cart= в e-commerce могут быть частью логики. Но если параметр не меняет смысл страницы для поиска, а только создаёт альтернативный адрес, его лучше исключить из индекса.

Типичные признаки

  • в поиске видны URL с utm_, gclid, fbclid;
  • в индексе появляются страницы с ?replytocom= или параметрами комментариев;
  • одна и та же статья доступна по нескольким адресам из-за фильтров или сортировки;
  • в Search Console растёт число «Просканировано, но не проиндексировано» для служебных URL;
  • канонический URL указывает не туда, куда вы ожидаете.

Диагностика: что именно индексируется

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

Проверка в браузере и Search Console

  1. Откройте проблемный URL с параметром, например /post-name/?utm_source=test.
  2. Посмотрите исходный код страницы и найдите <link rel="canonical" ...>.
  3. Проверьте, есть ли на странице мета-тег noindex.
  4. В Search Console откройте проверку URL и посмотрите, какой адрес считается каноническим.

Если canonical указывает на чистый URL, а параметр всё равно попадает в индекс, обычно проблема в том, что поисковик видит страницу как самостоятельную или параметр создаёт отдельный контент. Если canonical отсутствует или ведёт на саму себя, сначала исправляйте это.

Пошаговое решение: noindex для URL с параметрами

Самый предсказуемый способ — добавить noindex,follow только для тех запросов, которые не должны индексироваться. Это удобно делать через wp_robots, если у вас современная версия WordPress.

Пример для служебных параметров

<?php
add_filter( 'wp_robots', function( array $robots ) {
    $blocked_params = array( 'utm_source', 'utm_medium', 'utm_campaign', 'gclid', 'fbclid', 'replytocom' );

    foreach ( $blocked_params as $param ) {
        if ( isset( $_GET[ $param ] ) ) {
            $robots['noindex'] = true;
            $robots['follow']   = true;
            break;
        }
    }

    return $robots;
} );

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

Если параметр меняет сортировку или фильтр

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

<?php
add_filter( 'wpseo_canonical', function( $canonical ) {
    if ( isset( $_GET['sort'] ) || isset( $_GET['filter'] ) ) {
        return get_permalink( get_queried_object_id() );
    }

    return $canonical;
} );

Этот пример уместен только если у вас действительно есть логика, где канонический адрес должен быть очищен от параметров. Для Yoast SEO фильтр wpseo_canonical реален, но использовать его нужно аккуратно: не подменяйте canonical на всех страницах подряд.

Сравнение подходов: плагин, код или robots.txt

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

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

Когда лучше не трогать robots.txt

Запрет в robots.txt часто используют как универсальный ответ, но для параметров это не лучший путь. Если поисковик не может обойти URL, он не увидит canonical и не поймёт, что страница дублирует основную. В итоге URL может остаться в индексе как «URL без контента» или с устаревшим сниппетом.

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

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

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

  • Откройте URL с параметром и убедитесь, что в исходном коде есть meta name="robots" content="noindex,follow" или эквивалентный тег.
  • Проверьте canonical: он должен вести на чистую версию страницы, если параметр не несёт самостоятельной ценности.
  • В Search Console отправьте URL на повторную проверку и посмотрите, как меняется выбранный канонический адрес.
  • Проверьте несколько вариантов параметров вручную, а не только один тестовый.

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

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

Ставят noindex на все страницы с query string

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

Закрывают параметр в robots.txt и ждут исчезновения из индекса

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

Canonical указывает на саму себя

Так бывает, когда тема или SEO-плагин не учитывают параметры. В этом случае поисковик может считать URL отдельной страницей. Проверьте фильтры генерации canonical и не подменяйте адрес на уровне шаблона без тестов.

Параметр создаёт отдельный контент, но его закрывают как дубль

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

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

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

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

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

Мини-чек-лист перед публикацией правки

  • Параметр действительно не нужен в индексе.
  • Canonical указывает на правильный чистый URL.
  • noindex добавляется только для нужных запросов.
  • Кэш очищен и вы видите актуальную версию страницы.
  • Проверка URL в Search Console показывает ожидаемый результат.
  • На сайте нет случайного закрытия полезных страниц поиска или фильтров.

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

Как закрыть от индексации отдельные параметры URL в WordPress
01.10.2026
Как закрыть от индексации отдельные страницы WordPress через noindex, canonical и robots.txt
27.09.2026
Как закрыть дубли страниц от пагинации в WordPress: noindex, canonical и проверка индексации
24.09.2026
×
-15%
на премиум-тему
Bono

Создай магазин мечты
на WordPress!

↓ ↓ ↓ ↓ ↓
Купить со скидкой »