Архивы меток в WordPress часто создаются автоматически, но далеко не всегда несут ценность для поиска. На небольшом сайте они могут дублировать рубрики, а на большом — плодить тонкие страницы с одинаковыми списками записей. Если метки нужны для навигации, но не должны попадать в индекс, это лучше решать точечно: оставить страницы доступными для пользователей и одновременно поставить им noindex.
Ниже — рабочие варианты для темы и плагинов, без правки robots.txt и без отключения всего архива целиком.
Когда проблема действительно в метках
Сначала стоит убедиться, что речь не о другом типе дублей. Метки часто путают с рубриками, архивами автора и страницами пагинации. Если в индексе уже есть десятки одинаковых архивов, закрытие только меток может не дать заметного эффекта.
Признаки, что архивы меток лучше закрыть
- в поиске индексируются страницы вида
/tag/..., но они почти не получают трафик; - на одной метке висит 1–2 записи, а шаблон страницы почти не отличается от других архивов;
- метки создаются автоматически и дублируют рубрики по смыслу;
- в отчётах по индексации много страниц с низкой ценностью и одинаковыми title/description.
Если метки используются как полноценная навигация по контенту, их можно оставить открытыми, но тогда нужно следить за уникальностью заголовков и количеством записей в архиве. Если же это технический слой, закрытие от индексации обычно оправдано.
Диагностика: что именно сейчас индексируется
Перед изменениями проверьте, как WordPress и тема выводят архив меток. В некоторых темах уже есть настройка noindex для архивов, а в SEO-плагине — отдельный переключатель. Если вы добавите ещё и код, можно получить конфликт: одна часть сайта будет ставить index, другая — noindex.
Проверка вручную занимает пару минут:
- Откройте любую страницу метки в браузере.
- Посмотрите исходный код и найдите
<meta name="robots". - Проверьте, нет ли в
<head>двух разных robots-меток. - Сравните поведение главной страницы метки и её пагинации, если она есть.
Если robots-мета отсутствует, WordPress сам по себе её не добавляет. Тогда решение нужно реализовать либо через SEO-плагин, либо через код темы/мини-плагина.
Пошаговое решение через код
Самый предсказуемый способ — добавить фильтр wp_robots и закрыть только архивы меток. Это не ломает страницу для пользователей и не требует редактировать шаблон архива.
<?php
add_filter( 'wp_robots', function( array $robots ) {
if ( is_tag() ) {
$robots['noindex'] = true;
$robots['nofollow'] = true;
}
return $robots;
} );Этот вариант работает в современных версиях WordPress, где robots-мета собирается через API wp_robots. Если у вас уже установлен SEO-плагин, сначала проверьте, не делает ли он то же самое. Иначе на странице может появиться дублирующая разметка.
Если нужно закрыть только часть архивов меток
Иногда закрывать все метки нельзя: например, часть из них реально используется как посадочные страницы. Тогда можно отфильтровать архив по названию или по количеству записей. Ниже пример, который закрывает только пустые или почти пустые метки.
<?php
add_filter( 'wp_robots', function( array $robots ) {
if ( is_tag() ) {
$term = get_queried_object();
if ( $term instanceof WP_Term && (int) $term->count < 3 ) {
$robots['noindex'] = true;
$robots['nofollow'] = true;
}
}
return $robots;
} );Логика простая: если метка почти не несёт контента, индексировать её обычно нет смысла. Но порог 3 — это не универсальное правило, а рабочий ориентир. На сайте с длинными статьями и хорошей перелинковкой он может быть другим.
Альтернатива через SEO-плагин
Если сайт уже использует SEO-плагин, настройка через интерфейс часто удобнее для редакторов. Но здесь важно не смешивать подходы: либо плагин управляет robots-метками, либо код. Два источника настроек — частая причина конфликтов.
| Подход | Плюсы | Минусы |
|---|---|---|
| SEO-плагин | Удобно менять без кода, видно редактору | Зависит от конкретного плагина и его шаблонов |
Код через wp_robots | Точечный контроль, меньше лишней логики | Нужно аккуратно вносить изменения и тестировать тему |
| robots.txt | Просто закрыть обход | Не решает задачу индексации так надёжно, как noindex |
Для архивов меток robots.txt обычно не лучший инструмент. Если страница уже попала в индекс, запрет обхода не гарантирует её исчезновение. Для этого нужен именно noindex и последующая переобходка страниц поисковым роботом.
Проверка результата после внедрения
После изменения не ограничивайтесь просмотром кода страницы. Нужно проверить, что WordPress действительно отдаёт нужную robots-метку и что она не конфликтует с кэшем.
- Откройте архив метки в режиме инкогнито.
- Проверьте исходный код на наличие
noindexиnofollow. - Если используется кэш-плагин, очистите кэш страницы и объектный кэш, если он есть.
- Проверьте несколько разных меток: пустую, обычную и с пагинацией.
- Убедитесь, что на страницах записей robots-мета не изменилась случайно.
Если в исходнике всё правильно, но поисковик продолжает показывать старую версию, это нормально на коротком промежутке: поисковая система должна переобойти страницу. Для ускорения можно отправить URL на повторную проверку в панели вебмастера.
Частые ошибки и как их исправить
Добавили noindex, но страница всё равно в индексе
Это обычно не ошибка кода, а вопрос времени. Поисковик не удаляет URL мгновенно. Если страница давно в индексе, ей нужно дать время на переобход. Ускоряет процесс только корректная robots-метка и отсутствие блокировки обхода в robots.txt.
Поставили запрет в robots.txt вместо noindex
Такой вариант не всегда помогает убрать уже проиндексированную страницу. Более того, если робот не может зайти на страницу, он не увидит мета-тег noindex. Для архивов меток это частая и лишняя ошибка.
Получили две robots-метки на одной странице
Это признак конфликта между темой, SEO-плагином и кастомным кодом. Оставьте только один источник управления. Если плагин уже умеет закрывать архивы меток, уберите фильтр из темы или мини-плагина.
Закрыли метки, но сломали внутреннюю навигацию
Само по себе noindex навигацию не ломает. Проблема обычно в том, что вместе с ним отключают вывод ссылок на метки в шаблоне. Если метки нужны пользователям, оставьте ссылки на месте и меняйте только robots-метку.
Безопасность и производительность
Код лучше не вставлять прямо в functions.php активной темы, если сайт часто обновляется или тема меняется. Практичнее вынести фильтр в небольшой mu-plugin или в отдельный мини-плагин. Так решение не потеряется после обновления темы.
<?php
/**
* Plugin Name: Tag Archives Robots Control
*/
add_filter( 'wp_robots', function( array $robots ) {
if ( is_tag() ) {
$robots['noindex'] = true;
$robots['nofollow'] = true;
}
return $robots;
} );Если на сайте много архивов и сложная SEO-логика, полезно держать такие правила в одном месте. В проектах, где уже используется Clearfy Pro, часть задач по чистке дублей и техническим настройкам можно закрыть через интерфейс плагина, но всё равно стоит проверить, не дублируется ли логика в теме.
Что проверить после публикации изменений
- на архиве метки есть только одна robots-метка;
- в ней присутствует
noindex; - страницы записей не получили лишних ограничений;
- кэш очищен и отдаёт новую версию HTML;
- в панели вебмастера страница доступна для переобхода;
- внутренние ссылки на метки по-прежнему работают.
Если задача стоит именно в снижении дублей и технической чистке, а не в ручной настройке каждой страницы, такой подход обычно проще сопровождать, чем править шаблоны архива или закрывать всё через robots.txt.