Как закрыть от индексации страницы поиска WordPress с параметром s

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

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

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

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

Типичные признаки

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

Диагностика: что именно индексируется

Сначала проверьте, как WordPress отдаёт страницу поиска. Откройте несколько URL вручную:

  • https://site.ru/?s=тест;
  • https://site.ru/?s=;
  • https://site.ru/?s=случайный+запрос.

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

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

Как закрыть поиск от индексации: рабочие варианты

Есть несколько подходов. Самый надёжный — отдать для страниц поиска мета-тег noindex, follow. Это позволяет роботам не добавлять страницу в индекс, но не ломает переходы по ссылкам внутри сайта.

СпособКогда подходитМинус
SEO-плагинЕсли уже используется Yoast, Rank Math или аналогЗависимость от настроек и шаблонов плагина
Код в теме или mu-pluginЕсли нужен точечный контроль без лишних модулейНужно следить за обновлениями и тестировать вручную
robots.txtКак дополнительная мераНе гарантирует удаление уже известных URL из индекса

Вариант 1. Добавить noindex через код

Если не хотите завязываться на плагин, можно добавить фильтр в functions.php дочерней темы или в небольшой mu-plugin. Для классической темы это выглядит так:

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

    return $robots;
} );

Этот вариант работает на современных версиях WordPress, где используется фильтр wp_robots. Он не вмешивается в шаблон напрямую и не требует правки header.php.

Вариант 2. Если нужен старый формат meta robots

На проектах с устаревшими темами иногда проще явно вывести тег в <head>. Это менее гибко, но предсказуемо:

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

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

Вариант 3. Дополнить robots.txt

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

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

На практике это полезно как дополнительный барьер, но не как единственная мера.

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

  1. Определите, какие URL поиска реально существуют на сайте и попадают в индекс.
  2. Добавьте noindex, follow для всех страниц поиска.
  3. Проверьте, не конфликтует ли это с SEO-плагином.
  4. При необходимости добавьте правило в robots.txt.
  5. Перепроверьте шаблон поиска: он не должен создавать пустые или почти пустые страницы с большим количеством служебного текста.

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

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

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

<meta name="robots" content="noindex,follow" />

Дальше проверьте несколько сценариев:

  • страница поиска открывается для пользователя и показывает результаты;
  • в исходнике нет index, follow вместо noindex;
  • в Search Console URL с ?s= постепенно уходят из индекса или получают статус, соответствующий запрету на индексацию;
  • внутренние ссылки по сайту продолжают работать как раньше.

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

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

Закрыли поиск в robots.txt и на этом остановились

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

Поставили noindex только на одну страницу поиска

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

Сломали шаблон поиска

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

Получили дубли robots meta

Так бывает, когда код добавили вручную, а SEO-плагин уже выводит свой robots-тег. Оставьте один источник управления. Если плагин умеет настраивать индексацию поиска, используйте его; если нет — отключите его вывод для этой страницы и оставьте код.

Что ещё стоит проверить рядом с поиском

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

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

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

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как запретить индексацию страниц фильтров в WordPress
09.09.2026
Как сделать автоматическое открытие попап окна в WordPress при загрузке страницы
06.01.2026
Как использовать REST API WordPress для создания простых приложений
10.11.2025
Как настроить безопасность WordPress с помощью плагинов
18.11.2025
Как изменить роль пользователя WordPress через код: практические примеры и советы
12.12.2025
×
Прокачай свой сайт WordPress!

WordPress

-20% на премиум темы и плагины

Создай сайт своей мечты ⋙