wpload.ru wordpress WPLoad.ru

Как закрыть индексацию архивов таксономий с параметрами в WordPress

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

Если у вас есть архивы вида /category/news/?sort=popular, /tag/seo/?page=2 или страницы таксономий с техническими параметрами от темы и плагинов, их лучше либо закрыть от индексации, либо привести к одному каноническому адресу. Ниже — рабочий сценарий без выдуманных хуков и без магии.

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

Не каждый параметр нужно запрещать. Сначала посмотрите, что именно попадает в поиск и как это влияет на сайт. Если в индексе есть:

  • страницы таксономий с одинаковым контентом, но разными параметрами сортировки;
  • архивы с пагинацией, которые дублируют основной список;
  • служебные параметры от фильтров, которые не меняют смысл страницы;
  • URL с UTM и внутренними параметрами, которые случайно стали индексируемыми;

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

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

  • есть ли у проблемных URL статус 200 OK;
  • отдают ли они одинаковый или почти одинаковый контент;
  • есть ли у них канонический URL;
  • не закрыты ли они уже в robots.txt случайно;
  • не генерирует ли их SEO-плагин, тема или фильтр-виджет.

Диагностика: где именно рождаются дубли

Откройте несколько URL из Search Console или логов сервера и сравните исходный HTML. Если меняется только параметр в адресе, а список записей тот же, это кандидат на canonical или noindex. Если же параметр реально меняет выдачу, например сортирует товары или статьи, нужно решать отдельно: что индексировать, а что нет.

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

Пошаговое решение

Вариант 1: закрыть параметры через noindex

Если параметр не нужен в поиске, но страницу нельзя отдавать с 404, добавьте noindex, follow для URL с конкретными GET-параметрами. Это безопаснее, чем пытаться запрещать обход через robots.txt, потому что поисковик всё равно может узнать URL из внешних ссылок.

<?php
add_filter('wp_robots', function ($robots) {
    if (is_tax() && !empty($_GET['sort'])) {
        $robots['noindex'] = true;
        $robots['follow'] = true;
    }

    if (is_tax() && !empty($_GET['filter'])) {
        $robots['noindex'] = true;
        $robots['follow'] = true;
    }

    return $robots;
});

Этот вариант подходит, если вы хотите оставить ссылки и переходы рабочими, но не плодить индексируемые копии.

Вариант 2: задать canonical на чистый архив

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

<?php
add_filter('get_canonical_url', function ($canonical, $post) {
    if (is_tax()) {
        $canonical = get_term_link(get_queried_object());
    }

    return $canonical;
}, 10, 2);

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

Вариант 3: убрать параметры на уровне генерации ссылок

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

<?php
$term_link = get_term_link($term);

if (!is_wp_error($term_link)) {
    echo '<a href="' . esc_url($term_link) . '">' . esc_html($term->name) . '</a>';
}

Это кажется очевидным, но на практике дубли часто появляются именно из-за шаблонов, где URL собирают вручную и забывают про очистку параметров.

Сравнение подходов

ПодходКогда использоватьМинус
noindexПараметр нужен пользователю, но не нужен в поискеСтраница остаётся доступной для обхода
canonicalПараметр не меняет смысл страницыНеправильный canonical может запутать поисковик
Удаление параметра из ссылокПараметр создаёт мусор на уровне темы или плагинаНужно править код и тестировать шаблоны

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

После правок не ограничивайтесь просмотром исходника. Проверьте несколько вещей:

  • в HTML страницы есть noindex или корректный canonical;
  • URL с параметром не попадает в индекс как отдельная страница;
  • основной архив таксономии остаётся доступным и индексируемым;
  • в Search Console уменьшается число страниц с параметрами в отчётах;
  • внутренние ссылки ведут на чистые URL без лишних query string.

Для быстрой проверки откройте страницу через view-source: или используйте curl и посмотрите мета-теги:

curl -I https://example.com/category/news/?sort=popular

Если у вас настроен SEO-плагин, проверьте, не перетирает ли он ваши правила. Часто проблема в том, что код темы добавляет canonical, а плагин SEO — свой, и в итоге в HTML остаётся только один, но не тот, который вы ожидали.

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

Закрывают всё через robots.txt

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

Ставят canonical на главную вместо чистого архива

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

Закрывают пагинацию без проверки

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

Дублируют правила в теме и SEO-плагине

Если одно и то же правило задано в нескольких местах, потом сложно понять, кто именно его ломает. Выберите один источник правды: либо код темы, либо SEO-плагин, либо mu-plugin.

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

Если вы правите это кодом, не вносите изменения прямо в родительскую тему. Используйте дочернюю тему или небольшой mu-plugin, чтобы обновления не затёрли правки. Для условий с $_GET не сравнивайте значения без проверки наличия параметра и без нормализации.

Ещё один полезный момент: чем меньше мусорных URL вы генерируете, тем меньше лишних обходов ботами и тем чище отчёты в аналитике. Если у вас много архивов и фильтров, имеет смысл дополнительно проверить, не создаёт ли тема лишние параметры в ссылках на термины, а SEO-логика не конфликтует ли с кешированием.

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

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

×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше