wpupdate.ru wordpress WP Update

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

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

Если закрывать это «на глаз», легко переборщить: убрать из индекса нужные страницы или, наоборот, оставить открытыми десятки тысяч комбинаций. Ниже — рабочий порядок действий для WordPress: сначала диагностика, потом выбор способа закрытия, затем проверка результата.

Какие страницы обычно нужно закрывать

Не все технические URL одинаковы. Для начала разделите их на три группы:

  • внутренний поиск — страницы вида /?s=запрос;
  • фильтры и сортировки — URL с параметрами вроде ?color=red, ?orderby=price, ?filter_...;
  • служебные архивы — страницы, которые не несут самостоятельной ценности и дублируют основной контент.

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

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

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

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

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

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

Пошаговое решение без лишней магии

Надёжнее всего комбинировать два уровня: мета-robots noindex для страниц, которые должны открываться пользователю, и канонический URL там, где есть явный дубль. Для внутренних поисковых страниц обычно достаточно noindex, follow. Для фильтров — зависит от того, создают ли они уникальную ценность.

Вариант 1. Закрыть поиск через wp_robots

Если нужно закрыть именно страницы поиска, можно добавить правило в тему или мини-плагин. Хук wp_robots есть в WordPress, он позволяет изменить robots-мета без правки шаблонов.

<?php
add_filter( 'wp_robots', function( array $robots ) {
    if ( is_search() ) {
        $robots['noindex'] = true;
        $robots['follow']   = true;
    }

    return $robots;
} );

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

Вариант 2. Закрыть URL с параметрами через wp_robots

Если фильтры живут на обычных страницах и используют query string, можно отлавливать параметры вручную. Это полезно, когда фильтр создаёт много комбинаций, но вы не хотите закрывать весь раздел целиком.

<?php
add_filter( 'wp_robots', function( array $robots ) {
    $params = array( 'orderby', 'price_min', 'price_max', 'color', 'size' );

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

    return $robots;
} );

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

Вариант 3. Добавить canonical на фильтрованные страницы

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

<?php
add_filter( 'get_canonical_url', function( $canonical, $post ) {
    if ( is_search() ) {
        return home_url( '/' );
    }

    return $canonical;
}, 10, 2 );

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

Когда лучше использовать плагин, а когда код

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

ПодходКогда подходитМинус
SEO-плагинПоиск, базовые архивы, простые noindex-настройкиНе всегда видит кастомные параметры фильтров
Код в теме или мини-плагинеНестандартные query string, сложные фильтры, точечные правилаНужно тестировать после обновлений темы и плагинов
КомбинацияКогда часть URL закрывается плагином, а часть — кастомным кодомРиск дублирующих правил, если не следить за логикой

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

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

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

Чек-лист проверки

  • откройте страницу поиска и убедитесь, что в HTML есть noindex;
  • проверьте, что страница не отдаёт ошибку и доступна пользователю;
  • посмотрите, не сломались ли ссылки на фильтры и сортировки;
  • сравните canonical на основной странице и на фильтрованной версии;
  • проверьте, не закрыли ли вы случайно нужные страницы с уникальным контентом;
  • после переобхода убедитесь, что URL больше не растут в индексе.

Для быстрой технической проверки можно посмотреть заголовки и HTML через curl:

curl -I "https://example.com/?s=test"

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

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

Закрывают страницу через robots.txt, а не через noindex

Это частая ошибка. Если URL уже попал в индекс, запрет в robots.txt не гарантирует его удаление. Для страниц, которые должны открываться, но не индексироваться, нужен именно noindex.

Ставят noindex на весь раздел

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

Не учитывают SEO-плагин

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

Закрывают фильтры, которые дают трафик

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

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

Если фильтров много, не строите логику на тяжёлых запросах к базе при каждом открытии страницы. Проверка $_GET и условий WordPress обычно дешевле, чем сложная обработка на каждом хите. Для больших проектов полезно вынести правила в отдельный мини-плагин, а не держать их в functions.php: так проще отключать и тестировать изменения.

Ещё один момент — не забывайте про кеш. После добавления noindex или изменения canonical очистите страницу и, если нужно, объектный кеш. Иначе вы будете проверять старую версию HTML и решите, что правило не работает.

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

×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее