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

Страницы внутреннего поиска в WordPress часто создают мусорный индекс: пустые выдачи, дубли запросов, бесконечные комбинации параметров и URL, которые не нужны ни пользователю, ни поисковику. Если сайт активно растёт, такие страницы быстро начинают засорять отчёты в Search Console и отъедать краулинговый бюджет.

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

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

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

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

Если у вас уже есть статья про закрытие поискового фильтра, это другая задача. Здесь речь именно о стандартном внутреннем поиске WordPress и его вариантах в теме или плагине.

Диагностика: какие URL нужно закрывать

Сначала проверьте, как именно у вас формируется поиск. В WordPress это может быть обычный параметр s, а может быть отдельный шаблон страницы поиска в теме. Откройте несколько вариантов и посмотрите исходный HTML.

Что искать в коде страницы

  • наличие <meta name="robots";
  • канонический URL в <link rel="canonical";
  • адреса вида ?s= или /search/;
  • нет ли редиректа на главную или на пустую страницу без объяснимой причины.

Если поиск уже индексируется, в Search Console обычно видно URL с параметром s или отдельные страницы поиска в отчёте по индексированию. Это удобная точка проверки до и после правок.

Что выбрать: robots.txt, meta robots или заголовок X-Robots-Tag

Для закрытия от индексации есть несколько подходов. Они не равнозначны, и путать их не стоит.

СпособКогда подходитМинус
meta robots noindexЕсли нужно закрыть конкретный шаблон страницы поискаТребует, чтобы страница всё же открывалась и отдавалась поисковику
X-Robots-TagЕсли удобнее управлять заголовком на уровне сервера или PHPНужно аккуратно настроить, чтобы не задеть лишние URL
robots.txt DisallowЕсли надо ограничить обходНе гарантирует исключение из индекса, если URL уже известен

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

Пошаговое решение через functions.php

Если тема выводит стандартный шаблон поиска, можно добавить noindex через фильтр wp_robots. Это современный и понятный способ для WordPress 5.7+.

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

    return $robots;
} );

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

Если тема не поддерживает wp_robots

На старых проектах или в сильно кастомных темах может не быть нормальной поддержки wp_robots. Тогда можно вывести мета-тег через wp_head только для поиска:

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

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

Как закрыть поиск через заголовок X-Robots-Tag

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

<?php
add_action( 'template_redirect', function() {
    if ( is_search() && ! headers_sent() ) {
        header( 'X-Robots-Tag: noindex, nofollow', true );
    }
} );

Проверять такой вариант нужно через заголовки ответа, а не только через исходный код страницы. В браузере это видно в DevTools на вкладке Network, либо через curl -I.

Что делать с robots.txt

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

User-agent: *
Disallow: /?s=
Disallow: /search/

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

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

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

  • Откройте страницу поиска с тестовым запросом.
  • Проверьте исходный код: есть ли noindex в meta robots или в wp_robots.
  • Проверьте заголовки ответа через curl -I https://site.ru/?s=test.
  • Убедитесь, что страница не редиректит на главную без причины.
  • В Search Console отправьте URL на повторную проверку, если он уже был в индексе.

Пример проверки заголовков:

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

В ответе должен быть либо X-Robots-Tag: noindex, nofollow, либо в HTML должен присутствовать корректный meta robots. Если ничего нет, значит правило не сработало или его перехватывает другой плагин.

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

Ставят только Disallow в robots.txt

Это самая частая ошибка. Адрес перестаёт обходиться, но не обязательно исчезает из индекса. Для удаления из выдачи нужен именно noindex или корректный редирект/удаление страницы, если она больше не нужна.

Конфликт с SEO-плагином

Если у вас уже стоит Yoast SEO, Rank Math или другой SEO-плагин, он может сам управлять robots на страницах поиска. В этом случае не добавляйте второй независимый источник правил без проверки. Иначе получите либо дубли тегов, либо неожиданный canonical.

Закрывают не тот шаблон

Иногда разработчик добавляет правило только для is_search(), а поиск на сайте реализован отдельной страницей или кастомным роутом. Тогда правило не срабатывает. Сначала проверьте, какой именно шаблон отдается на URL поиска.

Удаляют поиск целиком

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

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

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

  • ограничить длину поискового запроса на уровне темы или плагина;
  • не индексировать страницы с пустым запросом;
  • проверить, не генерирует ли форма поиска бесконечные параметры;
  • смотреть, не создаёт ли внешний поиск редиректные цепочки.

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

Как понять, что решение сработало

Через несколько дней после внедрения проверьте три вещи: страница поиска отдаёт noindex, в Search Console уменьшается число URL этого типа в отчётах, а в логах не видно массового обхода бессмысленных поисковых адресов. Если страница всё ещё попадает в индекс, значит либо правило не применяется, либо поисковик ещё не переобходил URL.

В спорных случаях лучше не добавлять ещё один слой запретов, а сначала посмотреть, какой именно ответ получает бот: HTML, редирект, 404 или 200 с пустым шаблоном. Именно это обычно объясняет, почему страница поиска продолжает жить в индексе, несмотря на правки.

Как закрыть от индексации страницы поискового фильтра в WordPress
13.08.2026
Как закрыть дубли архивов авторов и дат в WordPress
20.08.2026
Как отключить XML-RPC в WordPress без поломки приложений и плагинов
17.08.2026
Как закрыть от индексации страницы поиска по сайту в WordPress
23.08.2026
×

AI-плагин

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

SEO и мета-теги

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

Изображения

Комментарии

Подробнее