Как отключить архивы дат WordPress и убрать лишние страницы из индекса

|

Архивы по датам в WordPress часто остаются включёнными «по умолчанию», хотя на реальном сайте они не дают пользы ни пользователям, ни поиску. Если у вас нет редакционного архива по месяцам или годам, такие страницы обычно только плодят дубли: списки записей повторяют категории, теги и главную ленту, а в индексе появляются URL вида /2024/08/ или /2023/.

Задача здесь не просто «спрятать» архивы, а аккуратно убрать их из индекса и не сломать навигацию, если где-то они ещё используются. Ниже — рабочие варианты: через код, через плагин и через проверку результата в Search Console и на самом сайте.

Когда архивы дат действительно мешают

Проблема обычно заметна на сайтах с небольшим количеством контента или с сильной категоризацией. Архив по месяцу открывается, но внутри почти всегда тот же набор материалов, что уже доступен в рубриках и на странице блога. Для поисковика это слабая страница, а для владельца сайта — лишний слой индексации и лишние обходы.

Есть и другой сценарий: архивы дат не нужны пользователям, но ссылки на них уже попали в sitemap, внутренние блоки или старые шаблоны темы. Тогда простое удаление шаблона без редиректов и проверки даёт 404 или цепочку странных переходов.

Диагностика проблемы перед изменениями

Сначала проверьте, действительно ли архивы дат открыты и индексируются. Это можно сделать без доступа к серверу:

Если архивы уже отдают noindex, но продолжают появляться в отчётах, проблема может быть не в WordPress, а в старых ссылках, внешних упоминаниях или кеше поисковика. Тогда нужно не только закрыть страницы, но и убрать источник их повторного обнаружения.

Как отключить архивы дат: сравнение подходов

Есть три нормальных пути. Выбор зависит от того, нужен ли вам контроль на уровне темы, удобство через админку или быстрый точечный фикс.

ПодходКогда подходитПлюсыМинусы
Код в functions.php или мини-плагинеНужен точный контроль без лишних зависимостейПрозрачно, быстро, без лишнего UIНужно аккуратно обновлять тему или использовать mu-plugin
SEO-плагин с настройками архивовУже есть плагин для технической SEO-настройкиУдобно, меньше кодаНе всегда есть отдельная настройка именно для дат
Редирект на категории или главнуюАрхивы уже в индексе и их надо убрать из обходаСнижает риск 404 и мусорных URLНужно не переборщить, чтобы не сломать полезные ссылки

Если у вас кастомная тема или вы не хотите зависеть от обновлений, лучше вынести решение в маленький плагин или mu-plugin. Так вы не потеряете настройку при смене темы.

Пошаговое решение через код

Ниже вариант, который отключает архивы дат для обычных запросов и добавляет noindex для поисковиков. Это не выдуманный хук: используется стандартный фильтр wp_robots и проверка архивных запросов через is_date().

<?php
add_filter( 'wp_robots', function( array $robots ) {
    if ( is_date() ) {
        $robots['noindex'] = true;
        $robots['follow']   = true;
    }

    return $robots;
} );

add_action( 'template_redirect', function() {
    if ( is_date() ) {
        wp_safe_redirect( home_url( '/' ), 301 );
        exit;
    }
} );

Этот вариант уместен, если архивы дат вам точно не нужны как посадочные страницы. Если же вы хотите оставить их доступными для пользователей, но убрать из индекса, уберите блок с редиректом и оставьте только wp_robots.

Для более аккуратной реализации лучше оформить это как маленький mu-plugin, чтобы код не зависел от темы:

<?php
/*
Plugin Name: Disable Date Archives
*/

add_filter( 'wp_robots', function( array $robots ) {
    if ( is_date() ) {
        $robots['noindex'] = true;
        $robots['follow']   = true;
    }

    return $robots;
} );

Если нужен редирект не на главную

Иногда логичнее отправлять архивы дат на ближайшую рубрику или на страницу блога, а не на главную. Тогда редирект должен быть осмысленным: например, на страницу новостей или на общий архив записей. Не делайте массовый 301 на случайную категорию — это выглядит как мягкая ошибка, а не как нормальная миграция.

