На WordPress часто нужно закрыть от поиска не весь сайт, а только отдельные страницы: результаты поиска, архивы с пустым контентом, служебные разделы, тестовые URL, страницы фильтров или внутренние документы. Ошибка здесь одна и та же: в robots.txt запрещают обход, а потом удивляются, что URL всё равно висит в индексе. Или наоборот — ставят noindex, но страница продолжает обходиться и съедает краулинговый бюджет.
Ниже разберём, когда использовать robots.txt, когда noindex, как это сделать в WordPress без лишних плагинов и как проверить, что поисковик действительно получил нужный сигнал.
Когда нужен robots.txt, а когда noindex
Это не взаимозаменяемые инструменты. robots.txt управляет обходом, а noindex — индексацией. Если страница уже известна поисковику, один только запрет в robots.txt не гарантирует её исчезновение из выдачи. Поисковик может оставить URL в индексе без сниппета, если увидел ссылку на него с других страниц.
Что закрывать через noindex
- внутренний поиск WordPress;
- страницы пагинации, если они не несут самостоятельной ценности;
- архивы автора на маленьком сайте, где они дублируют ленту;
- страницы с параметрами, если они создают мусорные URL;
- служебные страницы, доступные по прямой ссылке.
Что закрывать через robots.txt
- технические разделы, которые не должны обходиться вообще;
- скрипты и системные каталоги, если есть конкретная причина ограничить доступ;
- поисковые страницы и параметры, когда нужно уменьшить количество лишних обходов.
На практике для WordPress чаще нужен именно noindex, а robots.txt — как дополнительный слой, а не основное решение.
Диагностика проблемы: что именно уже попало в индекс
Перед правками проверьте, какие URL реально мешают. Не закрывайте всё подряд только потому, что «так безопаснее». Сначала найдите тип страниц, который нужно убрать.
- Откройте отчёт по страницам в Google Search Console.
- Проверьте, есть ли в индексе URL с параметрами, внутренний поиск, архивы или тестовые страницы.
- Посмотрите исходный код проблемной страницы: есть ли уже
<meta name="robots"сnoindex. - Проверьте, не блокирует ли
robots.txtдоступ к странице, которую вы хотите исключить именно из индекса, а не только из обхода.
Если URL уже в индексе, а вы просто закрыли его в robots.txt, поисковик может не увидеть новый мета-тег на странице. В этом случае сначала снимите блокировку обхода или используйте другой способ, который поисковик сможет прочитать.
Пошаговое решение в WordPress
Вариант 1: закрыть конкретную страницу через noindex
Если речь об одной или нескольких страницах, проще всего добавить мета-тег noindex, follow в <head>. Это можно сделать в теме или в небольшом плагине. Пример ниже закрывает от индексации страницу с указанным ID.
<?php
add_action('wp_head', function () {
if (is_page(42)) {
echo '<meta name="robots" content="noindex,follow">' . "\n";
}
});Если нужно закрыть не одну страницу, а набор шаблонов, лучше проверять условные теги WordPress: is_search(), is_author(), is_paged(), is_page().
<?php
add_action('wp_head', function () {
if (is_search() || is_paged()) {
echo '<meta name="robots" content="noindex,follow">' . "\n";
}
});Вариант 2: запретить обход через robots.txt
Если нужно ограничить обход технических URL, можно отдать свой вариант robots.txt через фильтр robots_txt. Это штатный фильтр WordPress, а не выдуманный костыль.
<?php
add_filter('robots_txt', function ($output, $public) {
$output .= "\nUser-agent: *\n";
$output .= "Disallow: /?s=\n";
$output .= "Disallow: /search/\n";
$output .= "Disallow: /wp-admin/\n";
$output .= "Allow: /wp-admin/admin-ajax.php\n";
return $output;
}, 10, 2);Этот подход полезен, если у вас ЧПУ поиска вида /search/term/ или если сайт генерирует много мусорных URL с параметрами. Но не забывайте: если страница уже в индексе, одного Disallow мало.
Вариант 3: использовать SEO-плагин только для точечных страниц
Если у вас уже стоит SEO-плагин, не дублируйте логику кодом и интерфейсом одновременно. Выберите один источник правды. В большинстве плагинов можно задать noindex для архивов, таксономий, отдельных страниц и шаблонов. Это удобнее, чем поддерживать ручные условия в теме.
| Способ | Когда подходит | Минус |
|---|---|---|
| Код в теме/плагине | Точечные правила, нестандартная логика | Нужно следить за обновлениями и тестировать |
| robots.txt | Ограничить обход технических URL | Не гарантирует удаление из индекса |
| SEO-плагин | Типовые сценарии без разработки | Легко получить конфликт настроек |
Как проверить, что решение сработало
Проверка нужна не только в коде, но и в том, как страницу видит поисковик.
- Откройте страницу в браузере и посмотрите исходный код: должен быть
<meta name="robots" content="noindex,follow">, если вы закрывали страницу через мета-тег. - Проверьте
/robots.txtи убедитесь, что там нет лишнего запрета на важные разделы. - В Google Search Console используйте проверку URL и посмотрите, видит ли робот
noindex. - Если URL уже был в индексе, отправьте его на повторную проверку после правки.
Для быстрой локальной проверки можно посмотреть заголовки ответа сервера, если вы закрываете страницу через HTTP-заголовок X-Robots-Tag. Это удобно для PDF, изображений и файлов, но для обычных HTML-страниц чаще достаточно мета-тега.
Частые ошибки и как их исправить
Ошибка 1: закрыли страницу в robots.txt и ждёте удаления из индекса
Такой URL может остаться в поиске надолго. Решение: разрешите обход, добавьте noindex на саму страницу и только потом ограничивайте обход, если это действительно нужно.
Ошибка 2: одновременно ставят noindex в плагине и в теме
В результате появляются дублирующие мета-теги или конфликт условий. Оставьте один источник настройки. Если используете SEO-плагин, уберите ручной вывод из wp_head.
Ошибка 3: закрыли важные страницы пагинации без проверки
Иногда пагинация нужна для обхода каталога или архива. Если закрыть её слишком агрессивно, можно ухудшить обнаружение контента. Сначала проверьте, есть ли у страниц пагинации самостоятельный трафик и ссылки.
Ошибка 4: забыли про канонический URL
Если на странице стоит noindex, но rel="canonical" указывает на другой URL, убедитесь, что это действительно нужная цель. Иначе поисковик может выбрать не тот адрес для консолидации сигналов.
Практические советы по безопасности и производительности
- Не закрывайте в robots.txt то, что должно быть доступно для рендеринга страницы. Поисковик должен видеть HTML, чтобы прочитать
noindex. - Не используйте массовые правила без списка URL. Один лишний шаблон может закрыть весь архив или весь тип записей.
- Если правите
robots.txtчерез код, храните изменения в дочерней теме или мини-плагине, а не в основной теме. - После внедрения проверьте кеш страницы и кеш CDN: старый HTML может ещё отдавать прежний meta robots.
Если у вас уже есть набор технических правил и чистка дублей, удобно держать это в одном месте, а не размазывать по теме и плагинам. Для типовых задач вроде закрытия архивов, удаления дублей и настройки мета-данных можно посмотреть Clearfy Pro: https://wpshop.ru/plugins/clearfy.
Мини-чек-лист перед публикацией
- Поняли, что нужно: запрет обхода или запрет индексации.
- Проверили, не находится ли URL уже в индексе.
- Убрали дублирующие правила из темы и плагинов.
- Проверили исходный код страницы и
robots.txt. - Протестировали URL в Google Search Console.
- Очистили кеш после правок.
Если задача касается не одной страницы, а целого класса URL, сначала опишите правило на бумаге: какие адреса закрываем, какие оставляем, что должно остаться доступным для обхода. Это экономит время лучше любого «универсального» рецепта.