WPTips

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

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

Ниже разберём оба варианта без лишней теории: что именно меняется, какие способы реально работают в WordPress и как проверить результат после настройки.

Что именно создаёт WordPress

Встроенный поиск WordPress обычно работает через параметр s в URL. Например, запрос site.ru/?s=seo или адрес с красивыми постоянными ссылками, если тема и сервер их поддерживают. Для поисковой системы это отдельная страница, и если её не ограничить, она может попасть в индекс даже тогда, когда на ней нет полезного контента.

Проблема не в самом поиске как функции, а в том, что страницы результатов часто:

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

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

Если поиск на сайте не нужен: как отключить его полностью

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

На практике обычно достаточно двух шагов:

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

Если вы хотите именно отключить поиск, а не только убрать форму, можно использовать такой код в functions.php дочерней темы или в собственном плагине:

add_action('template_redirect', function () {
    if (is_search()) {
        wp_safe_redirect(home_url('/'), 301);
        exit;
    }
});

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

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

Если поиск нужен: закрываем результаты от индексации

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

Для WordPress обычно используют три уровня защиты, и лучше сочетать их, а не надеяться на один:

  • meta robots на страницах поиска: noindex,follow;
  • запрет в robots.txt для типовых URL поиска;
  • канонический URL или редиректы, если тема создаёт лишние варианты адресов.

1. Добавить noindex на страницы поиска

Самый правильный способ — вывести на страницах поиска мета-тег noindex,follow. Тогда поисковик не будет включать такие страницы в индекс, но сможет переходить по ссылкам на них. Для этого можно добавить код в тему:

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

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

2. Закрыть типовые поисковые URL в robots.txt

Это не заменяет noindex, но помогает сократить лишнее сканирование. Для классического поиска WordPress обычно достаточно запретить URL с параметром s=:

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

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

3. Убрать лишние варианты адресов поиска

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

Если вы не уверены, какие именно адреса создаёт ваш сайт, проверьте их вручную в браузере и через отчёт по страницам в Search Console. Смотрите не только на сам поиск, но и на варианты с пагинацией, пустыми запросами и спецсимволами в строке поиска.

Какой вариант выбрать в вашем случае

СценарийЧто делатьЧто получится
Поиск на сайте не нуженУбрать форму и перенаправлять поисковые запросыСтраницы поиска перестанут существовать как рабочий функционал
Поиск нужен, но в индекс он не должен попадатьОставить поиск, добавить noindex,follow и при необходимости ограничить в robots.txtПользователи смогут искать, поисковики не будут индексировать результаты
В индексе уже много мусорных URLСначала закрыть поиск, затем дождаться переобхода и при необходимости ускорить удаление через инструменты для вебмастеровПостепенное исчезновение дублей из выдачи

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

Как проверить, что всё работает

После настройки откройте несколько поисковых URL вручную и проверьте исходный код страницы. На странице поиска должен быть виден тег <meta name="robots" content="noindex,follow">, если вы выбрали этот вариант. Если вы настроили редирект, браузер должен уводить на нужный адрес с кодом 301.

Дальше проверьте три вещи:

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

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

Что чаще всего ломают при такой настройке

Самая частая ошибка — закрыть поиск только в robots.txt и считать задачу решённой. На практике это оставляет старые URL в индексе, если они уже были найдены раньше. Вторая ошибка — ставить редирект на главную без понимания, что поиск ещё нужен пользователям. Третья — добавлять noindex в одном плагине, а в другом получать конфликтующий robots-тег или каноникал на другую страницу.

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

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

Если свести всё к короткому правилу, то оно такое: поиск не нужен — отключайте его полностью; поиск нужен — оставляйте, но ставьте noindex,follow и не рассчитывайте только на robots.txt. Так вы уберёте мусорные URL без лишнего риска для сайта.

×

AI-плагин

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

SEO и мета-теги

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

Изображения

Комментарии

Подробнее