Архивы по датам в WordPress часто появляются сами по себе: /2024/, /2024/05/, /2024/05/12/. На небольших блогах это может быть полезно, но на рабочих сайтах такие страницы нередко создают лишние URL, дублируют ленту записей и размывают внутреннюю перелинковку. Проблема особенно заметна, если темы и SEO-плагины уже генерируют свои архивы, а поисковик начинает обходить десятки бесполезных страниц.
Ниже — рабочий сценарий: отключить архивы дат, но оставить один понятный архив для пользователей и поисковых систем, если он реально нужен. Без выдуманных хуков и без ломки стандартного поведения WordPress.
Когда архивы дат становятся проблемой
Сначала стоит понять, что именно мешает. Не каждый сайт обязан убирать архивы дат полностью. Если у вас новостной проект или журнал, архив по месяцам может быть полезен. Но если публикации живут долго и не завязаны на хронологию, дата-архивы обычно только добавляют мусор.
Типичные симптомы
- В индексе появляются страницы вида
/2023/,/2023/11/,/2023/11/15/, хотя они не несут отдельной ценности. - В отчётах краулинга видно много переходов по архивам, но почти нет полезного трафика.
- На архивных страницах повторяется тот же список записей, что и на главной или в категориях.
- SEO-плагин показывает дубли title и description для архивов дат.
Если архивы дат уже закрыты от индексации, но продолжают генерироваться и обходиться ботами, это всё равно лишняя нагрузка и лишние URL в структуре сайта. Поэтому лучше решить вопрос на уровне шаблона и правил маршрутизации, а не только метатегами.
Что именно будем делать
Есть три реалистичных подхода: скрыть архивы дат из темы, вернуть 404/410 для этих URL или оставить один канонический архив и отключить остальные. Для большинства сайтов самый аккуратный вариант — оставить только общий архив записей или страницу блога, а дату-архивы убрать из публичного доступа.
| Подход | Что делает | Когда подходит |
|---|---|---|
| Только noindex | Страница остаётся доступной, но не должна индексироваться | Если архив нужен пользователям, но не нужен в поиске |
| Редирект на архив записей | Все date-URL ведут на один общий архив | Если архивы дат не несут ценности и не нужны как отдельные страницы |
| 404/410 для date-архивов | Страницы перестают существовать для сайта | Если вы уверены, что старые date-URL не должны открываться вообще |
Диагностика: какие архивы дат у вас реально открыты
Перед правками проверьте, какие URL сейчас доступны. На стандартном WordPress это обычно архивы года, месяца и дня. Их можно увидеть вручную или через краулер.
https://example.com/2024/
https://example.com/2024/05/
https://example.com/2024/05/12/
Если сайт работает на ЧПУ, а архивы дат открываются без ошибок, значит их нужно либо закрыть, либо перенаправить. Если же они уже отдают 404, значит проблема решена частично, но стоит проверить, не остались ли ссылки на них в теме, виджетах и XML-картах сайта.
Пошаговое решение: отключаем date-архивы через код
Самый надёжный способ — добавить небольшой код в дочернюю тему или в собственный мини-плагин. Так вы не зависите от обновлений темы и не рискуете потерять правку при деплое.
Вариант 1: отдавать 404 для архивов дат
Если архивы дат не нужны вообще, можно перехватить запрос и пометить его как несуществующий. Это лучше, чем просто прятать ссылки в меню.
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;
}
});
Этот код срабатывает только на date-архивах. Остальные архивы, записи и страницы продолжают работать как обычно. После внедрения обязательно проверьте, что тема корректно отображает 404-шаблон.
Вариант 2: редиректить все date-архивы на страницу блога
Если у вас есть отдельная страница записей, логичнее отправлять пользователей туда. Это удобнее, чем показывать ошибку, и не создаёт тупиковых URL.
add_action('template_redirect', function () {
if (is_date()) {
wp_safe_redirect(home_url('/blog/'), 301);
exit;
}
});
Замените /blog/ на реальный адрес страницы архива записей. Если такой страницы нет, лучше сначала создать её в настройках Чтение или выбрать другой релевантный URL, а не редиректить на главную без смысла.
Вариант 3: убрать ссылки на date-архивы из темы
Иногда сами архивы не страшны, но тема выводит их в сайдбаре, футере или блоке метаданных записи. Тогда нужно убрать именно ссылки, а не только сами страницы.
remove_action('wp_head', 'wp_generator');
add_filter('getarchives_where', function ($where, $args) {
if (!empty($args['type']) && $args['type'] === 'monthly') {
// Оставляем вывод архивов только если это действительно нужно.
}
return $where;
}, 10, 2);
На практике чаще всего достаточно проверить виджеты и шаблоны: блоки wp_get_archives(), ссылки в футере, хлебные крошки и кастомные списки архивов. Если тема выводит дату публикации как ссылку на архив, это тоже лучше отключить в шаблоне записи.
Если нужен только один канонический архив
Иногда задача не в полном отключении, а в том, чтобы оставить один архив записей и убрать все промежуточные date-страницы. В таком случае логика простая: архив блога остаётся, а годовые и месячные страницы либо редиректятся, либо отдают 404.
Важно не путать это с пагинацией архива записей. Страницы вида /blog/page/2/ нужны и должны работать. Убирать нужно именно date-архивы, а не пагинацию.
Проверка результата после внедрения
После правок не ограничивайтесь открытием одной страницы в браузере. Проверьте несколько уровней.
- Откройте
/2024/,/2024/05/и/2024/05/12/вручную. - Убедитесь, что они отдают 404 или 301 на нужный URL.
- Проверьте исходный код страницы: нет ли ссылок на date-архивы в меню, футере и хлебных крошках.
- Посмотрите отчёт краулинга или логи сервера: боты не должны массово ходить по старым date-URL.
- Если используете SEO-плагин, проверьте, не остались ли эти страницы в sitemap или внутренних списках архивов.
Для быстрой проверки статуса удобно использовать curl:
curl -I https://example.com/2024/
curl -I https://example.com/2024/05/
curl -I https://example.com/2024/05/12/
Если вы настраивали редирект, должен быть код ответа 301 и заголовок Location. Если отдаёте 404, статус должен быть именно 404, а не 200 с текстом ошибки внутри страницы.
Частые ошибки и как их исправить
Редирект на главную вместо релевантной страницы
Это распространённая ошибка: date-архивы отправляют на главную, потому что так проще. Но для пользователя это плохой опыт, а для поисковика — слабый сигнал. Лучше редиректить на архив записей или на тематическую страницу, если она действительно соответствует запросу.
Закрыли архивы только метатегом noindex
noindex помогает с индексацией, но не убирает сами URL из обхода и не решает проблему внутренних ссылок. Если архивы не нужны, лучше убрать их из маршрутизации или сделать редирект.
Сломали пагинацию архива записей
Иногда разработчики добавляют слишком общий условный оператор и задевают /page/2/. Проверяйте, что условие использует именно is_date(), а не общий is_archive(). Иначе можно случайно отключить полезные архивы категорий или блога.
Оставили ссылки в теме и виджетах
Даже если сами страницы закрыты, ссылки на них продолжают жить в шаблонах. Это создаёт лишние переходы и ошибки в отчётах. После правок пройдитесь по теме поиском по wp_get_archives, the_date и ссылкам на архивы.
Безопасность и производительность
Если вы вносите код вручную, не вставляйте его в файл активной темы без бэкапа. Лучше использовать дочернюю тему или небольшой mu-plugin. Так правка не исчезнет после обновления и не сломает сайт при смене темы.
Для сайтов с большим количеством старых URL полезно дополнительно проверить серверные редиректы и кэш. Если date-архивы уже попадали в кэш CDN или page cache, после изменений очистите кэш на всех уровнях: плагин, сервер, CDN. Иначе вы можете видеть старую версию страницы, хотя код уже изменён.
Если вам нужен более широкий набор технических правок — например, чистка дублей, отключение лишних архивов и системных страниц, — такие задачи удобно закрывать через набор точечных настроек, а не одним «тяжёлым» плагином. В экосистеме WPShop для этого есть Clearfy Pro: https://wpshop.ru/plugins/clearfy?utm_source=wpform.ru&utm_medium=article&utm_campaign=kak-otklyuchit-arkhivy-dat-v-wordpress-i-ostavit-odin-kanonicheskiy-arkhiv
Что делать, если архивы дат нужны частично
Иногда полезно оставить только годовой архив, а месячные и дневные убрать. Это компромиссный вариант для новостных или корпоративных сайтов, где хронология важна, но детализация по дням уже лишняя.
В таком случае не отключайте всё подряд. Сначала проверьте, какие архивы реально используются в навигации и есть ли у них трафик. Если годовые страницы дают пользу, оставьте их, а месячные и дневные переведите в 404 или редирект.
Главный критерий простой: если архив не помогает пользователю найти контент и не даёт отдельной ценности, его лучше убрать из публичной структуры сайта. Если помогает — оставляйте, но следите за каноничностью и внутренними ссылками.