Проблема с тонкими архивными страницами в WordPress обычно всплывает не сразу. Сайт уже в индексе, а потом в отчётах появляются страницы авторов без контента, архивы по датам, пустые страницы таксономий, пагинация с почти одинаковыми заголовками. На практике это не «ошибка SEO», а техническая настройка: поисковику нужно явно показать, какие архивы полезны, а какие лучше не индексировать.
Ниже разберём рабочую схему без выдуманных хуков и без магии: что диагностировать, как закрыть лишние архивы через noindex и canonical, чем это отличается от robots.txt и как проверить, что изменения реально сработали.
Когда архивы становятся проблемой
Не каждый архив нужно закрывать. Категории с нормальным текстом, полезной навигацией и живой выдачей могут приносить трафик. Проблемными обычно становятся страницы, где почти нет уникального содержимого, а URL создаётся только ради структуры сайта.
Типичные кандидаты на закрытие
- архивы авторов на сайтах с одним автором;
- архивы по датам, если вы не публикуете контент как новостную ленту;
- страницы тегов, которые дублируют категории;
- пустые или почти пустые страницы таксономий;
- страницы пагинации, если они не несут самостоятельной ценности;
- служебные архивы, которые были включены темой или плагином «по умолчанию».
Если такие страницы уже индексируются, поисковик видит много похожих URL и тратит обход на второстепенные документы. Для небольшого сайта это особенно заметно: важные статьи получают меньше внимания, чем архивы без смысла.
Диагностика: что именно закрывать
Перед изменениями проверьте, какие архивы реально попали в индекс и какие из них дублируют друг друга. Самый простой способ — открыть несколько URL и посмотреть исходный код страницы.
Ищите три вещи:
<meta name="robots" content="noindex,follow">или его отсутствие;<link rel="canonical" href="...">;- есть ли на странице уникальный текст, а не только список записей.
Если архив выглядит как «пустая оболочка» и не даёт пользователю ничего, кроме списка постов, его обычно имеет смысл закрывать от индексации. Но закрывать нужно аккуратно: не через robots.txt, а через мета-теги и canonical, иначе поисковик может продолжить хранить URL в индексе без понимания, что это второстепенная страница.
Что лучше: плагин, код или robots.txt
Для большинства сайтов есть три подхода. Они не взаимозаменяемы, и у каждого свой компромисс.
| Подход | Когда использовать | Плюсы | Минусы |
|---|---|---|---|
| Плагин SEO | Если уже используете Yoast SEO, Rank Math или похожее решение | Быстро, без правки темы, удобно для редактора | Лишняя зависимость, настройки могут конфликтовать с темой |
| Код в теме или mu-plugin | Если нужна точечная логика и контроль | Прозрачно, предсказуемо, можно закрыть только нужные архивы | Нужно аккуратно тестировать после обновлений |
| robots.txt | Только для грубого ограничения обхода | Просто | Не решает задачу индексации корректно, canonical не заменяет |
Если цель — именно убрать тонкие архивы из индекса, robots.txt сам по себе не лучший инструмент. Он ограничивает обход, но не даёт нормального сигнала о канонической версии. Для SEO-задачи обычно нужен noindex и, где уместно, canonical на более полезную страницу.
Пошаговое решение через код
Ниже пример для дочерней темы или mu-plugin. Он закрывает архивы авторов и даты, а также ставит noindex на страницы тегов с малым количеством записей. Логику можно адаптировать под свой сайт.
<?php
add_filter('wp_robots', function ($robots) {
if (is_author() || is_date()) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
if (is_tag()) {
$term = get_queried_object();
if ($term instanceof WP_Term) {
$count = (int) $term->count;
if ($count < 5) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
}
}
return $robots;
});
add_filter('get_canonical_url', function ($canonical, $post) {
if (is_author() || is_date()) {
return home_url('/');
}
return $canonical;
}, 10, 2);Что здесь важно:
wp_robots— штатный фильтр WordPress для robots-мета;is_author()иis_date()позволяют закрыть архивы точечно;- для тегов используется порог по количеству записей, но число нужно подбирать под свой сайт, а не копировать вслепую;
get_canonical_urlпомогает убрать каноникал на бесполезных архивных страницах.
Если у вас уже стоит SEO-плагин, проверьте, не переопределяет ли он robots и canonical. Два источника правды на одной странице — частая причина путаницы.
Если архив нужно оставить, но ослабить его вес
Иногда архив полезен для навигации, но не должен конкурировать с посадочными страницами. Тогда можно оставить его доступным, но убрать из индекса только отдельные типы архивов. Например, закрыть даты, но оставить категории. Это лучше, чем рубить всё подряд.
<?php
add_filter('wp_robots', function ($robots) {
if (is_date()) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
});Проверка результата после внедрения
После правки не ограничивайтесь открытием страницы в браузере. Нужно проверить именно HTML и заголовки ответа.
- Откройте архив и посмотрите исходный код страницы.
- Убедитесь, что в
<head>появился корректныйnoindex,follow. - Проверьте, что canonical ведёт на нужную страницу, а не на сам архив.
- Если используете SEO-плагин, убедитесь, что он не выводит второй canonical.
- Прогоните URL через инструменты проверки индексации в поисковой системе.
Полезно также проверить ответ сервера через curl, если вы отлаживаете на уровне шаблона или плагина:
curl -I https://example.com/author/admin/
curl -s https://example.com/author/admin/ | grep -i robotsЕсли в исходнике есть noindex, но в кэше CDN или на стороне плагина кеширования показывается старая версия, сначала очистите кэш. Иначе вы будете проверять не то, что реально отдает сервер.
Частые ошибки и как их исправить
Закрыли архив в robots.txt вместо noindex
Это распространённая ошибка. Страница может остаться в индексе как URL без нормального сигнала о канонической версии. Для SEO-задачи лучше использовать мета-robots, а не только запрет обхода.
Поставили noindex на все архивы подряд
Так можно случайно убрать из индекса полезные категории. Если категория — это полноценная посадочная страница с текстом, фильтрацией и внутренними ссылками, её не стоит закрывать без причины.
Забыли про плагин SEO
Если Yoast SEO, Rank Math или другой плагин уже управляет robots, ваш код может не сработать так, как ожидается. Проверьте настройки архива в самом плагине и убедитесь, что нет конфликта по canonical.
Использовали слишком жёсткий canonical
Иногда canonical на главную ставят на все архивы без разбора. Это допустимо только если архив действительно не нужен как отдельная страница. В остальных случаях лучше оставить canonical на саму страницу или закрыть её через noindex.
Не учли пагинацию
Если у архива есть страницы /page/2/, /page/3/ и дальше, проверьте, как они индексируются. Иногда проблема не в первом архиве, а именно в хвосте пагинации, где контент почти повторяется.
Практические советы по безопасности и производительности
Любые изменения в шаблоне или в mu-plugin лучше делать через дочернюю тему или отдельный мини-плагин. Так вы не потеряете правки после обновления темы. Перед выкладкой проверьте код на тестовой копии сайта.
Если на сайте много архивных страниц и вы хотите не только закрыть дубли, но и почистить технический шум, имеет смысл посмотреть в сторону инструментов, которые помогают управлять индексируемыми дублями и служебными страницами. Например, у Clearfy Pro есть функции для чистки сайта и контроля SEO-настроек; если используете подобный плагин, сверяйте его поведение с кодом, чтобы не получить двойную логику. Ссылка для ориентира: Clearfy Pro.
Ещё один практический момент: не держите в одном месте сразу несколько решений для robots/canonical, если не понимаете порядок их выполнения. Чем меньше слоёв, тем проще отлаживать.
Мини-чек-лист перед публикацией
- Определены только те архивы, которые действительно нужно закрыть.
- Проверено, что тема или SEO-плагин не переопределяют robots.
- В исходнике страницы есть один корректный canonical.
- После очистки кэша страница отдаёт актуальный HTML.
- Проверка в поисковых инструментах показывает нужный статус.
- Полезные категории и посадочные страницы не закрыты случайно.
Если после внедрения архивы всё ещё появляются в индексе, это не всегда ошибка настройки. Поисковику нужно время, чтобы переобойти URL и обновить сигнал. В такой ситуации важнее не добавлять новые костыли, а проверить, что страница стабильно отдаёт нужные мета-теги и не меняет их из-за кэша или плагина.