Архивы по датам в WordPress часто появляются автоматически, но далеко не всегда нужны сайту. На небольших проектах они создают лишние URL вида /2024/05/, дублируют логику рубрик и тегов, а иногда еще и тянут за собой пустые страницы, которые поисковик все равно пытается обходить. Если задача не в том, чтобы вести новостную ленту по месяцам, такие архивы обычно проще отключить или закрыть аккуратно.
Ниже — рабочий сценарий: сначала быстро диагностируем, что именно у вас есть, потом выбираем способ отключения, затем проверяем результат в браузере, sitemap и индексации.
Когда архивы дат действительно мешают
Проблема не в самих архивных страницах как таковых, а в том, что они часто не несут отдельной ценности. На контентных сайтах они могут:
- создавать страницы без нормального уникального контента;
- дублировать подборки записей, которые уже есть в рубриках и тегах;
- размножать URL, которые нужно обходить и хранить в индексе;
- путать структуру сайта, если в теме есть ссылки на даты в хлебных крошках или мета-блоках.
Если у вас блог с регулярной хронологией публикаций, архивы могут быть полезны. Но если сайт — это справочник, корпоративный ресурс или контентный проект без акцента на календарь, их обычно лучше убрать из публичной части.
Диагностика: какие архивы дат есть на сайте
Сначала проверьте, что именно WordPress и тема отдают на фронте. В типовой установке доступны архивы по году, месяцу и дню. Откройте вручную несколько адресов и посмотрите, есть ли они вообще:
/2024/— архив года;/2024/05/— архив месяца;/2024/05/17/— архив дня.
Если страница открывается и показывает список записей, значит архив существует. Если возвращается 404, возможно, у вас уже отключены правила или тема их не использует.
Полезно также проверить, не попали ли такие URL в sitemap. Иногда архивы дат не видны в меню, но продолжают индексироваться через карту сайта или внутренние ссылки.
Что смотреть в админке и в коде
В WordPress архивы дат могут быть доступны через стандартные шаблоны темы, а ссылки на них — через виджеты, хлебные крошки, блоки «Архивы» или кастомные элементы в шаблоне. Если вы правите тему, ищите вызовы вроде the_date(), get_the_date(), get_archives_link() и виджет wp_get_archives().
Если сайт использует SEO-плагин, проверьте, не добавляет ли он архивы в sitemap или не ставит ли для них отдельные мета-настройки. Важно понимать: отключение самих страниц и удаление их из карты сайта — это разные задачи.
Как отключить архивы дат: три рабочих подхода
Выбор зависит от того, хотите ли вы именно убрать URL, или только скрыть их от индексации. Для технически чистого решения лучше отключать архивы на уровне кода или темы, а не только прятать их через robots.txt.
| Способ | Что делает | Плюсы | Минусы |
|---|---|---|---|
| Код в теме или плагине | Отключает архивы и редиректит на 404/главную | Контроль, предсказуемость | Нужно править код |
| SEO-плагин | Скрывает архивы из индекса и sitemap | Быстро | URL могут продолжать открываться |
| robots.txt | Ограничивает обход | Просто | Не удаляет уже известные URL из индекса |
Вариант 1: отключить архивы через код
Если нужен именно запрет на доступ, можно перехватывать запросы и отдавать 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;
}
});Этот вариант лучше размещать в мини-плагине или в functions.php дочерней темы, а не в родительской теме. Тогда при обновлении изменения не потеряются.
Вариант 2: убрать ссылки и не генерировать архивы в интерфейсе
Если архивы нужны только как технический URL, но не нужны пользователю, можно убрать их из виджетов и шаблонов. Например, в теме часто достаточно удалить вывод архива из сайдбара и хлебных крошек. Для списка дат, если он есть, обычно используют wp_get_archives() — его можно просто не вызывать.
<?php
// Пример: выводить только рубрики, без архива по датам.
wp_list_categories([
'title_li' => '',
'show_count' => true,
]);Это не отключает сам архив, но убирает лишние внутренние ссылки, которые помогают поисковику находить такие страницы.
Вариант 3: закрыть архивы через SEO-плагин
Если у вас уже используется SEO-плагин, проверьте настройки архивов. В некоторых конфигурациях можно отключить индексацию архивов дат и убрать их из sitemap. Это хороший промежуточный вариант, если вы пока не готовы трогать шаблоны.
Но здесь есть важное ограничение: noindex не равен удалению URL. Страница может продолжать открываться и обходиться ботом. Если архивы вам не нужны совсем, лучше сочетать noindex с 404 или редиректом на релевантный раздел.
Пошаговое решение без лишнего риска
- Проверьте, какие архивы открываются на сайте: год, месяц, день.
- Посмотрите, есть ли ссылки на них в меню, сайдбаре, хлебных крошках и футере.
- Определите, нужны ли архивы пользователям или это просто остаток стандартной структуры WordPress.
- Если не нужны, отключите их на уровне кода или темы.
- Удалите ссылки на архивы из шаблонов и виджетов.
- Проверьте sitemap и метатеги, чтобы архивы не продолжали попадать в индексацию.
Если у сайта уже есть трафик на архивные страницы, не удаляйте их без проверки логов и Search Console. Иногда старые URL лучше сначала перевести на более близкий раздел, а не сразу отдавать 404.
Как проверить, что решение сработало
После внедрения откройте несколько тестовых URL в браузере и убедитесь, что поведение соответствует выбранной схеме:
- для полного отключения — архив должен отдавать 404;
- для мягкого закрытия — в исходном коде должен быть
noindex; - в sitemap архивов быть не должно;
- внутренние ссылки на архивы должны исчезнуть из шаблонов.
Дополнительно проверьте заголовки ответа. Если вы используете 404, статус должен быть именно 404, а не 200 с текстом «Страница не найдена». Для этого удобно смотреть ответ через DevTools, curl -I или любой HTTP-валидатор.
curl -I https://example.com/2024/05/В ответе ожидается HTTP/2 404 или аналогичный статус. Если видите 200, значит архив фактически не отключен.
Частые ошибки и как их исправить
Оставили архивы открытыми, но убрали из sitemap
Это частая полумера. Поисковик все равно может находить URL через внутренние ссылки или старые обходы. Если архивы не нужны, закрывайте их на уровне ответа сервера или шаблона, а не только через карту сайта.
Поставили редирект на главную
Редирект всех дат на главную выглядит просто, но часто создает плохой пользовательский сигнал. Если архив был связан с конкретной темой или периодом, лучше редиректить на ближайшую рубрику, раздел блога или страницу-обзор, а не на корень сайта.
Сломали хлебные крошки
Некоторые темы строят крошки с привязкой к дате публикации. После отключения архивов проверьте, не ведут ли крошки на несуществующие URL. Если ведут, правьте шаблон крошек отдельно.
Отключили архивы в теме, но забыли про старые ссылки
Старые URL могут остаться в индексах и внешних ссылках. В таких случаях полезно оставить понятный 404 или настроить точечные редиректы для самых посещаемых адресов, а не пытаться «спрятать» проблему.
Безопасность и производительность
Если вы правите functions.php, делайте это в дочерней теме или в отдельном мини-плагине. Так вы не потеряете изменения при обновлении. Перед выкладкой проверьте код на тестовой копии сайта: ошибка в template_redirect может сломать весь фронт.
С точки зрения производительности отключение архивов дат само по себе не даст заметного ускорения, но уменьшит количество бесполезных страниц, которые нужно обрабатывать и обходить. На больших сайтах это помогает навести порядок в индексации и логике внутренних ссылок.
Если вам нужно не только убрать архивы дат, но и почистить сайт от других дублей и технического мусора, посмотрите на Clearfy Pro. Он полезен именно как набор точечных SEO- и технических настроек, когда не хочется собирать все вручную.
Что делать, если архивы нужны только частично
Иногда архивы по годам полезны, а по месяцам и дням — нет. В таком случае не обязательно отключать все подряд. Можно оставить только годовые страницы, а остальные закрыть. Это уже более тонкая настройка, и здесь важно не ломать логику темы.
Для такого сценария сначала проверьте, как именно формируются ссылки в шаблоне, и только потом добавляйте условия. Например, если тема выводит архивы через стандартные функции WordPress, проще убрать лишние уровни на уровне шаблона, чем пытаться переопределять поведение ядра.
Если после правок архивы продолжают появляться в индексе, не ищите магию в robots.txt. Сначала убедитесь, что URL действительно перестал отдавать полезную страницу и не связан с внутренними ссылками. Только после этого имеет смысл ждать переобхода поисковиком.