WPUrok

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

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

Задача решается не одним способом, а комбинацией мер: запрет индексации через robots.txt здесь не всегда достаточен, а надёжнее управлять индексацией на уровне HTML-страницы и, при необходимости, дополнительно ограничивать обход. Ниже — рабочие варианты именно для WordPress.

Что именно нужно закрывать

В WordPress страницы результатов поиска обычно имеют вид https://site.ru/?s=запрос. Иногда тема или плагин формируют более «красивые» адреса, но суть та же: это страницы с результатами внутреннего поиска, а не отдельные материалы сайта.

Их обычно закрывают от индексации по трём причинам:

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

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

Самый надёжный способ: добавить meta robots noindex на страницы поиска

Для WordPress это основной и самый безопасный вариант. На странице результатов поиска нужно выводить мета-тег noindex. Тогда поисковик может зайти на страницу, увидеть запрет на индексацию и не добавлять её в выдачу.

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

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

Здесь важно именно условие is_search(): оно срабатывает только на страницах результатов поиска. Значение noindex,follow говорит поисковику не индексировать страницу, но при этом не запрещает переходить по ссылкам на ней. Для обычного сайта это обычно разумный вариант.

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

Когда лучше использовать SEO-плагин, а не код

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

Этот вариант особенно полезен, если:

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

Плюс такого подхода в том, что настройка обычно сохраняется при смене темы. Минус — нужно следить, чтобы не было двух одновременно работающих правил: например, одно в плагине, другое в коде темы.

Почему одного robots.txt недостаточно

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

Кроме того, robots.txt не сообщает поисковой системе, что страницу нужно исключить из индекса. Он только ограничивает обход. Поэтому для результата поиска правильнее использовать noindex, а robots.txt — только как дополнительную меру, если у вас действительно есть техническая необходимость сократить обход.

Если всё же хотите ограничить обход, делайте это аккуратно и только после проверки, что это не мешает внутренним сценариям сайта. На обычном WordPress-сайте чаще всего достаточно noindex на самих страницах поиска.

Что делать, если поисковые страницы уже попали в индекс

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

Чтобы ускорить процесс, сделайте следующее:

  1. Проверьте, что на странице поиска действительно появился <meta name="robots" content="noindex,follow">.
  2. Убедитесь, что страница не закрыта ошибочно для обычных материалов сайта.
  3. Если используете Google Search Console или аналогичный инструмент, отправьте страницу на повторную проверку.

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

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

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

Откройте на сайте любой поиск, например ?s=тест, и посмотрите исходный код страницы. В секции <head> должен быть мета-тег robots с noindex. Если его нет, значит условие не сработало или код добавлен не туда.

Дополнительно проверьте, что:

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

Если у вас установлен SEO-плагин, сравните его настройки с кодом темы. Часто проблема не в WordPress, а в том, что одно правило перекрывает другое.

Чего не стоит делать

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

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

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

Практический вариант для большинства сайтов

Если нужен короткий и надёжный ответ, то для WordPress обычно достаточно одного действия: добавить на страницы поиска noindex,follow. Это можно сделать через SEO-плагин или через код в wp_head с проверкой is_search(). Такой подход не мешает пользователям пользоваться поиском, но убирает бесполезные страницы результатов из индекса.

Если после этого в индексе остаются старые URL, это вопрос времени и повторного обхода. Главное — чтобы новые страницы поиска больше не попадали в выдачу.

×
Halloween Game

Сыграй в игру, спаси сайт! Забери приз

Играть