Если в индексе появляются страницы поиска, служебные архивы, дубли с параметрами или технические URL, править только robots.txt обычно недостаточно. Поисковик может увидеть страницу, но не обязан её не индексировать. Для точечного контроля лучше использовать noindex, а в некоторых случаях — ещё и nofollow или канонический URL.
Ниже разберём, когда закрывать страницу от индексации через код, когда достаточно настроек SEO-плагина, и как проверить, что поисковый робот действительно перестал брать лишние URL в индекс.
Когда проблема уже видна в индексе
Типичный сценарий: в Google Search Console или Яндекс.Вебмастере появляются страницы, которые не должны ранжироваться. Это могут быть:
- страницы поиска по сайту вида
?s=; - архивы автора на небольшом сайте с одним редактором;
- страницы тегов, если они дублируют рубрики;
- служебные страницы пагинации, когда они не несут самостоятельной ценности;
- URL с параметрами сортировки, фильтрации или UTM, если они создают дубли.
Важно сначала понять, что именно нужно убрать: саму страницу из индекса, ссылочный вес с неё, или только исключить её из выдачи. Это разные задачи.
Что проверить в первую очередь
- Есть ли у страницы мета-тег
noindexв исходном коде. - Не закрыта ли она только в
robots.txt— этого может быть мало. - Не прописан ли на ней канонический URL на другую страницу.
- Не генерирует ли тема или плагин дубли с параметрами.
- Не отдаёт ли страница код ответа 200 там, где должен быть редирект или 404.
Как выбрать способ: плагин, код или серверная настройка
Для большинства сайтов удобнее всего закрывать отдельные типы страниц через SEO-плагин. Но если задача точечная и касается только части шаблонов, надёжнее добавить логику в тему или мини-плагин. Серверные правила нужны реже — в основном для редиректов и жёсткого ограничения доступа.
| Подход | Когда использовать | Плюс | Минус |
|---|---|---|---|
| SEO-плагин | Нужно быстро закрыть архивы, теги, поиск | Безопасно для редактора | Зависит от настроек плагина |
| Код в теме/плагине | Нужна точная логика для конкретных URL | Полный контроль | Нужно тестировать после обновлений |
| robots.txt | Нужно уменьшить обход роботом | Просто внедрить | Не гарантирует исключение из индекса |
Если у вас уже стоит SEO-плагин, сначала проверьте его настройки. Если нет — ниже есть рабочий вариант на коде, который можно положить в мини-плагин.
Диагностика: почему страница всё ещё индексируется
Самая частая ошибка — закрыть URL в robots.txt и ждать, что он исчезнет из выдачи. На практике поисковик может оставить страницу в индексе, если уже видел её раньше или нашёл внешние ссылки на неё. Для удаления нужен сигнал noindex или редирект на релевантную страницу.
Проверьте исходный код страницы и ответ сервера. Для этого удобно использовать:
- просмотр HTML в браузере;
curl -I https://example.com/page/для проверки кода ответа;- инструменты проверки URL в Search Console;
- поиск по сайту через
site:domain.ruкак быстрый индикатор, но не как точный источник.
Если страница отдаёт 200 OK и не содержит noindex, поисковик имеет полное право держать её в индексе.
Пошаговое решение через код
Ниже пример для мини-плагина или functions.php. Он добавляет noindex, nofollow для поисковой страницы, архивов автора и тегов. Такой вариант подходит, если вы хотите управлять индексацией без отдельного SEO-плагина.
<?php
add_action('wp_head', function () {
if (is_search() || is_tag() || is_author()) {
echo '<meta name="robots" content="noindex, nofollow" />' . "\n";
}
}, 1);
Этот код работает только на фронтенде. Он не закрывает страницу от обхода роботом полностью, но даёт поисковику понятный сигнал не включать её в индекс.
Если нужно закрыть только конкретные страницы по ID, можно сделать точечную проверку:
<?php
add_action('wp_head', function () {
if (is_page(array(12, 34, 56))) {
echo '<meta name="robots" content="noindex, nofollow" />' . "\n";
}
}, 1);
Такой подход полезен для страниц политики, благодарности после формы, внутренних технических страниц или посадочных, которые не должны попадать в поиск.
Если нужен канонический URL
Иногда страницу лучше не закрывать полностью, а указать каноническую версию. Например, если у вас есть дубли с параметрами сортировки или пагинации. В этом случае noindex может быть лишним, а rel="canonical" поможет объединить сигналы.
<?php
add_action('wp_head', function () {
if (is_page('search-results')) {
echo '<link rel="canonical" href="' . esc_url(home_url('/')) . '" />' . "\n";
}
}, 1);
Но не ставьте каноникал на случайные URL без логики. Канонический адрес должен быть действительно основным вариантом страницы.
Как закрыть архивы, теги и поиск через SEO-плагин
Если сайт ведётся редактором и вам не хочется поддерживать код, удобнее управлять индексацией в SEO-плагине. В большинстве случаев это делается на уровне шаблонов архивов: теги, авторы, даты, поиск, пагинация.
Логика обычно такая:
- архивы тегов —
noindex, если они дублируют рубрики; - архивы автора —
noindexна сайте с одним автором; - страницы поиска —
noindexпочти всегда; - служебные страницы — закрыть от индексации и убрать из карты сайта.
Если используете Clearfy Pro, проверьте, не дублирует ли тема SEO-логику. Два плагина, которые одновременно добавляют мета-теги robots, часто создают конфликт: в коде может оказаться сразу несколько директив.
Проверка результата после внедрения
После изменения не ограничивайтесь просмотром страницы в браузере. Нужна проверка именно того, что видит робот.
- Откройте исходный код страницы и убедитесь, что есть только одна директива
robots. - Проверьте, что страница отдаёт ожидаемый код ответа:
200,301или404. - Посмотрите, не попала ли страница в XML-карту сайта.
- Отправьте URL на повторную проверку в Search Console.
- Сравните статус URL до и после изменения через несколько обходов робота, а не сразу.
Если страница закрыта от индексации, но продолжает появляться в выдаче, это не всегда ошибка. Поисковику нужно время, чтобы переобойти URL и обновить индекс.
Частые ошибки и как их исправить
Закрыли страницу только в robots.txt
Это не гарантирует удаление из индекса. Если URL уже известен поисковику, он может остаться в выдаче без сниппета. Добавьте noindex или сделайте редирект.
Поставили noindex, но оставили страницу в карте сайта
Так поисковик получает противоречивые сигналы. Если страница не должна индексироваться, уберите её из sitemap.
Добавили несколько meta robots от разных плагинов
Иногда в коде одновременно есть index, follow и noindex, nofollow. В такой ситуации поведение может быть непредсказуемым. Оставьте один источник управления.
Закрыли важную страницу по ошибке
Это часто случается с архивами рубрик и пагинацией. Перед массовым закрытием проверьте, не приносит ли страница трафик и не нужна ли она для внутренней перелинковки.
Практические советы по безопасности и производительности
Если вы вносите изменения кодом, не правьте functions.php активной темы напрямую на боевом сайте. Лучше использовать мини-плагин или дочернюю тему. Так меньше риск потерять правки после обновления.
Ещё один полезный момент: не пытайтесь решать индексацию через тяжёлые плагины, если задача простая. Лишние модули для SEO и редиректов могут замедлять админку и создавать дубли логики. Для точечных задач код часто надёжнее и легче в сопровождении.
Если нужен более широкий аудит дублей, служебных страниц и SEO-ошибок, имеет смысл сначала привести в порядок техническую часть сайта, а уже потом настраивать индексацию отдельных URL. Иначе вы будете закрывать симптомы, а не причину.
В итоге рабочая схема обычно такая: сначала диагностировать, какие URL реально мешают, затем выбрать один способ управления индексированием, после этого проверить исходный код, sitemap и статус в панели вебмастера. Именно эта последовательность даёт предсказуемый результат без лишних правок в robots.txt.