Архивы по датам в WordPress часто создаются автоматически, но на большинстве сайтов они не несут пользы: в них дублируются записи из рубрик, а поисковики получают лишние страницы с тонким содержимым. При этом просто удалить ссылки из шаблона недостаточно — архивы могут остаться доступными по прямому URL и продолжат индексироваться.
Ниже разберём рабочий сценарий: как отключить архивы дат, что именно проверить перед изменениями и как не получить цепочку 404 там, где они не нужны.
Когда архивы дат действительно мешают
Проблема обычно проявляется не в админке, а в поиске и аналитике. Если на сайте есть URL вида /2024/08/ или /2024/08/15/, они могут:
- дублировать ленту записей из рубрик и тегов;
- создавать страницы с малым количеством контента;
- отвлекать краулинг от важных URL;
- попадать в sitemap через тему или SEO-плагин, если настройки сделаны неаккуратно.
Если архивы дат не используются как навигационный элемент, их обычно проще закрыть или отключить полностью.
Диагностика: что именно у вас сейчас работает
Сначала проверьте, как архивы дат реализованы на сайте. В WordPress есть два уровня: сами архивные URL и ссылки на них в шаблоне или виджетах.
Проверка URL
Откройте несколько адресов вручную:
/2024/— архив по году;/2024/08/— архив по месяцу;/2024/08/15/— архив по дню.
Если страницы открываются и отдают контент, значит архивы активны. Если вы видите 404, но ссылки всё равно есть в шаблоне, нужно чистить ещё и разметку.
Проверка ссылок в теме
Ищите в шаблонах и меню вызовы, которые могут выводить даты:
<?php wp_get_archives( array( 'type' => 'monthly' ) ); ?>Также проверьте виджеты, блоки в сайдбаре и футере, а если используется классическая тема — файлы sidebar.php, footer.php, archive.php и шаблоны блоков.
Как отключить архив дат: рабочие варианты
Есть три нормальных подхода: убрать ссылки из интерфейса, закрыть сами архивы от индексации или полностью отключить их на уровне кода. Выбор зависит от того, нужен ли вам старый URL для пользователей и роботов.
| Способ | Что делает | Когда подходит | Компромисс |
|---|---|---|---|
| Удалить вывод ссылок | Убирает архивы из меню, сайдбара, футера | Если URL не нужны пользователям | Сами архивы могут остаться доступными напрямую |
| Закрыть от индексации | Оставляет доступ, но снижает риск индексации | Если старые URL ещё где-то используются | Не убирает дубли полностью |
| Отключить кодом | Возвращает 404 или редирект | Если архивы не нужны вообще | Нужно аккуратно обработать старые ссылки |
Вариант 1: убрать вывод архивов из темы
Если архивы дат выводятся через wp_get_archives(), просто удалите этот вызов или замените его на более полезный блок навигации. Это самый безопасный шаг, если проблема только в интерфейсе.
<?php if ( function_exists( 'wp_get_archives' ) ) : ?>
<!-- архивы дат удалены -->
<?php endif; ?>Если архивы выводятся через блоки, проверьте шаблон сайта в редакторе и уберите соответствующий блок из области, где он не нужен.
Вариант 2: отключить архивы дат через код
Если задача — не просто скрыть ссылки, а убрать сами архивы, можно перехватить запросы и отдавать 404 для годовых, месячных и дневных архивов. Это лучше делать в дочерней теме или через небольшой mu-plugin.
<?php
/**
* Plugin Name: Disable Date Archives
*/
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;
}
} );Этот вариант подходит, если вы уверены, что старые архивы не нужны ни пользователям, ни поисковикам. Если на них уже есть внешние ссылки, иногда лучше сделать 301 на ближайшую релевантную страницу — например, на рубрику или на главную страницу блога.
Вариант 3: редирект на рубрику или блог
Редирект полезен, когда архивы дат уже были в индексе и вы не хотите терять накопленный трафик с устаревших URL. Но редирект должен быть логичным: не стоит отправлять все даты на главную без разбора.
<?php
add_action( 'template_redirect', function () {
if ( is_date() ) {
wp_safe_redirect( home_url( '/blog/' ), 301 );
exit;
}
} );Замените /blog/ на реальный URL страницы, где пользователю проще продолжить просмотр материалов. Если такой страницы нет, лучше сначала создать её, а потом ставить редирект.
Пошаговое решение без лишнего риска
- Проверьте, используются ли архивы дат в меню, виджетах и шаблонах.
- Определите, нужны ли старые URL для внешних ссылок и пользователей.
- Если архивы не нужны вообще, отключите их через
template_redirectили настройку темы. - Если URL ещё важны, поставьте 301 на релевантную страницу.
- Очистите кэш сайта, CDN и серверный кэш.
- Проверьте, не остались ли архивы дат в sitemap, хлебных крошках и внутренних ссылках.
Как проверить, что всё сработало
После внедрения не ограничивайтесь открытием страницы в браузере. Проверьте несколько уровней:
- URL архивов дат должны отдавать 404 или 301, в зависимости от выбранного сценария;
- в исходном коде не должно остаться ссылок на архивы дат;
- в Search Console нужно посмотреть, не растёт ли число исключённых URL;
- если стоит кэш-плагин, убедитесь, что он не отдаёт старую версию страниц;
- проверьте, что sitemap не содержит архивов дат, если вы их отключили.
Для быстрой проверки можно использовать curl:
curl -I https://example.com/2024/08/Если вы ожидаете 404, в ответе должен быть соответствующий статус. Если настроен редирект, смотрите на 301 и заголовок Location.
Частые ошибки и как их исправить
Отключили ссылки, но архивы всё ещё индексируются
Это типичная ситуация: из шаблона убрали блок, но сам URL живой. Решение — либо закрыть архивы от индексации через SEO-плагин, либо вернуть 404/301 на уровне кода.
Поставили редирект на главную
Такой редирект часто выглядит как технически простой, но с точки зрения пользователя он бесполезен. Лучше отправлять на блог, рубрику или страницу архива записей, если она у вас реально используется.
Сломали кэш и видите старые страницы
После изменений обязательно сбрасывайте не только плагин кэша, но и серверный кэш, если он есть. Иначе вы будете проверять уже не тот ответ, который отдаёт WordPress.
Сделали 404, но забыли про внешние ссылки
Если на архивы дат есть ссылки с других сайтов или из старых материалов, резкое удаление может дать лишние 404 в логах. В таком случае сначала соберите список URL из аналитики и логов, потом решайте: 404 или 301.
Что ещё стоит проверить рядом с архивами дат
Когда вы чистите архивы, полезно заодно посмотреть на похожие источники дублей: страницы автора, теги, вложения медиафайлов и внутренний поиск. Если сайт небольшой, иногда достаточно отключить только лишние архивы и не трогать остальную структуру. На более крупных проектах лучше идти от логов и Search Console, а не от предположений.
Если вы используете SEO-плагин, проверьте его настройки архивов отдельно от темы. Часто проблема возникает именно на стыке: тема выводит ссылки, а плагин пытается закрыть URL от индексации, но не делает это последовательно.
Практика по безопасности и производительности
Любые изменения в шаблонах и хуках лучше вносить не в родительскую тему, а в дочернюю или в отдельный mu-plugin. Так вы не потеряете правки после обновления. Перед правкой файлов сделайте резервную копию и проверьте, есть ли staging-копия сайта.
Если архивы дат отключаются кодом, не перегружайте functions.php большим количеством логики. Для точечных правок достаточно небольшого плагина или mu-plugin — это проще сопровождать и легче отключать при отладке.
Когда задача не только в архивах дат, но и в общей чистке дублей, имеет смысл смотреть в сторону инструментов, которые помогают убирать лишние архивы и технические страницы без ручной правки каждого шаблона. Но даже в этом случае сначала проверьте, что именно создаёт дубли на вашем сайте, а не отключайте всё подряд.