Служебные страницы в WordPress часто попадают в индекс не потому, что сайт «плохо настроен», а из-за обычной путаницы: архивы тегов, страницы поиска, авторские архивы, черновые разделы, дубли пагинации. Если это не контролировать, поисковик начинает тратить краулинговый бюджет на мусорные URL, а в выдаче появляются страницы, которые вы не планировали продвигать.
Ниже — рабочая схема без плагинов: где именно закрывать страницы, как не сломать каноникал и как проверить, что поисковый робот действительно увидит нужный сигнал.
Какие страницы обычно нужно закрывать
Не стоит ставить noindex на всё подряд. В WordPress чаще всего закрывают только технические и слабые по смыслу страницы:
- страницы поиска по сайту;
- архивы тегов, если они не дают самостоятельной ценности;
- авторские архивы на небольших сайтах;
- страницы пагинации служебных архивов;
- внутренние страницы предпросмотра, тестовые шаблоны, временные разделы;
- результаты фильтров, если они создают дубли контента.
Если страница полезна пользователю и может собирать трафик, закрывать её от индексации не нужно. Например, категории с нормальной структурой и уникальным текстом лучше оставить открытыми.
Диагностика: почему страница уже в индексе
Перед правкой проверьте, откуда поисковик вообще взял URL. Обычно проблема видна в одном из трёх мест:
- в коде страницы нет мета-тега
noindex; - страница доступна по нескольким адресам, а canonical указывает не туда;
- в sitemap попадают URL, которые вы не хотите индексировать.
Откройте проблемную страницу и посмотрите исходный код. Если у вас нет SEO-плагина, WordPress сам не добавит noindex для служебных URL. Значит, сигнал нужно добавить вручную.
Что проверить в первую очередь
- есть ли в
<head>тег<meta name="robots" content="noindex,follow">; - не закрыта ли страница случайно через
robots.txtвместо мета-тега; - не ведёт ли canonical на другой URL без причины;
- не попадает ли страница в XML-карту сайта;
- не создаёт ли тема или плагин собственный вывод архивов.
Пошаговое решение через wp_head
Самый надёжный способ — добавить условный вывод мета-тега в head. Так вы управляете индексацией на уровне шаблона и не зависите от лишних плагинов.
Пример ниже закрывает поиск, архивы тегов и авторов, а также отдельные страницы по ID. Код можно положить в functions.php дочерней темы или в собственный мини-плагин.
<?php
add_action( 'wp_head', function () {
if ( is_search() || is_tag() || is_author() ) {
echo '<meta name="robots" content="noindex,follow" />' . "\n";
}
// Закрыть конкретные страницы по ID.
$noindex_ids = array( 12, 34, 56 );
if ( is_page( $noindex_ids ) ) {
echo '<meta name="robots" content="noindex,follow" />' . "\n";
}
}, 1 );Почему здесь именно noindex,follow: страница не должна попадать в индекс, но ссылки с неё могут передавать сигнал дальше. Для служебных архивов это обычно безопаснее, чем полностью отрезать их от обхода.
Если нужно закрыть только часть архивов
Иногда закрывать все теги или все авторские архивы нельзя. Тогда используйте более точное условие. Например, можно закрыть только пустые теги или архивы конкретного автора:
<?php
add_action( 'wp_head', function () {
if ( is_tag() ) {
$term = get_queried_object();
if ( $term instanceof WP_Term && (int) $term->count < 3 ) {
echo '<meta name="robots" content="noindex,follow" />' . "\n";
}
}
} );Такой подход полезен для сайтов, где часть таксономий реально работает на SEO, а часть создаётся автоматически и не несёт смысла.
Что делать с canonical и sitemap
Один noindex не всегда решает задачу, если в sitemap остаются URL, которые вы хотите убрать из индекса. Поисковик может продолжать заходить на них, потому что карта сайта сигнализирует: «эта страница важна».
Проверьте два момента:
- страница не должна быть в XML sitemap;
- canonical должен указывать на саму страницу, если это нормальная страница, или на основную версию, если это дубль.
Если у вас кастомный шаблон или собственная генерация sitemap, исключайте служебные URL на этапе формирования списка записей. Для обычных страниц WordPress это проще сделать через фильтры плагина SEO, если он есть, но в рамках этой статьи мы не опираемся на него.
Сравнение подходов: плагин, код, robots.txt
| Подход | Когда подходит | Минус |
|---|---|---|
Код в wp_head | Нужно закрыть несколько типов страниц точечно | Требует поддержки в теме или мини-плагине |
| SEO-плагин | Нужен интерфейс для редактора и массовые настройки | Лишняя зависимость и риск конфликтов |
robots.txt | Нужно ограничить обход, а не индексацию как таковую | Не гарантирует удаление URL из индекса |
Важно не путать robots.txt и noindex. Первый ограничивает обход, второй — индексацию. Если страница уже в поиске, чаще нужен именно мета-тег или заголовок X-Robots-Tag.
Проверка результата после внедрения
После правки не полагайтесь на «вроде работает». Проверьте результат вручную и через инструменты поисковиков.
- Откройте страницу в браузере и посмотрите исходный код.
- Убедитесь, что в
<head>появилсяnoindex,follow. - Проверьте, не выводится ли этот тег на страницах, которые должны индексироваться.
- Если страница уже в индексе, отправьте её на переобход через инструменты вебмастера.
- Через несколько дней проверьте статус: исключена ли страница из индекса или помечена как «запрещено к индексации».
Для быстрой локальной проверки можно использовать curl и посмотреть HTML без браузерного кэша:
curl -s https://example.com/sample-page/ | grep -i robotsЕсли сайт стоит за кэширующим плагином или серверным кешем, после изменений очистите кеш. Иначе вы будете смотреть на старую версию страницы и решите, что код не сработал.
Частые ошибки и как их исправить
Ставят noindex через CSS или JavaScript
Поисковик не обязан исполнять ваш фронтенд-код так, как это делает браузер. Метка должна быть в HTML-ответе или в HTTP-заголовке.
Закрывают страницу в robots.txt и ждут удаления из индекса
Если URL уже известен поисковику, одного запрета на обход может быть недостаточно. Для удаления из выдачи нужен именно сигнал noindex или корректная переадресация.
Ставят noindex на все архивы подряд
Так можно случайно убрать из индекса полезные страницы категорий. Сначала оцените, какие архивы реально дают трафик и внутреннюю перелинковку.
Забывают про дубли с параметрами
Если сайт создаёт URL с параметрами сортировки, фильтрации или поиска, закрывайте не только базовую страницу, но и её дубли. Иначе поисковик продолжит индексировать мусорные варианты.
Безопасность и производительность
Чем меньше логики вы размазываете по шаблонам, тем проще сопровождать сайт. Если решение нужно не на один день, лучше вынести его в небольшой mu-plugin или отдельный мини-плагин, а не править родительскую тему.
Ещё один практический момент: не добавляйте условные проверки в десятки файлов темы. Один аккуратный хук в functions.php или в мини-плагине проще отключить, протестировать и перенести на другой проект.
Если вам нужна более широкая чистка дублей, служебных страниц и лишних мета-данных, эту задачу можно частично закрыть инструментами вроде Clearfy Pro, но для точечного контроля индексации ручной код всё равно полезен: он прозрачнее и предсказуемее.
Когда лучше не трогать индексацию вручную
Если вы не уверены, зачем закрываете страницу, сначала проверьте её реальную роль в структуре сайта. Иногда проблема не в индексации, а в слабом контенте, плохой перелинковке или дублирующих заголовках. В таком случае noindex только маскирует более глубокую ошибку.
Рабочее правило простое: закрывайте то, что не должно быть в поиске по смыслу, а не то, что «не нравится в отчёте». Тогда настройка не начнёт конфликтовать с SEO и не создаст лишних сюрпризов после следующего обновления темы.