Поисковые страницы WordPress часто создают лишние URL: результаты внутреннего поиска, страницы с параметром ?s=, архивы с пустой выдачей, служебные фильтры и дубли с пагинацией. Если оставить их как есть, поисковик начинает тратить краулинговый бюджет на мусор, а в индексе появляются страницы без ценности для пользователя.
Но закрывать всё подряд тоже нельзя. Если в выдаче поиска есть полезные посадочные страницы, статьи или документы, их нужно оставить доступными для обхода и не ломать внутреннюю навигацию. Ниже — рабочая схема, как отделить полезные страницы от технического шума и не потерять трафик.
Какие страницы обычно стоит закрывать
Речь не о контентных страницах, а о технических URL, которые генерируются автоматически. В типичном WordPress это:
- страницы внутреннего поиска с параметром
?s=; - пустые результаты поиска;
- архивы таксономий без контента;
- страницы с сортировкой и фильтрами, если они не несут самостоятельной ценности;
- дубли пагинации, если они не нужны в индексе;
- служебные страницы, которые создают плагины и темы.
Если у вас есть отдельная логика для SEO-страниц поиска, например подборки по запросам пользователей, их нельзя закрывать автоматически без анализа. В таких случаях сначала смотрят логику формирования URL, а уже потом ставят noindex или каноникал.
Диагностика: где именно возникает проблема
Перед правками проверьте, какие URL уже попали в индекс и какие из них реально открываются. Для этого достаточно трех шагов.
Проверка в поиске и в исходном коде
Откройте проблемную страницу и посмотрите, есть ли в <head> мета-тег robots. Если его нет, страница может индексироваться по умолчанию. Также проверьте канонический URL: иногда страница закрыта не через noindex, а через rel="canonical".
<meta name="robots" content="noindex,follow">
<link rel="canonical" href="https://example.com/">Проверка через Search Console
В отчете по индексированию ищите URL с параметрами, пустые результаты поиска и страницы с низкой ценностью. Если поисковик уже видит их как дубли или страницы с исключением по noindex, это хороший сигнал: проблема не в самом закрытии, а в том, что правила применены непоследовательно.
Проверка на уровне шаблона
Если тема или плагин выводят поиск как обычную архивную страницу, нужно понять, где именно это происходит: в шаблоне search.php, в фильтрах wp_head или в SEO-плагине. Без этого легко закрыть не ту страницу и оставить открытым технический дубль.
Что лучше: плагин, код или каноникал
Для большинства сайтов есть три рабочих подхода. Выбор зависит от того, нужно ли вам закрыть только отдельные типы страниц или вы хотите управлять правилами точечно.
| Подход | Когда использовать | Плюсы | Минусы |
|---|---|---|---|
| SEO-плагин | Нужно быстро закрыть архивы, таксономии, поиск | Безопасно, без правки темы | Меньше гибкости, часть настроек зависит от плагина |
| Код в теме или плагине | Нужны точечные правила для конкретных URL | Полный контроль | Требует тестирования после обновлений |
| Canonical | Страница полезна пользователю, но есть дубль | Не режет обход полностью | Не всегда достаточно, если дубль уже активно индексируется |
Если нужен быстрый и предсказуемый вариант, обычно начинают с SEO-плагина. Если задача узкая и повторяется на нескольких типах страниц, лучше вынести правило в код.
Пошаговое решение через код
Ниже пример для дочерней темы или небольшого функционального плагина. Он закрывает внутренний поиск и некоторые архивные страницы от индексации, но не ломает обычную работу сайта.
<?php
add_action('wp_head', function () {
if (is_search() || is_tag() || is_date()) {
echo '<meta name="robots" content="noindex,follow" />' . PHP_EOL;
}
}, 1);
add_filter('wp_robots', function ($robots) {
if (is_search() || is_tag() || is_date()) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
});Этот вариант использует штатный фильтр wp_robots, который есть в современных версиях WordPress. Он предпочтительнее ручной печати meta-тега, потому что не конфликтует с другими компонентами, которые тоже управляют robots-правилами.
Если нужно закрыть только пустой поиск
Иногда полезно оставить индексируемыми страницы поиска, если они реально формируют посадочные страницы. Тогда закрывать стоит только пустые результаты:
<?php
add_filter('wp_robots', function ($robots) {
if (is_search() && !have_posts()) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
});Здесь важно понимать ограничение: have_posts() работает в основном цикле. Если тема или плагин переопределяют запрос, проверку нужно тестировать именно на реальной странице поиска, а не только в коде.
Когда лучше использовать SEO-плагин
Если у вас уже стоит SEO-плагин, часто проще настроить индексацию там, чем писать собственные правила. Это особенно удобно для:
- архивов рубрик и меток;
- авторов и дат;
- страниц поиска;
- страниц с параметрами, если плагин умеет их учитывать.
У плагина есть плюс: он обычно уже умеет корректно ставить noindex, canonical и управлять XML-картой сайта. Минус в том, что не все плагины одинаково хорошо работают с нестандартными шаблонами и параметрами URL. Если после настройки страница всё равно попадает в индекс, проверьте, не переопределяет ли тема robots-мета вручную.
Проверка результата после внедрения
После правки не ограничивайтесь просмотром исходника. Нужна проверка в трех местах.
- Откройте страницу поиска или архив и убедитесь, что в
<head>появилсяnoindex,follow. - Проверьте HTTP-ответ и убедитесь, что страница не отдает редирект на другой URL без причины.
- В Search Console отправьте URL на повторную проверку и посмотрите, как поисковик интерпретирует страницу.
Если страница закрыта, но продолжает появляться в индексе, обычно причина одна из трех: правило не срабатывает на нужном шаблоне, canonical указывает на саму страницу, либо поисковик еще не переобходил URL после изменений.
Частые ошибки и как их исправить
Закрывают весь поиск, хотя он приносит трафик
Это типичная ошибка для сайтов с хорошей внутренней навигацией. Если поисковые страницы ранжируются по брендовым или навигационным запросам, сначала посмотрите статистику и только потом ставьте noindex. Иногда лучше закрыть только пустые результаты, а полезные страницы оставить открытыми.
Ставят noindex, но оставляют страницу в sitemap
Так делать не стоит. Если URL закрыт от индексации, он не должен одновременно активно продвигаться через карту сайта. Иначе вы отправляете поисковику противоречивые сигналы.
Используют robots.txt вместо noindex
Disallow в robots.txt запрещает обход, но не гарантирует удаление URL из индекса, если он уже известен поисковику. Для страниц, которые уже попали в выдачу, чаще нужен именно noindex или корректный canonical.
Ломают пагинацию
Если закрыть первую страницу архива, а пагинацию оставить открытой, можно получить странную индексацию: поисковик видит вторую и третью страницы, но не понимает логику раздела. В таких случаях нужно смотреть на весь архив целиком, а не на один URL.
Чек-лист перед публикацией правок
- Проверить, какие URL реально создаются темой и плагинами.
- Убедиться, что полезные посадочные страницы не закрываются случайно.
- Добавить
noindex,followтолько там, где это действительно нужно. - Проверить canonical и XML-карту сайта.
- Тестировать изменения на одной странице и только потом раскатывать на весь тип URL.
- После внедрения отправить URL на переобход в Search Console.
Безопасность и производительность
Если вы закрываете страницы кодом, лучше держать его в дочерней теме или в небольшом mu-plugin, а не в основном шаблоне. Тогда обновление темы не сотрет правило. Для крупных сайтов это особенно важно: одна случайная замена шаблона может вернуть в индекс десятки технических URL.
Еще один практический момент: не плодите несколько источников управления robots. Если SEO-плагин уже задает правила, а тема добавляет свои, итоговый HTML может стать непредсказуемым. В таких случаях сначала убирают дублирующую логику, потом оставляют один источник правды.
Если на сайте много дублей, пустых архивов и технических страниц, имеет смысл сначала навести порядок в структуре индексации, а уже потом заниматься контентом. Для этого полезно использовать инструменты, которые помогают чистить дубли и управлять SEO-настройками на уровне сайта, например Clearfy Pro: https://wpshop.ru/plugins/clearfy.
Главное правило простое: закрывайте от индексации не «всё лишнее», а только то, что не несет самостоятельной ценности и не должно конкурировать с основными страницами сайта. Тогда индексация станет чище, а риск потерять полезный трафик будет заметно ниже.