Служебные страницы, результаты поиска по сайту, архивы с дублями, тестовые разделы и технические URL часто попадают в индекс не потому, что они полезны пользователю, а потому что WordPress сам их генерирует. Если их не контролировать, поисковик тратит краулинговый бюджет на мусор, а в отчётах появляются страницы, которые не должны ранжироваться вообще.
Ниже — рабочая схема: где ставить noindex, когда нужен robots.txt, как закрывать отдельные типы страниц через код и как проверить, что всё действительно сработало.
Когда проблема уже видна в индексе
Обычно сигнал приходит не из кода, а из Search Console или логов сервера. В индексе появляются страницы вида /page/2/, внутренний поиск ?s=, архивы автора на небольшом сайте, страницы тегов без ценности, а иногда и тестовые записи, которые забыли удалить. Если таких URL много, поисковик начинает воспринимать сайт как набор дублей.
Что проверить в первую очередь
- есть ли в индексе страницы поиска, тегов, архивов дат и пагинации;
- не закрыт ли важный контент случайно через
robots.txt; - не конфликтует ли SEO-плагин с ручными мета-тегами;
- не отдает ли сервер кэшированную версию без нужного
noindex.
Если страница уже попала в индекс, одного удаления из robots.txt обычно недостаточно. Поисковик должен увидеть явный сигнал noindex или получить 404/410, если URL больше не должен существовать.
Чем noindex отличается от robots.txt
Это частая точка ошибки. robots.txt управляет обходом, а noindex — индексацией. Если вы запретили URL в robots.txt, но он уже в индексе, поисковик может не увидеть мета-тег noindex на самой странице и не удалить её быстро. Поэтому для уже существующих страниц безопаснее сначала отдать noindex, а не только закрывать обход.
| Подход | Когда использовать | Минус |
|---|---|---|
noindex в meta robots | Для страниц, которые должны открываться, но не индексироваться | Нужно, чтобы робот мог зайти на страницу |
robots.txt | Для технических разделов и экономии обхода | Не гарантирует удаление уже проиндексированного URL |
| 404/410 | Если страницы больше не должно существовать | Нужно аккуратно проверить внутренние ссылки |
Пошаговое решение через SEO-плагин и код
Если у вас уже стоит SEO-плагин, сначала проверьте его настройки. Большинство задач по архивам, тегам и пагинации решаются без кастомного кода. Но для точечных случаев — например, закрыть от индексации только определённую страницу, шаблон или тип записи — удобнее добавить фильтр в тему или мини-плагин.
1. Закрываем конкретную страницу по ID
Этот вариант подходит для страниц «Спасибо», тестовых лендингов, внутренних инструкций и любых URL, которые должны быть доступны по прямой ссылке, но не должны попадать в поиск.
<?php
add_action('wp_head', function () {
if (is_page(123)) {
echo '<meta name="robots" content="noindex, nofollow">' . "\n";
}
});Замените 123 на ID нужной страницы. Если страница уже отдавала индексируемую версию, после внедрения очистите кэш сайта и CDN, иначе поисковый робот может увидеть старый HTML.
2. Закрываем архивы тегов и автора, если они не нужны
На небольших сайтах архивы тегов и авторов часто создают больше дублей, чем пользы. Если вы не используете их как отдельные посадочные страницы, проще закрыть их от индексации на уровне wp_robots.
<?php
add_filter('wp_robots', function (array $robots) {
if (is_tag() || is_author()) {
$robots['noindex'] = true;
$robots['nofollow'] = true;
}
return $robots;
});Этот способ лучше, чем вставлять мета-тег вручную в шаблон, потому что он работает централизованно и не ломается при смене темы.
3. Убираем из индекса внутренний поиск и пагинацию
Страницы поиска и некоторые страницы пагинации редко дают самостоятельную ценность. Но здесь важно не перестараться: если у вас большой контентный проект, пагинация может быть полезна для обхода. Решение зависит от структуры сайта.
<?php
add_filter('wp_robots', function (array $robots) {
if (is_search()) {
$robots['noindex'] = true;
$robots['nofollow'] = true;
}
if (is_paged() && !is_archive()) {
$robots['noindex'] = true;
}
return $robots;
});Если сомневаетесь с пагинацией, не закрывайте её массово. Сначала посмотрите, какие страницы реально получают трафик и как поисковик их обходит.
Когда нужен robots.txt, а когда нет
robots.txt полезен для технических директорий, служебных параметров и файлов, которые не должны тратить краулинг. Но закрывать им всё подряд — плохая практика. Если URL уже в индексе, запрет обхода может затянуть удаление. Кроме того, robots.txt не защищает контент от просмотра пользователем, он только подсказывает роботам, что не стоит заходить.
Типичный безопасный набор для robots.txt — это запрет на служебные пути, а не на контентные страницы:
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /wp-content/uploads/private/
Disallow: /?s=
Последняя строка с поиском по сайту зависит от структуры URL. Если у вас поиск формируется иначе, проверьте фактический адрес в браузере и подставьте реальный шаблон.
Проверка результата после внедрения
После изменений не ограничивайтесь просмотром исходника в браузере. Нужно проверить и HTML, и ответ сервера, и поведение кэша.
- откройте страницу в режиме инкогнито и посмотрите исходный код;
- убедитесь, что в
<head>есть нужныйmeta name="robots"; - проверьте, не подставляет ли кэш старую версию страницы;
- в Search Console отправьте URL на повторную проверку, если он уже был в индексе;
- посмотрите, не остались ли внутренние ссылки на закрытую страницу.
Для быстрой проверки на сервере удобно использовать curl:
curl -I https://example.com/test-page/Если страница закрыта через meta robots, заголовок ответа сам по себе этого не покажет, но вы сможете быстро убедиться, что URL отдаёт 200, а не редирект или ошибку. Затем откройте HTML и проверьте наличие нужного тега.
Частые ошибки и как их исправить
Закрыли страницу в robots.txt, но она осталась в индексе
Так бывает, если поисковик уже знает URL и не может заново зайти на страницу, чтобы увидеть noindex. Исправление простое: временно уберите запрет обхода, отдайте noindex, дождитесь переобхода, затем при необходимости снова ограничьте crawl.
Тег noindex не появился из-за кэша
После правки кода или настроек очистите кэш плагина, серверный кэш и CDN. Иначе в браузере вы увидите новый шаблон, а робот — старую версию.
Случайно закрыли важные страницы
Это часто происходит при массовом фильтре по типу архива. Например, закрыли все архивы, а вместе с ними полезные страницы категорий. Перед выкладкой проверьте список URL вручную и сравните с тем, что реально должно индексироваться.
Поставили noindex и nofollow везде подряд
nofollow не нужен на каждой закрытой странице. Если вы хотите только убрать URL из индекса, достаточно noindex. Лишний nofollow может мешать передаче сигналов по внутренним ссылкам, если вы используете страницу как навигационный узел.
Практические советы по безопасности и производительности
Если закрываете от индексации служебные разделы, не полагайтесь только на SEO-сигналы. Тестовые страницы лучше удалять или ограничивать доступом, а не просто прятать от поисковиков. Для внутренних черновиков и staging-сайтов используйте базовую авторизацию или отдельную среду, а не маскировку через noindex.
С точки зрения производительности полезно не плодить архивы и таксономии, которые не используются. Если на сайте много дублей из-за тегов, архивов автора и дат, имеет смысл пересмотреть структуру контента и убрать лишние шаблоны. В некоторых проектах это проще сделать через настройки темы или SEO-плагина, чем поддерживать десятки исключений в коде.
Если вам нужен более системный контроль над дублями, архивами и техническими страницами, в экосистеме WPShop есть Clearfy Pro — он помогает управлять частью SEO- и cleanup-задач без ручного разбрасывания логики по теме. Но даже с плагином важно понимать, что именно вы закрываете и зачем.
Короткий чек-лист перед публикацией изменений
- определить, какие URL должны остаться доступными, но не индексироваться;
- решить, где нужен
noindex, а где достаточноrobots.txt; - проверить кэш и CDN;
- убедиться, что закрытые страницы не участвуют во внутренней перелинковке без необходимости;
- после обновления отправить проблемные URL на переобход в Search Console;
- через несколько дней перепроверить статус индексации и исходный код страницы.
Если держать эту схему в голове, закрытие страниц от индексации перестаёт быть лотереей. Вы управляете не только тем, что видит пользователь, но и тем, как сайт читается поисковыми роботами.