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

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

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

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

Проблема не в самом факте существования архива, а в том, что он начинает конкурировать с основными страницами сайта. Это особенно заметно, если:

  • на сайте мало записей, и архив месяца почти пустой;
  • записи уже есть в рубриках, тегах и на главной, а архив дат ничего нового не добавляет;
  • в индексе появляются десятки URL с одинаковыми сниппетами и очень похожим контентом;
  • внутренние ссылки ведут и на записи, и на архивы, хотя архивы не нужны пользователю;
  • в шаблоне темы есть ссылки на архивы дат в блоках «опубликовано» или в хлебных крошках.

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

Диагностика: откуда берутся архивы дат

Сначала проверьте, что именно открывается у вас на сайте. В WordPress архивы дат могут появляться из нескольких мест: из стандартных шаблонов темы, из виджетов, из хлебных крошек, из SEO-плагина или из ручных ссылок в контенте.

Быстрая проверка в браузере и в коде страницы

Откройте несколько URL вручную:

  • /2024/;
  • /2024/05/;
  • /2024/05/15/.

Если страницы открываются и отдают код 200, значит архивы доступны. Дальше посмотрите исходный код страницы и найдите ссылки на них. Часто они сидят в блоке метаданных записи или в сайдбаре.

Если есть доступ к консоли, можно быстро проверить заголовок ответа:

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

Важный момент: если архивы уже попали в индекс, одного скрытия в шаблоне мало. Нужно либо отдать noindex, либо закрыть страницу редиректом на более подходящий раздел, либо убрать сам маршрут на уровне темы/плагина.

Как отключить архив дат: три рабочих подхода

Универсального варианта нет. Выбор зависит от того, хотите ли вы сохранить URL для старых ссылок, или архивы вообще не нужны.

СпособЧто делаетКогда использоватьКомпромисс
Редирект 301Перенаправляет архивы на главную или рубрикуЕсли архивы точно не нужны и уже есть внешние ссылкиНужно аккуратно выбрать целевую страницу
noindexОставляет страницу доступной, но просит не индексироватьЕсли архив нужен для пользователей, но не для поискаURL остаётся доступным и может сканироваться
Удаление маршрута/ссылокУбирает ссылки и доступ из темыЕсли архивы нигде не используютсяСтарые URL могут остаться в индексе до переобхода

Вариант 1: редирект архивов дат через functions.php

Если архивы дат вам не нужны вообще, можно перенаправить их на главную или на страницу блога. Для этого используйте is_date() и wp_redirect(). Код лучше добавлять в дочернюю тему или в небольшой mu-plugin, а не в основной файл темы.

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

Если у вас есть отдельная страница записей, логичнее вести туда:

add_action( 'template_redirect', function () {
    if ( is_date() ) {
        $posts_page_id = (int) get_option( 'page_for_posts' );
        $target = $posts_page_id ? get_permalink( $posts_page_id ) : home_url( '/' );
        wp_redirect( $target, 301 );
        exit;
    }
} );

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

Вариант 2: оставить страницу, но закрыть от индексации

Если архив по датам нужен как навигация для посетителей, но не нужен в поиске, лучше не ломать URL, а поставить noindex. Это можно сделать через SEO-плагин, если он умеет управлять мета-роботами для архивов, или через код.

Для WordPress-подхода через фильтр wp_robots можно добавить noindex на архивы дат:

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

    return $robots;
} );

Это не удаляет страницу из обхода сразу, но даёт поисковику понятный сигнал. Такой способ полезен, если вы не хотите терять архив как пользовательскую навигацию, но не хотите видеть его в выдаче.

Вариант 3: убрать ссылки и шаблон архива дат

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

<?php
$time_string = '<time class="entry-date published" datetime="' . esc_attr( get_the_date( DATE_W3C ) ) . '">' . esc_html( get_the_date() ) . '</time>';
echo $time_string;
?>

