Внутренний поиск WordPress часто оставляет в индексе мусорные URL вида ?s=, /search/ или страницы с пустыми и слишком общими запросами. Проблема не в самом поиске, а в том, что поисковые системы начинают считать такие страницы отдельными документами. В итоге в выдаче появляются дубли, а краулинговый бюджет уходит на бесполезные адреса.
Если задача именно техническая — закрыть страницы поиска от индексации, но не ломать сам поиск для пользователей, — лучше решать её в два слоя: отдать поисковым страницам noindex и одновременно не провоцировать их массовое сканирование через внутренние ссылки и sitemap.
Как понять, что проблема именно в поисковых страницах
Сначала проверьте, действительно ли индексируются URL поиска. В Google Search Console это видно по отчету «Страницы» или через поиск по сайту в поисковике. Типичные признаки:
- в индексе есть URL с параметром
?s=; - поисковик показывает пустые или почти пустые результаты поиска;
- в логах сервера заметны частые обходы URL поиска роботами;
- страницы поиска получают заголовки, метаописания и каноникалы как обычные страницы, хотя контент на них нестабилен.
Что именно нужно закрывать
В WordPress поиск может быть реализован по-разному. Чаще всего встречаются:
?s=запрос— стандартный поиск WordPress;- кастомные URL поиска, которые генерирует тема или плагин;
- страницы результатов поиска по таксономиям или типам записей, если они построены поверх обычного поиска.
Если у вас есть только стандартный поиск, достаточно обработать шаблон search.php и добавить корректные мета-теги. Если поиск кастомный, нужно смотреть, какой шаблон или endpoint отвечает за выдачу.
Пошаговое решение: noindex для страниц поиска
Самый надежный путь — добавить noindex, follow на поисковые страницы. Это оставляет роботам возможность переходить по ссылкам, но запрещает индексировать саму страницу поиска.
Вариант через functions.php или мини-плагин
Если тема позволяет, добавьте код в дочернюю тему или в собственный плагин. Так решение не потеряется после обновления темы.
<?php
add_action('wp_head', function () {
if (is_search()) {
echo '<meta name="robots" content="noindex,follow" />' . "\n";
}
});
Этот вариант работает для стандартного фронтенда WordPress. Но если у вас SEO-плагин уже управляет robots meta, лучше не дублировать теги. В таком случае корректнее использовать фильтр самого плагина или его настройки.
Если используется SEO-плагин
Во многих SEO-плагинах есть отдельная настройка для search pages. Смысл один: поисковые страницы должны получать noindex, а не закрываться полностью от обхода без необходимости. Если плагин умеет задавать robots meta на уровне шаблонов, используйте его, а не хардкод в теме.
Практически это удобнее, потому что:
- не нужно править шаблоны вручную;
- настройка переживает смену темы;
- проще проверить результат в одном месте.
Как убрать поисковые страницы из robots.txt и sitemap
noindex сам по себе не решает вопрос полностью, если поисковые URL активно попадают в sitemap или внутренние ссылки. Их лучше не добавлять туда вовсе.
robots.txt: когда это уместно
Закрывать поиск в robots.txt имеет смысл только если вы точно понимаете, что делаете. Для стандартного WordPress можно запретить обход поисковых URL, но это не заменяет noindex. Если робот не сможет зайти на страницу, он может не увидеть мета-тег и дольше держать URL в индексе.
Поэтому безопаснее использовать связку:
noindex,followна страницах поиска;- не включать поисковые URL в sitemap;
- по возможности не ссылаться на пустые поисковые страницы из шаблонов и виджетов.
Если sitemap генерирует SEO-плагин
Проверьте, не попадают ли поисковые URL в карту сайта через кастомные правила. В нормальной конфигурации страницы поиска там быть не должны. Если они всё же есть, ищите:
- кастомные типы записей или таксономии, которые ошибочно индексируются как search;
- ручные добавления через фильтры sitemap;
- ошибки в шаблонах, где search URL генерируются как обычные ссылки.
Сравнение подходов: код, плагин, ручная настройка
| Подход | Когда подходит | Плюсы | Минусы |
|---|---|---|---|
| Код в теме/плагине | Нужен точечный контроль | Быстро, прозрачно, без лишних зависимостей | Нужно следить за темой и SEO-логикой |
| SEO-плагин | Уже используется в проекте | Удобно, меньше ручной поддержки | Иногда настройки спрятаны глубоко |
| robots.txt без noindex | Только как дополнительная мера | Просто внедрить | Не гарантирует исключение из индекса |
Проверка результата после внедрения
После изменений не ограничивайтесь визуальной проверкой страницы. Нужно убедиться, что поисковик видит именно то, что вы хотели.
- Откройте страницу поиска с запросом, например
?s=test. - Посмотрите исходный код страницы и найдите
<meta name="robots" content="noindex,follow" />. - Проверьте заголовки ответа сервера: страница должна открываться нормально, без редиректов на главную.
- В Search Console отправьте URL на проверку и посмотрите, как робот интерпретирует robots meta.
- Через несколько дней проверьте, уменьшается ли количество поисковых URL в отчете по индексированию.
Если у вас есть доступ к серверным логам, полезно посмотреть, не продолжают ли роботы массово ходить по поисковым страницам. Это покажет, достаточно ли одного noindex или нужно дополнительно чистить внутренние ссылки.
Частые ошибки и как их исправить
Закрыли страницу через robots.txt и забыли про noindex
Это частая ошибка. Если робот не может зайти на страницу, он может не увидеть мета-тег и не убрать URL из индекса быстро. Исправление простое: оставьте noindex на странице и не полагайтесь только на Disallow.
Добавили noindex в шаблон, но SEO-плагин перезаписывает тег
Так бывает, когда тема и SEO-плагин оба управляют robots meta. В результате в коде может оказаться два тега или более приоритетный плагин заменит ваш вариант. Решение — оставить только один источник правды: либо настройка плагина, либо собственный код.
Поисковые URL остались в sitemap
Это означает, что где-то есть кастомная генерация ссылок или неверная настройка карты сайта. Проверьте шаблоны, фильтры sitemap и плагины, которые добавляют нестандартные архивы.
Закрыли поиск, но сломали внутренний поиск для пользователей
noindex не мешает пользователю искать по сайту. Проблема обычно возникает, когда вместе с ним отключают обработку URL, редиректят все поисковые запросы на главную или блокируют параметры на уровне сервера. Не делайте этого без необходимости.
Практические советы по безопасности и производительности
Если поиском злоупотребляют боты, можно дополнительно ограничить мусорные запросы на уровне приложения. Но не стоит сразу резать всё подряд: сначала посмотрите логи и убедитесь, что это действительно проблема.
- Ограничьте слишком длинные или пустые поисковые запросы на уровне шаблона.
- Не генерируйте ссылки на пустой поиск в меню и виджетах.
- Если сайт большой, следите за тем, чтобы поиск не создавал тяжелые запросы к базе.
- Не закрывайте полезные страницы с результатами поиска, если они реально приносят трафик и имеют уникальную ценность.
Для проектов, где нужно регулярно чистить дубли, служебные архивы и лишние технические страницы, удобно держать под рукой инструменты вроде Clearfy Pro, но использовать их стоит как средство контроля, а не как замену понимания того, что именно индексируется и почему.
Если после внедрения noindex поисковые URL всё равно остаются в индексе, не спешите менять всё сразу. Сначала проверьте исходный код, sitemap, внутренние ссылки и отчеты Search Console. Обычно проблема находится в одном из этих мест, а не в самом мета-теге.