На практике проблема обычно выглядит так: в индекс попадают не отдельные случайные URL, а целые группы страниц — архивы с параметрами, служебные разделы, результаты поиска, страницы пагинации, фильтры, внутренние тестовые URL. Если закрывать их вручную по одной, это быстро превращается в бесконечную рутину. Гораздо полезнее понять, где именно формируется шаблон URL и на каком уровне его лучше выключить: в SEO-плагине, через robots.txt, через noindex или на уровне шаблона темы/плагина.
Ниже — рабочий разбор без универсальных советов. Сначала диагностика, потом варианты решения, затем проверка результата и типичные ошибки, из-за которых закрытые страницы всё равно остаются в индексе.
Когда нужно закрывать страницы по шаблону, а не поштучно
Этот подход нужен, если у вас есть повторяющийся тип URL, который не должен участвовать в поиске. Например:
- страницы с параметрами сортировки и фильтрации;
- внутренний поиск сайта;
- архивы тегов или дат, если они не несут ценности;
- страницы пагинации в разделах, которые не должны индексироваться;
- технические URL, которые создаёт тема или плагин;
- страницы предпросмотра, тестовые и временные разделы.
Если проблема повторяется по шаблону, ручное закрытие через админку не помогает: новый URL того же типа снова попадёт в индекс. Здесь нужен системный способ.
Диагностика: где именно появляется лишняя индексация
Перед правкой важно понять, что именно происходит с URL. Иногда страница уже закрыта через noindex, но всё ещё видна в поиске как «страница без описания». Иногда она заблокирована в robots.txt, но при этом уже успела попасть в индекс по внешним ссылкам. Это разные ситуации, и лечатся они по-разному.
Проверьте тип страницы и источник генерации
Сначала откройте проблемный URL и посмотрите:
- это реальная страница WordPress, архив, таксономия или результат поиска;
- есть ли у неё уникальный шаблон в теме;
- не создаёт ли её плагин фильтрации, поиска или навигации;
- не появляется ли URL только с параметрами в адресе.
Если URL создаётся параметром, например ?s=, ?orderby= или ?filter=, закрывать нужно не только саму страницу, но и источник генерации ссылок. Иначе поисковик продолжит находить новые варианты адреса.
Проверьте текущие сигналы для поисковиков
Посмотрите исходный код страницы и найдите:
<meta name="robots" content="noindex">или похожую комбинацию;canonical— куда он указывает;- есть ли блокировка в
robots.txt; - не отдаёт ли страница код
200 OKтам, где должен быть404или410.
Если страница должна исчезнуть окончательно, одного noindex может быть мало. Если она нужна пользователям, но не нужна в поиске, тогда noindex,follow обычно логичнее, чем полная блокировка.
Как выбрать способ: плагин, код или robots.txt
Для WordPress есть три нормальных пути. Выбор зависит от того, где живёт проблема и насколько она массовая.
| Способ | Когда подходит | Плюс | Минус |
|---|---|---|---|
| SEO-плагин | Нужно быстро закрыть архивы, таксономии, поиск, пагинацию | Удобно, без правки темы | Не всегда хватает для нестандартных URL |
| Код в теме или мини-плагине | Нужно закрыть конкретный шаблон или параметр | Точный контроль | Нужно аккуратно тестировать |
robots.txt | Нужно ограничить обход, а не только индексацию | Просто и быстро | Не удаляет URL из индекса сам по себе |
Если у вас уже стоит SEO-плагин, сначала проверьте его настройки. Если нет — для массовых задач удобнее добавить правило кодом, чем плодить ручные исключения.
Пошаговое решение через код: закрываем шаблонные URL от индексации
Ниже пример для случая, когда нужно закрыть страницы поиска и архивы тегов. Код можно добавить в functions.php дочерней темы или, что безопаснее, в небольшой mu-plugin.
<?php
add_action('wp_head', function () {
if (is_search() || is_tag()) {
echo '<meta name="robots" content="noindex,follow" />' . "\n";
}
}, 1);
add_filter('wp_robots', function ($robots) {
if (is_search() || is_tag()) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
});Здесь лучше использовать именно фильтр wp_robots, потому что WordPress сам формирует корректный robots-мета для современных версий. Вывод через wp_head оставлен как запасной пример, но в реальном проекте достаточно одного нормального механизма, если тема и плагины не конфликтуют.
Если нужно закрыть не тип страницы, а URL с параметром, логика будет другой. Например, для страниц с ?s= или фильтрами можно добавить условие по $_GET и выставлять noindex только при наличии параметра:
<?php
add_filter('wp_robots', function ($robots) {
if (!empty($_GET['s']) || !empty($_GET['filter']) || !empty($_GET['orderby'])) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
});Такой вариант полезен, когда поисковик индексирует не саму страницу, а её вариации с параметрами. Но если параметров много и они создаются плагином фильтрации, лучше закрывать их на уровне самого плагина или через SEO-настройки, а не наращивать сложную логику в теме.
Как сделать это через SEO-плагин без кода
Если задача типовая, удобнее использовать настройки индексации в SEO-плагине. Обычно там можно отдельно отключить индексацию для архивов тегов, дат, авторов, поиска и пагинации. Это хороший путь, если сайт ведётся не разработчиком, а редактором или контент-менеджером.
Для массовой чистки служебных страниц и дублей иногда проще использовать инструменты вроде Clearfy Pro: он помогает отключать лишние элементы WordPress, управлять дублями и наводить порядок в технических настройках. Но даже с плагином нужно понимать, что именно вы закрываете и почему — иначе легко убрать из индекса полезные страницы.
Что делать с robots.txt и когда он действительно нужен
robots.txt полезен, когда нужно сократить обход мусорных URL. Но это не замена noindex. Если страница уже в индексе, блокировка в robots.txt не гарантирует её исчезновение. Поисковик может оставить URL в выдаче без сниппета.
Пример аккуратного правила:
User-agent: *
Disallow: /?s=
Disallow: /search/
Disallow: /tag/
Disallow: /page/
Но с такими правилами нужно быть осторожным. Disallow: /tag/ может закрыть не только архивы тегов, но и другие URL, если структура сайта нестандартная. Перед публикацией проверьте реальные адреса на сайте и не копируйте шаблон без адаптации.
Проверка результата после внедрения
После правки не ограничивайтесь просмотром страницы в браузере. Проверьте несколько уровней:
- в исходном коде есть
noindexдля нужных шаблонов; - канонический URL указывает туда, куда вы ожидаете;
- страница не попадает в XML-карту сайта, если она не должна индексироваться;
- в
robots.txtнет случайной блокировки важных разделов; - в Search Console URL доступен для проверки и не конфликтует с другими сигналами.
Для быстрой проверки можно открыть страницу и посмотреть исходный код, либо использовать команду:
curl -I https://example.com/tag/sample/Если сервер отдаёт нужный код и страница содержит корректный robots-мета, это уже хороший признак. Но финальный результат виден только в индексации: поисковику нужно время, чтобы переобойти URL и обновить статус.
Частые ошибки и как их исправить
Закрыли страницу в robots.txt, но не поставили noindex
Это самая частая ошибка. Страница может остаться в индексе, потому что поисковик уже знает этот URL. Если цель — убрать страницу из поиска, сначала ставьте noindex, а блокировку обхода используйте только там, где она действительно нужна.
Поставили noindex, но оставили ссылку в sitemap
Если URL продолжает попадать в карту сайта, поисковик получает противоречивые сигналы. Для закрытых страниц убирайте их из XML Sitemap, иначе переобход будет идти дольше и шумнее.
Использовали слишком широкое условие
Например, закрыли все архивы или все страницы с параметрами, хотя часть из них нужна для SEO. Это особенно опасно на сайтах с фильтрами, где часть URL может быть полезной посадочной страницей. Перед массовым закрытием проверьте, не потеряете ли вы трафиковые разделы.
Смешали canonical и noindex без логики
Если canonical указывает на одну страницу, а noindex стоит на другой, поисковик может игнорировать часть сигналов или обрабатывать их не так, как вы ожидаете. Canonical — это про предпочтительный URL, noindex — про запрет индексации. Не используйте их как взаимозаменяемые инструменты.
Чек-лист перед публикацией изменений
- Проверили, какой именно шаблон или параметр создаёт лишний URL.
- Выбрали способ: плагин, код или
robots.txt. - Убедились, что закрытые страницы не нужны в поиске.
- Удалили их из XML Sitemap, если они там были.
- Проверили исходный код на наличие
noindex. - Сверили
canonicalи внутренние ссылки. - Протестировали несколько URL одного типа, а не только один пример.
Когда лучше не закрывать страницу полностью
Если страница полезна пользователю, но просто не должна конкурировать в выдаче, чаще всего достаточно noindex,follow. Полная блокировка через robots.txt может мешать поисковику видеть контекст страницы и её ссылки. Это особенно важно для разделов, где есть внутренняя перелинковка и переходы на важные материалы.
Если же URL технический и не должен существовать в поиске вообще, иногда правильнее отдать 404 или 410, чем пытаться «прятать» его мета-тегами. Это уже зависит от того, нужен ли адрес пользователям и есть ли на него внешние ссылки.