Если нужно убрать из поиска не весь сайт, а только отдельные страницы, архивы, результаты поиска или служебные URL, robots.txt — не лучший первый инструмент. Он ограничивает обход, но не гарантирует выпадение страницы из индекса, если на неё уже есть ссылки. Для точечной задачи в WordPress обычно используют noindex на уровне HTML-мета-тега или HTTP-заголовка, а для совсем служебных страниц — ещё и закрывают их от переходов внутри сайта.
Ниже разберём, как сделать это без лишних плагинов, где именно в WordPress это настраивается, как проверить результат и какие ошибки чаще всего ломают индексацию сильнее, чем сама проблема.
Когда проблема действительно в индексации, а не в robots.txt
Сначала стоит понять, что именно вы хотите исправить. Частая ситуация: в поиске появляются страницы пагинации, внутренний поиск сайта, архивы по датам, страницы тегов с тонким контентом или технические URL вроде ?replytocom=. Если просто запретить их в robots.txt, поисковик может перестать их обходить, но уже известные URL не всегда исчезают из выдачи сразу.
Для точечной очистки индекса лучше работает связка:
noindexдля страниц, которые не должны ранжироваться;nofollowтолько если вы сознательно не хотите передавать по ссылкам с этой страницы;- корректные canonical-ссылки, если есть дубли;
- удаление внутренних ссылок на мусорные URL, если они больше не нужны.
Что обычно закрывают от индексации
На практике это не главная, не записи блога и не важные посадочные страницы, а именно служебные и слабые по смыслу страницы. Например:
- страницы внутреннего поиска;
- архивы автора на небольшом сайте;
- архивы по датам, если они не несут ценности;
- страницы тегов с дублирующим контентом;
- служебные страницы пагинации в отдельных разделах;
- страницы вложений медиафайлов, если они не нужны в поиске.
Диагностика: как понять, что страница уже индексируется
Перед правкой проверьте, что именно попало в индекс и как страница отдаётся сейчас. Откройте исходный код страницы и найдите мета-тег robots. Если его нет, WordPress или тема не запрещают индексацию на уровне шаблона. Если тег есть, но там index, follow, страница открыта для поиска.
Ещё полезно посмотреть HTTP-ответ. Иногда тема или плагин SEO добавляют X-Robots-Tag в заголовок, и это важнее, чем мета-тег в HTML. Проверить можно через DevTools, curl или любой HTTP-клиент.
curl -I https://example.com/stranica/В ответе ищите строки вроде X-Robots-Tag: noindex или отсутствие такого заголовка. Если страница должна быть закрыта, а заголовка нет, значит правило не применяется.
Пошаговое решение без robots.txt
Для WordPress есть два рабочих сценария: через SEO-плагин или кодом. Если у вас уже стоит плагин, который управляет мета-тегами robots, проще использовать его. Если нужен точечный контроль без лишней нагрузки и без зависимости от интерфейса, можно добавить фильтр в тему или мини-плагин.
Вариант 1: закрыть страницу через SEO-плагин
В большинстве SEO-плагинов для WordPress у каждой записи, страницы, рубрики или архива есть настройка индексации. Логика обычно такая: открываете нужный объект, находите блок для поисковых роботов и ставите noindex. Это удобно, когда нужно закрыть несколько страниц вручную и не трогать код.
Плюс этого подхода — простота. Минус — если страниц много или правило должно работать автоматически, руками это быстро становится неудобно. Тогда лучше перейти к коду.
Вариант 2: добавить noindex через код
Если нужно закрыть, например, страницу поиска, архивы автора или вложения, можно повесить фильтр на wp_robots. Это штатный способ WordPress, он не требует выдуманных хуков и работает на уровне массива директив robots.
<?php
add_filter( 'wp_robots', function( array $robots ) {
if ( is_search() || is_author() || is_attachment() ) {
$robots['noindex'] = true;
$robots['nofollow'] = true;
}
return $robots;
} );Этот код можно добавить в functions.php дочерней темы или, что надёжнее, в небольшой mu-plugin. Для служебных страниц это лучше, чем править шаблоны вручную: логика централизована и не теряется после обновления темы.
Вариант 3: закрыть конкретный URL через заголовок
Иногда удобнее отдать X-Robots-Tag для конкретного шаблона или типа запроса. Это полезно для PDF, вложений, служебных страниц или нестандартных endpoint-ов. В WordPress можно отправить заголовок на раннем этапе, если вы точно понимаете, для каких запросов он нужен.
<?php
add_action( 'template_redirect', function() {
if ( is_attachment() || is_search() ) {
header( 'X-Robots-Tag: noindex, nofollow', true );
}
} );Здесь важно не отправлять заголовок слишком поздно, когда уже начался вывод HTML. Иначе PHP выдаст предупреждение, а заголовок не применится.
Какой способ выбрать: плагин, код или комбинация
| Подход | Когда подходит | Плюсы | Ограничения |
|---|---|---|---|
| SEO-плагин | Нужно закрыть несколько страниц вручную | Быстро, без кода | Сложно масштабировать, зависит от интерфейса |
wp_robots | Нужно правило для типа страниц | Нативно для WordPress, гибко | Нужен доступ к коду |
X-Robots-Tag | Нужно закрыть нестандартный ответ или файл | Работает на уровне HTTP | Нужно аккуратно тестировать заголовки |
Проверка результата после внедрения
После настройки не ограничивайтесь визуальной проверкой. Откройте страницу в браузере и посмотрите исходный код: должен появиться <meta name="robots" content="noindex, nofollow"> или аналогичная директива, если её формирует SEO-плагин. Если используете заголовок, проверьте его через curl -I.
Дальше проверьте страницу в инструментах для вебмастеров поисковой системы, если они у вас подключены. Там обычно видно, обнаружен ли noindex, когда робот в последний раз сканировал URL и есть ли конфликт с canonical.
- страница должна отдавать нужный robots-инструктаж;
- canonical не должен указывать на мусорный дубль, если вы закрываете именно дубль;
- внутренние ссылки на закрытую страницу лучше убрать или сократить;
- если URL уже в индексе, удаление может занять время — это нормально.
Частые ошибки и как их исправить
Закрыли страницу в robots.txt и ждёте удаления из поиска
Это самая частая ошибка. robots.txt ограничивает обход, но не всегда удаляет URL из индекса. Если страница уже известна поисковику, нужен noindex или временное удаление через инструменты вебмастера, если задача срочная.
Ставят noindex на важные страницы по шаблону
Иногда разработчик пишет слишком широкий условный блок, и под него попадает не только поиск или архив, но и обычные записи. Перед публикацией проверьте все типы страниц: главную, записи, рубрики, страницы, архивы, поиск, вложения.
Оставляют внутренние ссылки на закрытый URL
Если страница больше не нужна, но на неё продолжают ссылаться меню, хлебные крошки или блоки похожих материалов, поисковик всё равно будет её находить. Для ненужных страниц лучше убрать ссылки и, если нужно, настроить редирект на релевантную страницу.
Путают noindex и canonical
canonical помогает выбрать основную версию дубликата, а noindex запрещает индексацию конкретного URL. Это разные задачи. Если у вас дубль страницы товара, архива или фильтра, часто нужен canonical. Если страница вообще не должна попадать в поиск, нужен noindex.
Безопасность и производительность: что учесть
Если вы добавляете код, не вносите его прямо в родительскую тему, если она обновляется. Лучше использовать дочернюю тему или mu-plugin. Так правило не исчезнет после обновления и не сломается при смене шаблона.
Не ставьте массовый noindex на весь сайт ради эксперимента. После такой ошибки страницы могут выпасть из поиска быстрее, чем вы успеете это заметить. Сначала тестируйте на одном типе страниц, затем расширяйте правило.
Если на сайте много дублей, служебных архивов и лишних мета-данных, иногда проще сначала навести порядок в технической части. Для этого можно использовать инструменты вроде Clearfy Pro, если вам нужен набор типовых SEO- и технических настроек в одном месте. Но даже с плагином всё равно полезно понимать, какой именно URL вы закрываете и почему.
Мини-чек-лист перед публикацией
- определили конкретные URL или типы страниц, а не закрываете сайт целиком;
- проверили текущий robots-тег и HTTP-заголовки;
- выбрали один способ: плагин,
wp_robotsилиX-Robots-Tag; - убрали внутренние ссылки на ненужные страницы;
- после правки проверили исходный код и ответ сервера;
- если URL уже в индексе, отследили статус в панели вебмастера.
Если задача сводится к точечному управлению индексацией, лучше сделать это один раз и прозрачно, чем потом разбирать последствия от случайно закрытых разделов или неработающего robots.txt.