wp3.ru wordpress wp3.ru

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

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

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

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

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

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

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

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

Проверьте несколько вариантов URL вручную. В WordPress стандартный поиск обычно выглядит так:

https://example.com/?s=wordpress

Если у вас есть ЧПУ-поиск через тему или плагин, адрес может отличаться, но логика та же: страница выдачи поиска не должна попадать в индекс как отдельная посадочная.

Посмотрите исходный код страницы поиска и найдите мета-тег robots. Если там нет noindex, поисковик получает сигнал индексировать страницу. Ещё один важный момент — канонический URL: если он указывает на саму страницу поиска, это не помогает убрать её из индекса.

Что делать: рабочая схема

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

ПодходПлюсыМинусы
SEO-плагинБыстро, без правки темыЗависит от настроек плагина
Код в теме/плагинеКонтроль и предсказуемостьНужно аккуратно тестировать
robots.txtПросто закрыть обходНе гарантирует удаление из индекса

Вариант 1. Добавить noindex для страниц поиска

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

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

    return $robots;
} );

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

Вариант 2. Закрыть поиск через SEO-плагин

Если на сайте уже стоит SEO-плагин, посмотрите, умеет ли он задавать noindex для search results. Важно не просто убрать страницу из sitemap, а именно запретить индексацию самой выдачи поиска. Sitemap и robots — это разные задачи.

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

Вариант 3. Дополнительно ограничить обход в robots.txt

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

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

Такое правило помогает сократить обход, но не гарантирует, что уже известные URL исчезнут из индекса. Поэтому сначала ставьте noindex, а robots.txt используйте как дополнительный фильтр.

Пошаговое внедрение без поломок

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

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

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

Проверка должна быть не только визуальной. Смотрите на три уровня:

  • в исходном коде страницы поиска появился noindex;
  • в браузере страница поиска открывается как обычно и выдаёт результаты;
  • в Google Search Console URL страницы поиска не получают статус «Индексировано» после переобхода.

Для быстрой проверки откройте страницу поиска и найдите в HTML:

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

Если вместо этого видите только index,follow или вообще ничего, значит правило не применилось. Тогда проверьте, не перезаписывает ли robots-теги тема или SEO-плагин.

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

Закрыли поиск в robots.txt, но не поставили noindex

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

Сломали поиск для пользователей

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

Закрыли не только поиск, но и полезные фильтры

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

Оставили в индексе старые URL

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

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

Если на сайте много поисковых запросов, они могут создавать лишнюю нагрузку на базу и кэш. Это особенно заметно на больших сайтах с плохой структурой контента. В таком случае полезно:

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

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

Мини-чек-лист перед публикацией

  • Страница поиска отдаёт noindex,follow.
  • Поиск работает для посетителей.
  • В robots.txt нет конфликтующих правил.
  • В Search Console нет массового роста URL с ?s=.
  • Кастомные фильтры и сортировки не закрыты случайно.

Если нужен более централизованный контроль над технической индексацией и чисткой дублей, можно посмотреть на Clearfy Pro, но в любом случае сначала проверьте, как именно у вас устроены search URL и кто сейчас управляет robots-тегами.

×

Время действовать!

Суперцены на
WordPress!

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

Не упусти шанс ⋙