На WordPress чаще всего индексируются не те страницы, которые реально нужны в поиске: архивы с пустым содержимым, страницы автора на небольшом сайте, результаты внутреннего поиска, служебные URL плагинов, пагинация с тонким контентом. Проблема обычно не в одном теге noindex, а в том, что его ставят точечно и забывают про canonical, robots.txt и шаблоны темы. В итоге поисковик видит противоречивые сигналы.
Ниже — рабочая схема: как найти такие страницы, как закрыть их от индексации без лишнего риска и как проверить, что изменения действительно применились.
Какие страницы стоит закрывать от индексации
Не все служебные URL нужно прятать. Если закрыть слишком много, можно случайно убрать из поиска полезные разделы. Обычно под техничку попадают:
- страницы внутреннего поиска вида
?s=; - архивы автора на сайте, где один автор и нет смысла плодить дубли;
- архивы дат, если они не несут самостоятельной ценности;
- страницы тегов, если теги создаются автоматически и дублируют рубрики;
- служебные страницы плагинов, которые не должны ранжироваться;
- пагинация архивов, если на ней почти нет уникального контента.
Если у вас уже есть статьи про дубли и тонкие страницы, здесь задача другая: не искать и удалять контент, а правильно ограничить индексацию там, где страница нужна пользователю, но не нужна поиску.
Диагностика: как понять, что именно индексируется лишнее
Сначала проверьте, какие URL уже попали в индекс. Для этого достаточно трех источников: site:-поиска, отчета в Google Search Console и логики самого сайта. На практике полезно смотреть не только на индекс, но и на шаблон URL.
Что искать в Search Console
Откройте отчет по страницам и обратите внимание на URL с параметрами, архивы и результаты поиска. Если в индексе есть страницы, которые не должны там быть, обычно причина одна из трех:
- на странице нет
noindex; - страница закрыта в
robots.txt, но уже проиндексирована и не получает сигнал на удаление; - canonical указывает сам на себя или на неподходящий URL.
Быстрая проверка через код
Если нужно понять, какие типы страниц отдает тема или плагин, можно временно вывести условия в лог. Это не решение, а способ быстро увидеть, что именно срабатывает на фронтенде.
add_action('wp_head', function () {
if (is_search()) {
error_log('Search page detected: ' . esc_url_raw(home_url(add_query_arg([], $_SERVER['REQUEST_URI']))));
}
});Такой подход уместен только на тестовом сайте или при включенном логировании. На боевом сайте не стоит оставлять лишние записи в логах надолго.
Пошаговое решение: закрываем служебные страницы правильно
Есть два нормальных пути: через SEO-плагин или через код. Если у вас уже стоит плагин, который управляет мета-тегами, лучше не дублировать логику в теме. Если плагина нет или нужны точечные правила, код надежнее и прозрачнее.
Вариант 1. Через SEO-плагин
В большинстве SEO-плагинов можно отдельно задать noindex для архивов, поиска и тегов. Это удобнее, если нужно быстро закрыть несколько типов страниц без правки темы. Но важно проверить, не конфликтует ли плагин с темой и не переопределяется ли мета-тег другим расширением.
Если вы используете Clearfy Pro, в нем есть инструменты для удаления дублей и управления техническими страницами. Это уместно, когда нужно собрать несколько настроек в одном месте, а не размазывать их по functions.php.
Вариант 2. Через код в теме или мини-плагине
Если задача точечная, проще добавить фильтр на robots meta. Ниже пример для закрытия поиска, архивов дат и страниц тегов. Код лучше положить в мини-плагин, а не в активную тему, чтобы не потерять настройки при обновлении.
add_filter('wp_robots', function (array $robots) {
if (is_search() || is_tag() || is_date()) {
$robots['noindex'] = true;
$robots['nofollow'] = false;
}
return $robots;
});Этот способ работает на уровне <meta name="robots">. Для большинства случаев этого достаточно, если страница должна открываться пользователю, но не попадать в поиск.
Если нужен отдельный canonical
Иногда одной директивы noindex мало. Например, у страницы поиска или фильтра есть почти дублирующийся контент. Тогда canonical лучше указывать на основную страницу раздела, а не на сам служебный URL.
add_filter('get_canonical_url', function ($canonical, $post) {
if (is_search()) {
return home_url('/');
}
return $canonical;
}, 10, 2);Этот пример не универсален для всех тем и плагинов, но показывает логику: canonical должен вести на полезную страницу, а не закреплять в индексе технический URL.
Когда robots.txt помогает, а когда мешает
robots.txt полезен для ограничения обхода, но не для удаления уже проиндексированных страниц. Если страница уже в индексе, один только Disallow не решит задачу. Поисковик может продолжать хранить URL без содержимого или с устаревшим сниппетом.
Используйте robots.txt только там, где нужно снизить лишний crawl budget или закрыть совсем бесполезные служебные пути. Например, временные директории, технические параметры, которые не должны обходиться ботом.
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-login.php
Disallow: /?s=
Disallow: /search/Но если речь о страницах, которые уже в индексе, сначала ставьте noindex, а не только Disallow.
Чек-лист перед публикацией изменений
- Проверить, какие типы страниц реально должны остаться в индексе.
- Убедиться, что
noindexне дублируется двумя плагинами одновременно. - Проверить canonical на служебных страницах.
- Не закрывать в
robots.txtто, что нужно удалить из индекса черезnoindex. - Посмотреть исходный код страницы и убедиться, что мета-тег robots выводится.
- Проверить, не ломает ли тема пагинацию, хлебные крошки и архивы после правки.
Как проверить результат после внедрения
После изменения не ориентируйтесь только на кэш браузера. Проверка должна быть по факту ответа сервера и по данным поисковой системы.
- Откройте страницу в режиме просмотра исходного кода и найдите
meta name="robots". - Проверьте canonical: он должен вести на ожидаемую страницу.
- В Google Search Console отправьте URL на повторную проверку, если страница уже была в индексе.
- Через несколько дней проверьте, исчез ли URL из отчета по индексированию или изменился ли статус.
Если страница все еще индексируется, не спешите добавлять новые запреты. Сначала проверьте, не переопределяет ли мета-теги SEO-плагин, и не выводит ли тема свой собственный canonical.
Частые ошибки и как их исправить
Закрыли страницу в robots.txt, но не поставили noindex
Это самая частая ошибка. Страница остается в индексе, потому что поисковик уже знает URL, но не получает нормального сигнала на удаление. Исправление: временно уберите Disallow, добавьте noindex, дождитесь переобхода, потом при необходимости снова ограничьте обход.
Ставят noindex через два разных инструмента
Например, SEO-плагин уже выводит noindex, а тема добавляет свой фильтр. В результате получается каша в мета-тегах или конфликт логики. Исправление: оставьте один источник правды — либо плагин, либо код.
Canonical указывает на саму техническую страницу
Для поиска, архивов и фильтров это часто бесполезно. Canonical должен вести на основную страницу раздела или на более полезный URL. Если canonical не нужен, лучше не выдумывать его вручную без понимания шаблона.
Скрыли важные архивы вместе с мусорными
Иногда под раздачу попадают полезные страницы рубрик, которые реально приводят трафик. Исправление: сначала посмотрите статистику и структуру сайта, потом закрывайте только то, что не несет самостоятельной ценности.
Практические советы по безопасности и производительности
Технические страницы сами по себе не опасны, но их массовая индексация может раздувать обход и создавать лишнюю нагрузку на сайт. Поэтому полезно держать под контролем и шаблоны, и плагины, которые генерируют архивы, фильтры и параметры URL.
Если правите код, не вносите изменения прямо в родительскую тему. Используйте дочернюю тему или небольшой плагин для сайта. Так вы не потеряете настройки после обновления и не получите сюрприз при смене темы.
Если на сайте много технических дублей, сначала проверьте, не плодит ли их сама тема: архивы, пагинация, теги, параметры сортировки, страницы поиска. Иногда проще убрать источник дублей, чем потом закрывать десятки URL вручную.
| Подход | Когда подходит | Минус |
|---|---|---|
| SEO-плагин | Нужно быстро закрыть архивы и поиск без кода | Может конфликтовать с темой или другим SEO-решением |
| Код в мини-плагине | Нужны точечные правила и контроль над логикой | Требует проверки после обновлений |
| robots.txt | Нужно ограничить обход, а не удалять URL из индекса | Не решает проблему уже проиндексированных страниц |
Если нужен инструмент для чистки дублей и технических настроек на WordPress-сайте, можно посмотреть Clearfy Pro: https://wpshop.ru/plugins/clearfy. Но даже с плагином важно понимать, какие именно страницы вы закрываете и почему.