<?php
add_action( 'template_redirect', function() {
    if ( is_date() ) {
        $target = get_permalink( get_option( 'page_for_posts' ) );

        if ( ! $target ) {
            $target = home_url( '/' );
        }

        wp_safe_redirect( $target, 301 );
        exit;
    }
} );

Как сделать это через плагин без кода

Если на сайте уже стоит SEO-плагин или плагин для технической чистки, проверьте, нет ли у него настроек архивов. В некоторых случаях проще отключить архивы дат в интерфейсе, чем поддерживать собственный код. Это особенно удобно для редакторов, которым нужен доступ к настройке без правки файлов.

Если в вашем наборе уже используется Clearfy Pro, проверьте разделы, связанные с архивами, дублями и технической чисткой. Но даже при наличии плагина всё равно нужно смотреть, что именно он делает: только ставит noindex или ещё и меняет шаблон ответа.

Что проверить после внедрения

После изменения не ограничивайтесь открытием страницы в браузере. Нужна короткая, но конкретная проверка:

Для быстрой проверки статуса удобно использовать curl:

curl -I https://example.com/2024/08/

Если вы настроили редирект, в ответе должен быть 301 и заголовок Location с целевым URL. Если оставили страницу без редиректа, проверьте наличие noindex в HTML-ответе, а не только визуально в браузере.

Частые ошибки и как их исправить

Самая распространённая ошибка — закрыть архивы дат только в robots.txt. Это не решает проблему индексации, если URL уже известен поисковику или на него ведут внутренние ссылки. Для удаления из индекса нужен либо noindex, либо корректный редирект, либо отдача 404/410 в действительно удалённом сценарии.

Вторая ошибка — ставить 301 на главную для всех архивов без разбора. Если у вас есть полезные архивы по году для редакции или для старых материалов, такой редирект ломает смысл навигации. Сначала решите, нужен ли архив как страница для людей, и только потом выбирайте целевой URL.

Третья ошибка — менять шаблон темы, не проверив, не генерирует ли SEO-плагин собственный noindex или canonical. В итоге получается конфликт: один слой говорит поисковику одно, другой — другое. После внедрения всегда смотрите исходный код страницы и HTTP-ответ.

Типичные причины, почему архивы всё ещё в индексе

Безопасность и производительность

Если вы вносите код, не редактируйте functions.php на живом сайте без резервной копии. Ошибка в одном символе может положить фронтенд или админку. Для таких задач лучше использовать дочернюю тему или mu-plugin. Это особенно важно, если архивы отключаются на нескольких сайтах с похожей структурой.

С точки зрения производительности сам по себе фильтр wp_robots почти ничего не стоит. Более заметную нагрузку создают лишние обходы поисковиков и генерация бесполезных страниц. Поэтому после отключения архивов имеет смысл проверить внутренние ссылки и убрать их из шаблонов, если они больше не нужны.

Если вам нужно одновременно подчистить и другие технические дубли, имеет смысл смотреть на комплексную настройку SEO и технической чистки сайта. Но не смешивайте в один коммит всё подряд: сначала отключите архивы дат, потом отдельно проверьте sitemap, canonical и внутренние ссылки.

В итоге рабочая схема простая: определить, нужны ли архивы дат пользователям; выбрать либо noindex, либо редирект, либо полное отключение; затем проверить ответ сервера, исходный код и индексацию в Search Console. Именно эта последовательность обычно даёт предсказуемый результат без побочных эффектов.

Как отключить архивы дат WordPress и убрать лишние страницы из индекса
05.09.2026
Как закрыть поисковые страницы WordPress от индексации без поломки внутреннего поиска
26.08.2026
Как закрыть от индексации страницы авторов WordPress без потери нужных материалов
30.08.2026
Как отключить emoji в WordPress и убрать лишний код из head
01.09.2026
Как отключить XML-RPC в WordPress без поломки приложения и плагинов
23.08.2026
×
-15%
на премиум-тему
Reboot

Создай сайт мечты
на WordPress!

Купить со скидкой »