wphierarchy.ru wordpress Структура шаблонов WordPress

Как найти и убрать дубли страниц от пагинации и фильтров в WordPress

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

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

Когда дубли реально мешают

Не каждый повтор URL — проблема. Например, пагинация архива может быть нормальной частью сайта, если у страниц /page/2/ и дальше есть собственный смысл для пользователя. Но дубли становятся вредными, когда:

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

Как понять, что проблема уже есть

Проверять нужно не только через Search Console, но и руками. Откройте несколько вариантов одного и того же раздела: с параметром сортировки, с пагинацией, с UTM, с фильтром. Если контент почти одинаковый, а URL разные — это кандидат на дубль.

Дополнительно посмотрите:

  • отчёт по страницам в Google Search Console;
  • индексацию URL с параметрами через поиск по сайту и оператор site:;
  • исходный код страниц: есть ли корректный rel="canonical";
  • не создаёт ли тема или плагин отдельные архивы для таксономий и авторов без необходимости.

Диагностика: где именно WordPress плодит дубли

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

Пагинация архивов

Архивы категорий и записей часто создают повторяющиеся заголовки и описания. Если на странице /category/news/ и /category/news/page/2/ одинаковый title и description, поисковику сложнее понять, чем они отличаются.

Проверка простая: откройте HTML и сравните <title>, meta name="description" и canonical. Если canonical указывает на первую страницу архива, а контент на второй отличается, это уже спорная конфигурация и её надо осознанно выбирать, а не оставлять по умолчанию.

Параметры сортировки и фильтров

Параметры в URL — частый источник мусора. Например, ?orderby=date, ?filter_color=red, ?s= для поиска. Если такие страницы доступны для индексации, поисковик может тратить краулинговый бюджет на бесполезные комбинации.

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

Архивы автора, тегов и дат

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

Что делать: рабочая схема без лишней магии

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

1. Закрыть служебные и бесполезные параметры

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

Пример для добавления noindex на страницы поиска и на URL с определёнными параметрами:

<?php
add_action('wp_head', function () {
    if (is_search()) {
        echo '<meta name="robots" content="noindex,follow" />' . "\n";
        return;
    }

    $blocked_params = ['sort', 'orderby', 'filter_color', 'filter_size'];
    foreach ($blocked_params as $param) {
        if (isset($_GET[$param])) {
            echo '<meta name="robots" content="noindex,follow" />' . "\n";
            break;
        }
    }
});

Это базовый вариант. На практике лучше не полагаться только на мета-тег, если параметры порождают большой объём мусора. Тогда дополнительно настраивают canonical и, где уместно, ограничивают генерацию таких URL на уровне темы или плагина.

2. Привести canonical к одному варианту

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

Пример фильтра для WordPress, который убирает параметры из canonical на фронтенде:

<?php
add_filter('get_canonical_url', function ($canonical, $post) {
    if (is_admin() || empty($canonical)) {
        return $canonical;
    }

    $canonical = remove_query_arg(
        ['utm_source', 'utm_medium', 'utm_campaign', 'sort', 'orderby', 'filter_color', 'filter_size'],
        $canonical
    );

    return $canonical;
}, 10, 2);

Этот подход полезен, если у вас в ссылках часто появляются UTM и технические параметры. Но canonical не заменяет нормальную архитектуру URL: если фильтр создаёт отдельную страницу с уникальным контентом, её нельзя бездумно каноникалить на родительский архив.

3. Убрать индексацию лишних архивов

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

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

4. Ограничить параметры на уровне сервера или приложения

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

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

<?php
add_filter('the_content', function ($content) {
    return preg_replace_callback('/<a\s[^>]*href=["\']([^"\']+)["\'][^>]*>/i', function ($matches) {
        $url = $matches[1];
        $clean_url = remove_query_arg(['utm_source', 'utm_medium', 'utm_campaign'], $url);
        return str_replace($url, esc_url($clean_url), $matches[0]);
    }, $content);
});

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

Сравнение подходов: плагин, код или ручная настройка

ПодходЧто решаетПлюсыМинусы
SEO-плагинnoindex, canonical, архивы, мета-тегиБыстро, меньше риска ошибитьсяНе всегда хватает гибкости для нестандартных фильтров
Код в теме или mu-pluginТочечная логика для параметров и архивовКонтроль над конкретным сценариемНужно тестировать после обновлений
Ручная правка шаблоновОтдельные страницы и архивыМожно решить узкую задачу без лишних зависимостейЛегко сломать canonical или мета-логику

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

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

  • Откройте URL с параметром и убедитесь, что canonical указывает на чистую страницу.
  • Проверьте, что страницы поиска и служебные архивы получили noindex,follow, если вы это настраивали.
  • Сравните HTML первой и второй страницы архива: title и description должны отличаться или хотя бы не вводить в заблуждение.
  • В Search Console отправьте на переобход ключевые страницы и посмотрите, не осталось ли дублей в отчётах.
  • Проверьте, не исчезли ли из индекса важные страницы, которые должны были остаться открытыми.

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

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

Ставят noindex на все архивы подряд

Так делают, когда хотят быстро «почистить SEO». В результате из индекса пропадают полезные страницы категорий, которые приводили трафик. Исправление простое: оставляйте в индексе только те архивы, которые имеют уникальную ценность и нормальный контент.

Canonical ведёт не туда

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

Закрывают параметры robots.txt вместо noindex

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

Не тестируют пагинацию после правок

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

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

Если вы добавляете код для управления дублями, не вносите его прямо в functions.php на боевом сайте без проверки. Лучше использовать mu-plugin или отдельный мини-плагин, чтобы не потерять логику при смене темы.

Ещё несколько полезных правил:

  • не добавляйте десятки условий в wp_head, если можно решить задачу на уровне SEO-плагина;
  • не закрывайте от индексации страницы, которые уже дают стабильный трафик;
  • не используйте одинаковые title и description для всех страниц пагинации;
  • не оставляйте внутренние ссылки с UTM, если они не нужны для аналитики;
  • после изменений очистите кеш страницы и объектный кеш, если он есть.

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

×
до 3225₽

Продавай темы и плагины WordPress!

Лови с каждой продажи

Начать ⋙