wordpressa.ru wordpress wordpressa.ru

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

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

Когда это проблема, а когда нет

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

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

Диагностика: как понять, что в индекс попали именно поисковые страницы

Проверка начинается не с кода, а с фактов. Сначала посмотрите, как выглядят URL поиска в индексе и в логах.

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

Если нужно быстро проверить конкретную страницу, откройте результат поиска и посмотрите исходный код. В идеале там должен быть тег robots с noindex и follow, либо страница должна отдавать заголовок X-Robots-Tag на уровне ответа сервера.

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

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

СпособПлюсыМинусы
SEO-плагинБыстро, без правки кода, удобно для редактораЗависит от конкретного плагина и его настроек
Код в теме/плагинеКонтроль, минимум зависимостейНужно следить за обновлениями и местом размещения
X-Robots-TagРаботает на уровне ответа, не зависит от шаблонаНе всегда удобно настраивать на общем хостинге

Вариант 1: добавить noindex через фильтр WordPress

Если тема или SEO-плагин не закрывают поиск автоматически, можно добавить мета-тег в <head>. Ниже пример для дочерней темы или небольшого mu-plugin:

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

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

Вариант 2: задать X-Robots-Tag для поисковых страниц

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

<?php
add_action( 'template_redirect', function () {
    if ( is_search() && ! headers_sent() ) {
        header( 'X-Robots-Tag: noindex, follow', true );
    }
} );

Здесь важно не ставить заголовок слишком поздно. Если до этого уже был вывод в браузер, header() не сработает. Поэтому код должен выполняться до начала HTML-вывода.

Вариант 3: использовать настройки SEO-плагина

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

Если вы используете Clearfy Pro, имеет смысл проверить блоки, связанные с технической чисткой сайта и дублями, но не полагаться на абстрактные «SEO-улучшения» без проверки исходного кода страницы. Смысл не в названии функции, а в том, что на странице поиска должен появиться реальный noindex.

Пошаговая схема внедрения

  1. Откройте несколько поисковых URL с разными запросами.
  2. Проверьте, есть ли у них мета-тег robots или заголовок X-Robots-Tag.
  3. Выберите один способ закрытия, а не несколько одновременно.
  4. Внесите правку в дочернюю тему, mu-plugin или настройки SEO-плагина.
  5. Очистите кэш страницы, объекта и CDN, если он есть.
  6. Переобойдите URL в инструменте проверки страниц поисковой системы.

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

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

curl -I "https://example.com/?s=тест"

В ответе должен быть заголовок вида X-Robots-Tag: noindex, follow, если вы выбрали серверный вариант. Для мета-тега проверьте HTML-исходник, а не отрендеренную страницу в браузере: некоторые расширения и кэш могут вводить в заблуждение.

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

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

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

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

Поставили noindex и одновременно запретили сканирование

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

Добавили код в родительскую тему

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

Не очистили кэш

Если на сайте стоит page cache или CDN, старый HTML может продолжать отдавать страницу без noindex. После внедрения правки очистите все уровни кэша и проверьте ответ повторно.

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

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

Если вы правите кодом, не вставляйте его в произвольный файл темы. Лучше использовать небольшой mu-plugin: так изменение не потеряется при обновлении и его проще отключить при отладке. Для сайтов с несколькими ролями доступа это ещё и удобнее с точки зрения контроля изменений.

<?php
/*
Plugin Name: Search Noindex Helper
*/
add_action( 'template_redirect', function () {
    if ( is_search() && ! headers_sent() ) {
        header( 'X-Robots-Tag: noindex, follow', true );
    }
} );

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

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

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

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

×

AI-плагин

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

SEO и мета-теги

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

Изображения

Комментарии

Подробнее