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

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

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

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

Сначала проверьте, что именно индексируется. У WordPress стандартный поиск обычно живёт по адресу вида /?s=запрос. Если сайт использует красивый URL через тему или плагин, логика та же: поисковые результаты не должны попадать в индекс как отдельные посадочные страницы.

Признаки, что поиск уже создаёт дубли

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

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

Что именно нужно закрыть от индексации

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

ПодходЧто делаетМинус
SEO-плагинДобавляет noindex и иногда убирает поиск из sitemapЗависит от настроек и версии плагина
Код в теме/плагинеДаёт точный контроль над noindex, canonical и редиректамиНужно аккуратно тестировать после обновлений
robots.txtОграничивает обходНе гарантирует удаление уже известных URL из индекса

Если цель — именно убрать страницы поиска из индекса, ставить ставку только на robots.txt не стоит. Поисковик может знать URL и без обхода страницы.

Пошаговое решение без лишних плагинов

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

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

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

Первый блок полезен для старых тем и случаев, когда тема не выводит стандартные robots-правила. Второй — более современный способ для WordPress, который использует фильтр wp_robots.

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

Если нужен редирект для пустого поиска

<?php
add_action('template_redirect', function () {
    if (is_search() && !get_query_var('s')) {
        wp_safe_redirect(home_url('/'), 302);
        exit;
    }
});

Этот вариант стоит применять только если пустой поиск реально бесполезен. На сайтах с каталогом или большим архивом контента лучше не ломать стандартное поведение без необходимости.

Как убрать поиск из sitemap и внутренних дублей

Даже если страница поиска закрыта через noindex, она может продолжать попадать в sitemap через сторонний плагин или кастомную генерацию карты сайта. Это уже отдельная задача.

Проверьте:

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

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

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

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

  1. Откройте страницу поиска, например /?s=test.
  2. Посмотрите исходный код и убедитесь, что есть noindex,follow.
  3. Проверьте заголовки ответа, если у вас есть серверный X-Robots-Tag или редиректы.
  4. В Search Console отправьте проверку URL и посмотрите, как Google видит страницу.
  5. Через несколько дней проверьте отчёт по индексированию и исключённым страницам.

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

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

Если вы используете только мета-тег, в заголовках его не будет видно, поэтому дополнительно откройте HTML страницы и найдите строку с robots. Если применяли редирект для пустого поиска, убедитесь, что он не зацикливается и не отправляет пользователя на 301 без причины.

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

Ставят запрет только в robots.txt

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

Закрывают поиск, но оставляют его в sitemap

В результате поисковик продолжает видеть URL как важные. Уберите их из карты сайта на уровне генератора, а не только через robots.

Делают 301 на главную для всех поисковых запросов

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

Добавляют noindex в шаблон, но тема потом перезаписывает head

Такое бывает в кастомных темах и при нескольких SEO-решениях одновременно. Проверьте, нет ли второго вывода robots-мета через плагин, который конфликтует с кодом.

Оставляют дубли с параметрами сортировки

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

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

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

Не ставьте несколько SEO-плагинов одновременно ради одной задачи. Два источника robots-правил часто дают неожиданный результат: один плагин ставит noindex, другой — каноникал на главную, третий — добавляет URL в sitemap. В итоге отладка занимает больше времени, чем сама настройка.

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

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

Оптимизация базы данных WordPress для ускорения сайта
03.11.2025
Как защитить WordPress от bruteforce атак: эффективные методы и примеры
19.01.2026
Как отключить и удалить Gutenberg в WordPress без оставшегося кода
21.02.2026
Как удалить из поиска и индексации страницы авторизации и регистрации в WordPress
15.08.2026
Оптимизация изображений в WordPress: как ускорить сайт и улучшить SEO
02.12.2025
×

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

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

пишет статьи

готовит SEO

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

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