Архивы по датам в WordPress часто живут своей жизнью: они индексируются, дублируют логику рубрик, собирают тонкий контент и создают лишние URL в обход реальной структуры сайта. При этом полностью рубить архивы «в лоб» опасно — можно сломать навигацию, хлебные крошки или получить 404 там, где шаблон темы ожидает существующий архив.
Ниже — рабочий сценарий: как отключить архивы дат, оставить записи доступными для поиска и не испортить техническое состояние сайта.
Когда архивы дат действительно мешают
Сначала проверьте, что именно у вас происходит. Архивы дат не всегда нужно отключать: на новостных сайтах и в блогах с сильной временной привязкой они могут быть полезны. Но если контент evergreen, а страницы вида /2024/05/ или /2024/05/12/ дают мало смысла, они обычно только размазывают вес и плодят дубли.
Типичные признаки проблемы
- в индексе есть страницы архивов по годам, месяцам или дням, но они почти не получают трафик;
- в выдаче видны архивы вместо более полезных страниц рубрик или записей;
- в отчётах краулинга много URL с датами, которые не несут ценности;
- тема или плагин выводят ссылки на архивы дат в сайдбаре, футере или хлебных крошках;
- после закрытия архивов появляются 404, потому что шаблон или меню всё ещё на них ссылаются.
Что проверить до изменений
- Есть ли на сайте ссылки на архивы дат в меню, виджетах, блоках или шаблонах.
- Используются ли архивы дат в хлебных крошках.
- Есть ли отдельные посадочные страницы, которые уже закрывают ту же смысловую нагрузку.
- Не завязаны ли на архивы какие-то внутренние фильтры или кастомные шаблоны.
Как отключить архивы дат: три рабочих подхода
Выбор зависит от того, что именно вам нужно: убрать URL из индекса, отдавать 404/410 или просто не показывать ссылки в интерфейсе. Для большинства сайтов достаточно закрыть архивы от индексации и убрать их из навигации. Если архивы не нужны вообще, можно отключить их на уровне шаблона и редиректов.
| Подход | Что делает | Когда выбирать | Компромисс |
|---|---|---|---|
| Плагин SEO/чистки | Закрывает архивы, управляет мета-тегами и иногда хлебными крошками | Если нужен быстрый и безопасный способ без правки темы | Зависимость от плагина и его настроек |
| Код в теме или mu-plugin | Полный контроль над архивами и редиректами | Если нужен точечный и предсказуемый результат | Нужно аккуратно тестировать на staging |
| Редирект на 404/410 | Физически убирает доступ к архивам | Если архивы точно не нужны и ссылки уже не используются | Можно сломать старые ссылки и внутренние переходы |
Вариант 1. Закрыть архивы дат от индексации через код
Если вам нужно оставить URL доступными для пользователей, но убрать их из поиска, можно добавить noindex для архивов дат. Это не удаляет страницу, но даёт поисковикам понятный сигнал.
<?php
add_action('wp_head', function () {
if (is_date()) {
echo '<meta name="robots" content="noindex,follow" />' . "\n";
}
}, 1);Такой вариант подходит, если архивы ещё используются в интерфейсе, но не должны ранжироваться. Обратите внимание: если у вас уже есть SEO-плагин, проверьте, не ставит ли он свои robots-теги. Два разных источника мета-данных — частая причина конфликтов.
Вариант 2. Полностью отключить архивы дат и отдавать 404
Если архивы не нужны совсем, лучше не оставлять их «пустыми» страницами. Проще и чище — сделать их недоступными и вернуть 404. Это уменьшает мусор в индексе и убирает лишние точки входа.
<?php
add_action('template_redirect', function () {
if (is_date()) {
global $wp_query;
$wp_query->set_404();
status_header(404);
nocache_headers();
include get_query_template('404');
exit;
}
});Этот способ лучше применять только после проверки внутренних ссылок. Если где-то в теме или контенте остались ссылки на даты, пользователи будут попадать на 404. Иногда вместо 404 уместнее 301-редирект на соответствующую рубрику или на главную, но это уже зависит от структуры сайта.
Вариант 3. Убрать архивы дат из шаблона и навигации
Даже если вы закрыли архивы от индексации, ссылки на них могут продолжать жить в теме. Проверьте:
- виджеты «Архивы»;
- хлебные крошки;
- футер и сайдбар;
- кастомные блоки в шаблонах;
- JSON-LD или микроразметку, если тема туда подставляет архивные URL.
Если архивы выводятся функцией wp_get_archives(), проще всего убрать её вызов или ограничить вывод только теми типами архивов, которые реально нужны.
<?php
// Пример: не выводить архивы дат в сайдбаре
if ( function_exists('wp_get_archives') ) {
// Удалите или закомментируйте этот блок в шаблоне
// wp_get_archives(array('type' => 'monthly'));
}Пошаговое решение без поломки сайта
- Сделайте резервную копию файлов и базы.
- Проверьте, какие архивы дат реально доступны: годовые, месячные, дневные.
- Посмотрите, есть ли на них трафик и ссылки из внутренних страниц.
- Выберите сценарий:
noindex, 404 или редирект. - Уберите ссылки на архивы из темы, виджетов и хлебных крошек.
- Очистите кэш сайта и CDN, если он есть.
- Переобойдите важные страницы в Search Console и проверьте статус URL.
Как проверить, что решение сработало
Проверка нужна не только в браузере. Смотрите и на HTML, и на ответ сервера, и на поведение поискового робота.
- Откройте архив даты в браузере и убедитесь, что он отдаёт нужный статус: 200 с
noindexили 404. - Посмотрите исходный код страницы и проверьте наличие
<meta name="robots" content="noindex,follow" />, если вы выбрали этот вариант. - Проверьте, исчезли ли ссылки на архивы из меню, виджетов и хлебных крошек.
- В Search Console отправьте проверку URL и посмотрите, как робот видит страницу после обновления.
- Если используется кэш, очистите его и проверьте страницу в режиме инкогнито, чтобы не смотреть старую версию.
Для быстрой диагностики ответа сервера удобно использовать curl:
curl -I https://example.com/2024/05/Если вы ожидаете 404, в заголовках должен быть соответствующий статус. Если оставляете страницу доступной, но закрытой от индексации, проверьте, что robots-мета действительно присутствует в HTML.
Частые ошибки и как их исправить
Оставили архивы закрытыми только в SEO-плагине
Иногда в интерфейсе плагина стоит noindex, но тема продолжает выводить ссылки на архивы. В итоге пользователь видит страницу, а поисковик получает противоречивые сигналы. Решение: синхронизируйте настройки плагина и шаблонов.
Сделали 301 на главную для всех архивов
Это кажется удобным, но на практике часто превращается в мягкую ошибку. Поисковик видит массовые редиректы без логики, а пользователь теряет контекст. Если архивы не нужны, чаще честнее отдать 404 или 410. Если нужен аналогичный раздел, редирект должен вести на близкую по смыслу страницу, а не просто «куда-нибудь».
Не очистили кэш после изменений
На кэшируемых сайтах старые архивы могут продолжать отдаваться ещё долго. Это особенно заметно при использовании page cache, CDN или серверного кэша. После правок обязательно очищайте все уровни кэширования.
Сломали хлебные крошки
Некоторые темы строят цепочку навигации через архивы дат. После отключения архивов крошки начинают вести на несуществующие URL или теряют часть пути. Исправление обычно в шаблоне крошек или в настройках SEO-плагина, если он их генерирует.
Безопасность и производительность
Если вы вносите код вручную, лучше не править напрямую functions.php активной темы. Для точечных изменений безопаснее использовать дочернюю тему или небольшой mu-plugin. Так вы не потеряете правки после обновления темы.
Если сайт большой, не добавляйте тяжёлую логику в template_redirect без необходимости. Проверка is_date() дешёвая, но лишние условия и сторонние запросы в этом хуке уже могут влиять на скорость ответа. Для простого отключения архивов достаточно короткой проверки и раннего выхода.
Если вам нужен более управляемый способ чистить дубли, закрывать служебные страницы и настраивать индексацию без ручного кода, посмотрите Clearfy Pro. Но даже с плагином полезно понимать, какие именно URL вы отключаете и почему.
Когда архивы дат лучше не отключать
Если у вас новостной проект, журнал или сайт, где дата — часть пользовательского сценария, архивы могут быть полезны. В таком случае не спешите ставить 404. Иногда достаточно убрать их из индекса, сократить внутренние ссылки и оставить только те архивы, которые реально помогают навигации.
Практический ориентир простой: если архив даты не помогает пользователю найти контент и не даёт трафика, его стоит убрать из индекса или отключить. Если помогает — оставляйте, но следите за качеством шаблона и внутренней перелинковки.