Здесь дата остаётся на странице, но не ведёт на архив. Это полезно, если вы хотите сохранить информацию о публикации, но не плодить переходы на календарные страницы.

Пошаговое решение без лишнего риска

  1. Определите, нужен ли архив пользователю. Если нет — выбирайте 301-редирект. Если нужен — оставляйте URL, но ставьте noindex.
  2. Проверьте тему. Найдите в шаблонах ссылки на get_day_link(), get_month_link() и похожие функции.
  3. Выберите один способ, а не несколько сразу. Не ставьте одновременно редирект, noindex и удаление ссылок без понимания, что вы тестируете.
  4. Сделайте правку в дочерней теме или mu-plugin. Так обновление темы не затрёт изменения.
  5. Очистите кеш. Если стоит серверный кеш, плагин кеширования или CDN, старые страницы могут продолжать отдаваться ещё какое-то время.
  6. Проверьте ответ сервера и мета-роботы. Убедитесь, что архивы либо отдают 301, либо содержат noindex.

Как проверить, что всё сработало

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

Проверка HTTP-ответа

Если вы ставили редирект, архив должен отдавать 301, а не 200:

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

В ответе ищите строку HTTP/2 301 или HTTP/1.1 301 Moved Permanently и заголовок Location с нужным адресом.

Проверка мета-роботов

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

Проверка в поисковой системе

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

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

  • Ставят 301 на главную для всех архивов без разбора. Если на архивы есть внешние ссылки, лучше вести на близкую по смыслу страницу, а не на общий вход.
  • Оставляют архивы открытыми и надеются, что поисковик сам их проигнорирует. Обычно это не работает: URL продолжает сканироваться и может попадать в индекс.
  • Добавляют noindex, но не убирают ссылки из темы. В итоге бот всё равно тратит обход на ненужные страницы.
  • Правят шаблон в родительской теме. После обновления изменения исчезают.
  • Не чистят кеш. Пользователь и бот продолжают видеть старую версию страницы, хотя код уже поменяли.
  • Путают архив дат с архивом записей. Если у сайта есть отдельная страница блога, её трогать не нужно.

Что делать, если архив дат нужен только для части сайта

Иногда полностью отключать архивы не хочется: например, на сайте есть раздел новостей, где дата важна, а остальные материалы лучше не привязывать к календарю. В таком случае не отключайте всё подряд. Проще ограничить вывод ссылок только в нужном шаблоне или для конкретного типа записей.

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

Практика по безопасности и производительности

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

Если вы работаете через SEO-плагин, не включайте несколько механизмов одновременно без необходимости. Например, редирект на уровне PHP и отдельное правило в плагине могут конфликтовать и давать петлю или неожиданный ответ сервера. Сначала выберите один способ, потом проверьте его в браузере и через curl.

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

Короткий чек-лист перед публикацией правки

  • архивы дат действительно не нужны пользователям;
  • выбрано одно решение: 301, noindex или удаление ссылок;
  • правка внесена в дочернюю тему или mu-plugin;
  • кеш очищен на всех уровнях;
  • URL архивов проверены через curl -I или аналогичный инструмент;
  • в исходном коде нет конфликтующих указаний для роботов;
  • внутренние ссылки на даты убраны или оставлены осознанно.

Если после этого архивы всё ещё появляются в поиске, проблема обычно не в WordPress как таковом, а в том, что где-то осталась старая ссылка, кеш или конфликтующее правило индексации. В таких случаях проще идти от ответа сервера и исходного кода, чем искать причину только в админке.

}
Как удалить кеш и оптимизировать WordPress без плагинов
08.09.2026
WooCommerce: изменение способов оплаты по ролям пользователей
15.09.2026
Как создать динамический фильтр по таксономии в WordPress: практические примеры и код
15.09.2026
Как использовать WP8 для создания автоматических задач в WordPress
08.09.2026
Оптимизация AJAX запросов в WordPress: эффективные методы и примеры кода
08.09.2026
×
-15%
на премиум-тему
Bono

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

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