wpskill.ru wordpress wpskill.ru

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

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

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

Когда страница поиска становится проблемой

В WordPress поиск обычно работает через параметр s. Пользователь вводит запрос, а сайт отдаёт страницу с результатами. Для человека это полезно, для поискового робота — чаще всего нет. Проблема возникает в нескольких сценариях:

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

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

Диагностика: что именно уже попало в индекс

Сначала проверьте, есть ли проблема вообще. Не стоит закрывать всё подряд только потому, что «так советуют». Смотрите на реальные URL в индексе и на поведение поисковиков.

Что проверить вручную

  • введите в Google запрос site:example.com inurl:?s=;
  • посмотрите, есть ли в индексе страницы с пустым поиском или странными запросами;
  • откройте несколько таких URL и проверьте, не возвращают ли они нормальный HTML с индексируемым контентом;
  • сравните заголовок страницы поиска и мета-описание: если там шаблонный текст, это ещё один аргумент в пользу закрытия.

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

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

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

СпособКогда подходитПлюсыМинусы
SEO-плагинЕсли уже используется Yoast, Rank Math или похожий плагинБыстро, без правки темыЗависит от конкретного плагина и его настроек
КодЕсли нужен точечный контрольПредсказуемо, не зависит от интерфейса плагинаНужно аккуратно тестировать после обновлений
КомбинацияЕсли нужно и noindex, и защита от пустых запросовЗакрывает проблему на нескольких уровняхЕсть риск задвоить логику, если не следить за настройками

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

Если на сайте уже стоит SEO-плагин, начните с него. Во многих случаях достаточно добавить noindex, follow для страниц поиска или архивов с параметром s. Конкретная настройка зависит от плагина, но логика одна: поисковая система не должна индексировать результаты поиска, при этом переходы по ссылкам внутри страницы можно оставить доступными.

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

Вариант 2. Добавить noindex кодом

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

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

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

Вариант 3. Не отдавать индексируемую страницу для пустого поиска

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

Осторожно: не надо бездумно редиректить все поисковые запросы. Это сломает внутренний поиск. Речь именно о пустом запросе или о технически бесполезных URL.

<?php
add_action('template_redirect', function () {
    if (is_search() && isset($_GET['s']) && trim((string) $_GET['s']) === '') {
        wp_safe_redirect(home_url('/'), 302);
        exit;
    }
});

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

Пошаговая настройка без лишнего риска

  1. Проверьте, есть ли в индексе URL поиска с ?s=.
  2. Определите, кто управляет мета-тегами на сайте: SEO-плагин или тема.
  3. Если SEO-плагин уже есть, сначала настройте noindex там.
  4. Если плагина нет или он не закрывает поиск, добавьте код в дочернюю тему или в небольшой mu-plugin.
  5. При необходимости отдельно обработайте пустой запрос, чтобы не плодить мусорные страницы.
  6. После изменений проверьте HTML страницы поиска и статус индексации в Search Console.

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

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

  • Откройте страницу поиска и посмотрите исходный код: должен быть <meta name="robots" content="noindex,follow" /> или эквивалент от SEO-плагина.
  • Проверьте ответ сервера для URL поиска: он не должен отдавать случайный редирект на все запросы.
  • В Search Console отправьте URL на проверку и посмотрите, как робот видит страницу.
  • Через несколько дней повторно проверьте выдачу по запросу site:example.com inurl:?s=.
  • Если вы закрывали только пустой поиск, убедитесь, что нормальные запросы всё ещё работают для пользователей.

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

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

Закрыли поиск через robots.txt

Это распространённая ошибка. Запрет в robots.txt не убирает URL из индекса, если он уже туда попал. Более того, робот может не увидеть мета-тег noindex, если вы одновременно запретили обход. Для удаления из индекса нужен именно сигнал на самой странице или корректный HTTP-ответ.

Поставили noindex, но забыли про канонический URL

Если тема или плагин выводит канонический URL на главную или на другой архив, это может мешать диагностике. Проверьте, какой rel="canonical" отдаётся на странице поиска. Для поисковых страниц он не должен случайно указывать на нерелевантную страницу, если это ломает логику сайта.

Сделали редирект на все поисковые запросы

Такой редирект убивает сам поиск. Пользователь вводит запрос и вместо результатов попадает на главную. Если цель — убрать только мусорные URL, обрабатывайте пустой запрос отдельно, а не весь поиск целиком.

Оставили дубли от параметров

Иногда поиск комбинируется с другими параметрами, и в индекс попадают варианты с сортировкой, пагинацией или UTM. В этом случае одной настройки для is_search() может быть мало. Нужно смотреть на весь набор URL и закрывать именно те комбинации, которые реально создают мусор.

Безопасность и производительность

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

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

Когда не стоит закрывать поиск

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

Если сомневаетесь, начните с мягкого варианта: noindex,follow для страниц поиска и отдельная обработка пустого запроса. Это безопаснее, чем агрессивные редиректы и запреты на уровне сервера.

×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше