В WordPress часто нужно убрать из поиска не весь сайт, а только конкретные типы страниц: результаты поиска, служебные разделы, внутренние фильтры, тестовые публикации, страницы с параметрами и технические URL. Ошибка здесь типовая: в robots.txt закрывают всё подряд, а потом удивляются, почему Google всё равно показывает URL в выдаче без сниппета или почему страница не уходит из индекса быстро.
Ниже разберём, чем отличаются robots.txt, noindex и X-Robots-Tag, когда каждый способ реально работает, и как не сломать индексацию нужных страниц.
Когда проблема уже видна в поиске
Сценарии обычно такие:
- в выдаче появляются страницы с параметрами
?replytocom=,?utm_или внутренними фильтрами; - индексируются страницы поиска по сайту, архивы с пустым или слабым контентом, служебные разделы;
- в Search Console есть много URL со статусом Просканировано — сейчас не проиндексировано или Исключено тегом noindex, но вы не понимаете, откуда они берутся;
- после закрытия в
robots.txtURL всё ещё видны в выдаче, хотя вы ожидали полного удаления.
Важно понимать: robots.txt запрещает обход, но не гарантирует удаление из индекса. Если поисковик уже знает URL, он может оставить его в выдаче без содержимого. Для удаления из индекса нужен noindex или заголовок X-Robots-Tag, а для ускорения — ещё и нормальная внутренняя перелинковка без ссылок на мусорные URL.
Что выбрать: robots.txt, noindex или X-Robots-Tag
Коротко: robots.txt — для ограничения обхода, noindex — для исключения из индекса, X-Robots-Tag — для тех же задач, но на уровне HTTP-ответа, когда HTML-метатег неудобен или недоступен.
| Способ | Когда использовать | Ограничение |
|---|---|---|
robots.txt | Нужно снизить обход служебных URL, не пускать ботов в технические разделы | Не удаляет URL из индекса сам по себе |
<meta name="robots" content="noindex"> | Нужно убрать конкретную HTML-страницу из поиска | Страница должна быть доступна для обхода, иначе робот не увидит директиву |
X-Robots-Tag | Нужно запретить индексацию не только HTML, но и файлов, архивов, ответов API | Требует настройки на сервере или через PHP |
Если страница должна исчезнуть из поиска, но при этом её не нужно полностью скрывать от обхода, используйте noindex или X-Robots-Tag. Если цель — просто не тратить краулинговый бюджет на технические URL, добавляйте правило в robots.txt, но не рассчитывайте на него как на инструмент удаления из индекса.
Диагностика: где именно у вас ломается индексация
Перед правкой проверьте три вещи: как страница отдаёт заголовки, есть ли на ней метатег robots и не блокирует ли её robots.txt. Это можно сделать без плагинов.
Проверка ответа сервера
На сервере или локально выполните:
curl -I https://example.com/slug-page/В ответе ищите заголовки вроде X-Robots-Tag: noindex, а также убедитесь, что код ответа 200, если страница должна быть доступна для обхода. Если там уже 404 или 410, это другой сценарий: поисковик со временем уберёт URL, но это не то же самое, что мягкое исключение из индекса.
Проверка HTML
Откройте исходный код страницы и найдите:
<meta name="robots" content="noindex,follow">Если метатега нет, а страница всё ещё индексируется, значит, либо он не выводится на нужном шаблоне, либо его перебивает другой плагин SEO.
Проверка robots.txt
Посмотрите, не закрыли ли вы нужный URL слишком грубо. Например, правило вида Disallow: / может мешать обходу всего сайта, а запрет на каталог с CSS/JS иногда ломает рендеринг и мешает поисковику корректно оценить страницу.
Пошаговое решение для WordPress
Если задача — убрать из поиска отдельные типы страниц, лучше действовать точечно. Ниже пример для служебных страниц и результатов поиска WordPress.
1. Добавьте noindex на страницы поиска и архивы, которые не нужны в выдаче
Если вы не используете SEO-плагин, можно добавить метатег через wp_head. Пример ниже ставит noindex,follow на результаты поиска и на архивы с пагинацией, если это оправдано вашей структурой.
add_action('wp_head', function () {
if (is_search() || is_paged()) {
echo '<meta name="robots" content="noindex,follow" />' . "\n";
}
}, 1);Этот вариант рабочий, но применять его нужно аккуратно. is_paged() затронет не только мусорные страницы, но и нормальные архивы. Если у вас есть полезные страницы пагинации, не закрывайте их без анализа логов и Search Console.
2. Используйте X-Robots-Tag для файлов и нестандартных ответов
Если нужно закрыть от индексации PDF, XML-выгрузки, технические эндпоинты или ответы, где нельзя вставить HTML-метатег, удобнее отправлять заголовок X-Robots-Tag через PHP:
add_action('send_headers', function () {
if (is_search()) {
header('X-Robots-Tag: noindex, follow', true);
}
});Для файлов на уровне веб-сервера это можно сделать и конфигурацией Apache или Nginx, но в WordPress-проекте PHP-вариант проще проверить и откатить. Главное — не отправлять заголовок после вывода контента, иначе он не сработает.
3. Закройте обход только там, где это действительно нужно
В robots.txt имеет смысл добавлять только те пути, которые не должны тратить краулинговый бюджет. Например, служебные каталоги, временные директории, параметры, если они создают лавину дублей. Пример:
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-login.php
Disallow: /?s=
Disallow: /search/
Sitemap: https://example.com/sitemap_index.xmlНе закрывайте в robots.txt страницы, которые вы хотите быстро убрать из индекса через noindex. Если робот не может их обойти, он может не увидеть директиву noindex.
Если используете SEO-плагин
В большинстве проектов проще и безопаснее управлять индексацией через SEO-плагин, чем писать собственные условия. У плагина обычно есть настройки для архивов, таксономий, авторов, поиска и служебных страниц. Но даже здесь нужно проверять итоговый HTML и заголовки, а не верить галочкам в админке.
Если у вас уже стоит плагин, который умеет управлять мета-тегами robots и чистить дубли, проверьте, не конфликтует ли он с кастомным кодом в теме. Два источника директивы noindex часто дают непредсказуемый результат: один плагин ставит index,follow, другой — noindex, и в итоге вы не понимаете, что реально видит поисковик.
Как проверить, что решение сработало
После внедрения не ограничивайтесь просмотром страницы в браузере. Нужна проверка по факту ответа сервера и по данным поисковой системы.
- выполните
curl -Iи убедитесь, что заголовокX-Robots-Tagприсутствует там, где вы его добавили; - посмотрите исходный код страницы и найдите метатег
robots; - в Google Search Console откройте проверку URL и посмотрите, видит ли робот директиву
noindex; - проверьте, что страница больше не появляется в sitemap, если она не должна индексироваться;
- убедитесь, что внутренние ссылки на неё убраны или заменены на канонический URL.
Если страница всё ещё в выдаче, это не всегда ошибка. Поисковик может держать её в индексе до следующего обхода. Но если через несколько обходов статус не меняется, ищите конфликт в шаблоне, кэше или SEO-плагине.
Частые ошибки и как их исправить
Закрыли URL в robots.txt и ждёте удаления из индекса
Это самая частая ошибка. robots.txt не удаляет уже известные URL. Исправление простое: верните доступ к странице для обхода и добавьте noindex или X-Robots-Tag.
Поставили noindex, но страница всё ещё закрыта в robots.txt
В этом случае робот может не увидеть метатег. Уберите запрет на обход для этой страницы, дождитесь переобхода и только потом проверяйте статус в Search Console.
Случайно закрыли полезные архивы или пагинацию
Это происходит, когда используют слишком широкие условия вроде is_paged() без проверки контекста. Исправляйте условия точечно: отдельно для поиска, отдельно для технических архивов, отдельно для фильтров.
Не учли кэш
Если на сайте стоит серверный кэш, CDN или плагин кеширования, старый noindex может продолжать отдаваться из кэша. После изменений очистите кэш страницы, объектный кэш и CDN, если он есть.
Практические советы по безопасности и производительности
Не пытайтесь решать индексацию через массовое скрытие всего сайта. Это ухудшает контроль и усложняет диагностику. Лучше держать логику в одном месте: либо в SEO-плагине, либо в небольшом mu-plugin, если у вас есть разработчик, который это поддерживает.
Если на сайте много технических URL, полезно:
- убрать лишние параметры из генерации ссылок;
- не публиковать в sitemap служебные страницы;
- не оставлять в контенте ссылки на внутренний поиск и тестовые архивы;
- проверять, не создают ли плагины дубли через фильтры, сортировки и UTM-параметры.
Для проектов, где нужно регулярно чистить дубли, технические страницы и лишние элементы разметки, удобно использовать инструменты вроде Clearfy Pro, если он уже вписывается в ваш стек и вы понимаете, какие именно настройки включаете. Но даже в этом случае проверка через исходный код и заголовки остаётся обязательной.
Если задача сводится к одному правилу, не усложняйте решение плагинами. Для одной-двух страниц достаточно корректного noindex и чистого robots.txt. Если же у вас десятки шаблонов и разные типы контента, лучше собрать правила в одном месте и документировать, что именно закрыто и почему.