Архивы по датам в WordPress часто живут своей жизнью: страницы /2024/05/, /2024/05/12/ и похожие URL могут индексироваться, хотя пользователю они почти не нужны. На небольших блогах это обычно просто шум. На больших сайтах — источник дублей, слабых страниц и лишней нагрузки на обход поисковыми роботами.
Сценарий типичный: записи уже есть в рубриках, тегах и sitemap, а архивы по датам только размазывают контент по дополнительным страницам. Если задача не в том, чтобы хранить медиа-архив как отдельную навигацию, а именно убрать лишние URL из индекса и из интерфейса, это можно сделать аккуратно.
Когда архив дат действительно мешает
Сначала стоит понять, что именно у вас ломается или засоряется. Не каждый архив дат нужно отключать. Если на сайте есть редакционный календарь, подборки по месяцам или новостная лента с переходами по датам, такие страницы могут быть полезны. Но если архивы пустые, тонкие или дублируют другие разделы, их лучше убрать из публичного контура.
Признаки, что архивы по датам лишние
- в поиске видны страницы вида
/2023/или/2023/11/, хотя они не дают полезной навигации; - в отчётах по индексации много URL с малым количеством контента;
- архивы по датам дублируют рубрики, теги или страницу блога;
- внутренние ссылки на такие архивы почти не используются;
- роботы тратят обход на страницы, которые не приносят трафик.
Диагностика: что проверить до изменений
Перед отключением полезно посмотреть, где именно эти архивы уже участвуют в структуре сайта. Иначе можно убрать URL, но оставить на них ссылки в меню, хлебных крошках или sitemap, а потом ловить 404 и лишние редиректы.
- Проверьте, есть ли ссылки на архивы дат в меню, сайдбаре, футере и хлебных крошках.
- Посмотрите, попадают ли такие URL в XML sitemap.
- Откройте несколько архивов вручную и оцените, есть ли на них уникальная польза.
- Проверьте, не используются ли архивы дат в шаблоне темы как часть навигации.
Если у вас подключён SEO-плагин, он может отдельно управлять индексированием архивов. Но если цель — убрать саму сущность из публичного доступа, лучше решать это на уровне темы или небольшого mu-plugin, а не только мета-тегом robots.
Как отключить архив дат через код
Самый надёжный вариант — перехватить запросы к архивам дат и отдать 404. Тогда такие URL не будут открываться как полноценные страницы. Это лучше, чем просто ставить noindex: страница всё ещё существует, а значит может продолжать обходиться и появляться в ссылках.
Добавьте код в functions.php дочерней темы или в отдельный мини-плагин. Для рабочих сайтов я обычно предпочитаю мини-плагин: так меньше риск потерять правку при обновлении темы.
<?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;
}
});Этот вариант блокирует архивы по дате на уровне фронтенда. WordPress по-прежнему понимает, что это date archive, но вместо контента отдаёт 404-шаблон. Для большинства сайтов этого достаточно.
Если нужно не 404, а редирект на блог или рубрику
Иногда архивы дат уже проиндексированы, и вы не хотите сразу отдавать 404. Тогда можно сделать 301-редирект на страницу блога или на ближайшую релевантную рубрику. Но редирект должен быть осмысленным: не ведите все даты на главную, если это не совпадает с пользовательским сценарием.
<?php
add_action('template_redirect', function () {
if (is_date()) {
wp_safe_redirect(home_url('/blog/'), 301);
exit;
}
});Редирект удобен как переходный этап, но не всегда лучший финальный вариант. Если архивы дат не несут смысла, 404 обычно честнее. Главное — не смешивать оба подхода одновременно.
Как убрать ссылки на архивы дат из темы
Отключить сам архив мало. Если тема выводит ссылки на даты в шаблонах, они останутся в интерфейсе и будут вести в никуда. Проверьте шаблоны:
archive.phpиdate.php;- виджеты и блоки в сайдбаре;
- хлебные крошки;
- мета-блоки записи, если там есть дата-ссылки;
- кастомные элементы в шапке и футере.
Если в теме есть вывод ссылки на архив месяца, замените её на обычный текст или на нессылочный формат даты. Например:
<?php echo esc_html( get_the_date('F Y') ); ?>А не так:
<?php the_date('F Y'); ?>Разница в том, что the_date() и похожие шаблонные теги могут вести себя не так, как ожидается, если тема строит навигацию вокруг архивов. Для точечного контроля лучше использовать явный вывод и проверять HTML в браузере.
Сравнение подходов
| Способ | Что делает | Когда подходит | Минус |
|---|---|---|---|
| noindex | Скрывает страницу от индексации | Если архив нужен пользователям, но не поиску | URL остаётся доступным и обходится |
| 404 через template_redirect | Полностью убирает архив из публичного контура | Если архивы не нужны вообще | Нужно проверить ссылки и редиректы |
| 301 на блог или рубрику | Перенаправляет старые URL | Если уже есть трафик и нужна мягкая миграция | Нужна логика выбора целевой страницы |
Проверка результата после внедрения
После правки не ограничивайтесь открытием одной страницы в браузере. Нужно проверить и код ответа, и поведение сайта в целом.
- Откройте несколько URL архивов дат в браузере:
/2024/,/2024/05/,/2024/05/12/. - Проверьте HTTP-статус через DevTools,
curlили любой HTTP checker. - Убедитесь, что в sitemap этих URL больше нет, если они там были.
- Проверьте, не остались ли ссылки в меню, хлебных крошках и виджетах.
- Посмотрите лог 404, если он ведётся, чтобы понять, кто ещё ходит по старым адресам.
Пример проверки через curl:
curl -I https://example.com/2024/05/Если вы выбрали 404-вариант, в ответе должен быть соответствующий статус. Если настроили редирект, убедитесь, что он действительно 301, а не 302.
Частые ошибки и как их исправить
Оставили ссылки в теме
Архив уже закрыт, но в шаблоне осталась ссылка на него. В результате пользователь получает 404, а вы — лишний шум в аналитике. Решение простое: найти все места вывода даты как ссылки и заменить на текст или другой URL.
Сделали 404, но забыли про редиректы
Если старые архивы уже были в индексе, поисковик какое-то время будет продолжать их запрашивать. Это нормально. Но если на них есть внешние ссылки или внутренние переходы, имеет смысл поставить 301 на релевантную страницу, а не просто отрубать всё сразу.
Закрыли архивы только через robots.txt
Это слабый вариант. Если URL уже известен поисковику, запрет в robots.txt не гарантирует исчезновение из индекса. Для удаления лишних архивов лучше использовать 404 или 301, а не только блокировку обхода.
Сломали архивы в админке или у SEO-плагина
Если вы правите шаблоны грубо, можно задеть внутреннюю логику темы или плагина. Поэтому изменения лучше вносить точечно: сначала перехват запроса, потом чистка ссылок, потом проверка sitemap и хлебных крошек.
Что делать, если архивы нужны частично
Иногда не стоит отключать всё подряд. Например, на новостном сайте полезны архивы по годам, но не нужны архивы по дням. В таком случае можно оставить годовые страницы и закрыть дневные и месячные. Логика будет зависеть от структуры контента и от того, как пользователи реально ищут материал.
Если вам нужно более тонкое управление дублями и техническими страницами, иногда удобнее собрать это в одном инструменте, чем держать россыпь мелких правок. В таких сценариях уместен, например, Clearfy Pro, если вы хотите централизованно управлять частью SEO- и технических настроек без ручного редактирования шаблонов.
Практический чек-лист перед публикацией
- Проверить, нужны ли архивы дат пользователям.
- Найти все ссылки на date archives в теме и виджетах.
- Выбрать стратегию: 404, 301 или частичное отключение.
- Проверить sitemap и robots-настройки.
- Протестировать статус-коды на нескольких URL.
- Посмотреть, не выросло ли число 404 после выкладки.
Если сделать это последовательно, архивы дат перестанут создавать лишние страницы, а сайт сохранит нормальную структуру и предсказуемое поведение для поисковиков и пользователей.