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

Если на сайте появились одинаковые или почти одинаковые страницы архивов товаров, поисковик начинает тратить краулинговый бюджет на мусорные URL, а не на полезные страницы. На практике это часто случается после включения фильтров, сортировок, пагинации, параметров в URL или при конфликте темы с SEO-плагином. Ниже — рабочий сценарий: как найти источник дублей, чем закрывать каждый тип URL и как проверить, что после правок индексация стала чище.

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

Не каждый похожий URL — это ошибка. Важно отделить нормальные страницы от технических копий. Для архивов товаров типичный набор дублей выглядит так:

  • страница категории с параметрами сортировки, например ?orderby=price;
  • фильтры в URL, если они создают отдельные индексируемые страницы;
  • пагинация, когда первая страница и страницы /page/2/ дублируют друг друга по title и description;
  • архивы тегов, атрибутов или таксономий, которые не несут самостоятельной ценности;
  • версии URL со слешем и без слеша, если на сайте есть проблемы с редиректами.

Если в Search Console растет число страниц без кликов, а в отчете по индексированию появляются URL с параметрами, это уже не абстрактная «SEO-проблема», а конкретный технический долг.

Диагностика: где искать источник дублей

Начинать лучше не с правок, а с проверки того, какие именно URL попали в индекс и откуда они берутся. Это экономит время: иногда достаточно отключить один параметр в фильтре или поправить шаблон архива.

Что смотреть в первую очередь

  • отчет «Страницы» в Google Search Console;
  • HTML-код архивов: одинаковые ли <title>, meta description и canonical;
  • ссылки в меню, хлебных крошках и блоках фильтрации;
  • правила генерации URL в теме и плагинах фильтрации;
  • ответ сервера на URL с параметрами: 200, 301 или 404.

Если у вас есть доступ к командной строке, полезно быстро проверить, как сервер отвечает на проблемные адреса:

curl -I https://example.com/shop/?orderby=price
curl -I https://example.com/product-category/shoes/page/2/
curl -I https://example.com/product-tag/sale/

Здесь важно не только наличие 200 OK, но и то, что canonical указывает на основную версию страницы, а не на параметрическую копию.

Какой способ выбрать: плагин, код или настройка темы

Для архивов товаров обычно есть три пути. Универсального решения нет: все зависит от того, кто генерирует дубли.

ПодходКогда подходитМинус
Настройки SEO-плагинаНужно быстро закрыть теги, атрибуты, служебные архивыНе решает проблему, если дубли создаёт тема или фильтр
Код в теме или мини-плагинеНужно точечно управлять canonical, noindex, редиректамиТребует аккуратной проверки после обновлений
Настройки фильтра/каталогаДубли создаёт плагин фильтрации или сортировкиИногда приходится жертвовать частью UX

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

Пошаговое решение: убираем дубли архивов товаров

Шаг 1. Закрываем от индексации служебные архивы

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

add_action('wp_head', function () {
    if (is_tax(array('product_tag', 'pa_color', 'pa_size'))) {
        echo '<meta name="robots" content="noindex,follow">' . "\n";
    }
}, 1);

add_filter('get_canonical_url', function ($canonical) {
    if (is_tax(array('product_tag', 'pa_color', 'pa_size'))) {
        return get_post_type_archive_link('product');
    }
    return $canonical;
});

Такой вариант подходит только если вы понимаете, какие таксономии реально нужны. Не закрывайте все подряд: иногда теговые страницы приводят целевой трафик.

Шаг 2. Убираем индексируемые параметры сортировки

Параметры orderby, min_price, max_price и похожие часто создают почти одинаковые страницы. Если они не должны индексироваться, их нужно либо переводить в canonical на чистый URL, либо отдавать noindex. Для WordPress это можно сделать через проверку $_GET:

add_action('wp_head', function () {
    $tracked_params = array('orderby', 'min_price', 'max_price', 'rating_filter');

    foreach ($tracked_params as $param) {
        if (isset($_GET[$param]) && $_GET[$param] !== '') {
            echo '<meta name="robots" content="noindex,follow">' . "\n";
            break;
        }
    }
}, 1);

add_filter('get_canonical_url', function ($canonical) {
    $tracked_params = array('orderby', 'min_price', 'max_price', 'rating_filter');

    foreach ($tracked_params as $param) {
        if (isset($_GET[$param]) && $_GET[$param] !== '') {
            return remove_query_arg($tracked_params, $canonical);
        }
    }

    return $canonical;
});

Если фильтр работает через AJAX и URL меняется только в браузере, проверьте, не попадают ли такие адреса в sitemap или внутренние ссылки. Иначе поисковик все равно найдет их через обход сайта.

Шаг 3. Нормализуем пагинацию и первую страницу архива

Частая ошибка — когда первая страница архива и /page/1/ доступны одновременно. Первая должна быть основной, а вторая — либо редиректиться, либо не создаваться вовсе. Для этого полезно проверить настройки темы и SEO-плагина, а также наличие лишних ссылок в шаблоне.

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

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

После правок не стоит сразу ждать переиндексации. Сначала проверьте техническое состояние страниц:

  • откройте проблемный URL в браузере и посмотрите исходный код;
  • убедитесь, что canonical ведет на основную страницу архива;
  • проверьте наличие noindex,follow на страницах с параметрами;
  • сравните заголовки title у основной и параметрической версии;
  • проверьте ответ сервера через curl -I или DevTools;
  • посмотрите, исчезли ли эти URL из внутренней перелинковки.

Если хотите быстро проверить canonical прямо из шаблона, временно выведите его в HTML и сравните на нескольких типах страниц. Главное — не оставлять отладочный код в продакшене.

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

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

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

Оставляют доступными параметры, но не меняют canonical

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

Используют редирект вместо нормализации

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

Забывают про внутренние ссылки

Даже если canonical настроен правильно, поисковик продолжит находить дубли через меню, хлебные крошки, блоки «похожие товары» и фильтры. Ссылки на технические URL нужно убрать на уровне шаблона.

Чек-лист перед публикацией правок

  • Проверены проблемные URL в Search Console.
  • Определены типы дублей: параметры, таксономии, пагинация, служебные архивы.
  • Для ненужных страниц настроен noindex,follow.
  • Canonical ведет на основную версию архива.
  • Лишние ссылки убраны из шаблонов и фильтров.
  • Проверен ответ сервера на URL с параметрами.
  • Нет конфликтов между темой и SEO-плагином.

Что делать, если дубли создает плагин фильтрации

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

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

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

Как настроить robots.txt для файлов медиасайта в WordPress
06.09.2026
Как исправить дубли страниц архивов товаров в WordPress
17.09.2026
Как закрыть дубли страниц в WordPress через robots.txt, noindex и canonical
20.08.2026
Как отключить XML-RPC в WordPress и не сломать Jetpack, мобильные приложения и внешние сервисы
03.09.2026
Как отключить XML-RPC и защитить wp-login.php от brute force в WordPress
03.09.2026