Архивы по датам в WordPress часто живут своей жизнью: страницы /2024/05/, /2024/05/12/ и похожие URL появляются автоматически, даже если они не нужны для навигации. На небольших сайтах это просто лишний шум, а на контентных проектах — источник дублей, пустых страниц и лишних обходов краулером.
Задача здесь не в том, чтобы «всё запретить», а в том, чтобы убрать бесполезные архивы и при этом не сломать сайт: меню, хлебные крошки, sitemap и старые ссылки должны вести себя предсказуемо.
Когда архивы дат реально мешают
Проблема обычно проявляется не в админке, а в поиске и аналитике. Типичные признаки:
- в индексе есть страницы архивов по месяцам и дням, хотя они не несут отдельной ценности;
- в отчётах видны переходы на архивы, но время на странице и глубина просмотра почти нулевые;
- внутренние ссылки ведут на архивы из виджетов, хлебных крошек или темы;
- поисковик тратит обход на страницы, которые не должны конкурировать с записями и рубриками.
Если сайт новостной, журнал или блог с сильной датировкой контента, архивы могут быть полезны. Но для большинства корпоративных и экспертных сайтов они только создают дубли и размывают структуру.
Диагностика: что именно у вас индексируется
Перед правкой лучше проверить, откуда вообще берутся архивы. Откройте несколько URL вручную и посмотрите, что они отдают:
/2024/— годовой архив;/2024/05/— месячный архив;/2024/05/12/— дневной архив;/author/и другие архивы так же стоит проверить, но здесь речь именно о датах.
Если у вас есть доступ к консоли, полезно посмотреть HTTP-ответ и мета-роботы:
curl -I https://example.com/2024/05/Ищите не только код ответа, но и заголовки, которые могли добавить тема или SEO-плагин. Если архив открывается как обычная страница с 200 OK, значит его можно индексировать и он может попадать в выдачу.
Как отключить архивы дат: три рабочих подхода
Есть три нормальных варианта: через SEO-плагин, через код или через комбинацию «удалить из индекса и убрать из интерфейса». Выбор зависит от того, как устроен сайт.
| Способ | Когда подходит | Плюсы | Минусы |
|---|---|---|---|
| SEO-плагин | Если уже используется плагин для мета-тегов и robots | Быстро, без правки темы | Не всегда убирает ссылки из темы и виджетов |
| Код в теме/плагине | Если нужен точный контроль | Можно отключить архив и отдать 404/redirect | Нужно аккуратно тестировать обновления |
| Комбинация | Если архивы уже в индексе | Можно убрать интерфейс и постепенно вывести URL | Требует проверки редиректов и sitemap |
Вариант 1. Убрать архивы дат из индекса через SEO-плагин
Если у вас уже стоит SEO-плагин, сначала проверьте его настройки архивов. У многих решений есть отдельные переключатели для архивов дат и авторов. Это самый безопасный путь, если вы не хотите трогать код темы.
Но важно понимать ограничение: плагин может добавить noindex, а сам URL останется доступным. Для поисковика этого часто достаточно, но если архивы активно используются внутри сайта, лучше дополнительно убрать ссылки на них.
Вариант 2. Отключить архивы дат кодом
Если нужен жёсткий и предсказуемый вариант, можно отключить сами архивы через template_redirect. Ниже пример для дочерней темы или небольшого mu-plugin:
<?php
add_action( 'template_redirect', function () {
if ( is_date() ) {
wp_safe_redirect( home_url( '/' ), 301 );
exit;
}
} );Этот код перенаправляет все date archive на главную. На практике это подходит не всем: если у вас есть релевантная страница-замена, лучше редиректить на неё, а не на главную.
Например, для блога о ремонте логичнее вести месячные архивы на страницу категории или на раздел с подборкой материалов, если такая страница реально существует.
Вариант 3. Отдавать 404 для архивов дат
Если архивы никогда не должны существовать публично, можно не редиректить, а показывать 404. Это уместно, когда URL уже не нужен и вы не хотите создавать лишнюю цепочку перенаправлений.
<?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;
}
} );Такой подход жёстче, чем редирект. Он хорош для чистки старых архивов, но требует аккуратности: если на архивы уже есть внешние ссылки, вы потеряете часть переходов. В этом случае сначала лучше поставить 301 на релевантную страницу, а уже потом, если нужно, пересмотреть схему.
Что ещё нужно убрать, кроме самих архивов
Отключить страницу архива — это только половина задачи. Часто ссылки на даты остаются в теме, виджетах и хлебных крошках. Проверьте:
- виджет «Архивы» в сайдбаре;
- ссылки в шаблонах
dateиtime; - метаданные записи, если тема выводит дату как ссылку;
- ссылки в XML sitemap, если плагин туда добавляет архивы;
- внутренние блоки с «последние записи», где дата кликабельна.
Если вы правите тему, ищите вызовы get_the_date(), the_date() и функции, которые оборачивают дату в ссылку на архив. Иногда достаточно убрать <a> вокруг даты, чтобы перестать плодить переходы.
Проверка результата после внедрения
После изменений не ограничивайтесь открытием страницы в браузере. Проверьте несколько вещей:
- архивы дат открываются по ожидаемому сценарию: 301 или 404;
- в HTML нет ссылок на старые date archive из шаблона;
- в sitemap не попали лишние архивные URL;
- в Search Console или аналогичном инструменте новые URL не появляются как индексируемые;
- старые URL не создают цепочки редиректов.
Быстрая проверка через curl выглядит так:
curl -I https://example.com/2024/05/
curl -I https://example.com/2024/05/12/Если вы ставили редирект, ожидайте 301 и корректный Location. Если выбрали 404, должен быть именно 404 Not Found, а не мягкая страница с кодом 200.
Частые ошибки и как их исправить
Редирект на главную без логики
Это самая частая ошибка. Если у архива есть смысловая замена, редирект должен вести туда. Иначе вы просто отправляете пользователя и робота в нерелевантную точку.
Отключили архив, но оставили ссылки в теме
В этом случае поисковик и пользователи продолжают ходить по старым URL. Нужно править не только шаблон архива, но и места, где дата выводится как ссылка.
Поставили noindex, но URL всё равно в sitemap
Это конфликт настроек. Если страница закрыта от индексации, она не должна одновременно активно продвигаться через sitemap. Проверьте настройки SEO-плагина и исключите архивы из карты сайта, если это возможно.
Сломали хлебные крошки
Некоторые темы используют дату как часть навигации. После отключения архива проверьте, не стала ли крошка вести в никуда или на 404.
Безопасность и производительность: что учесть
Если вы вносите код, лучше не править functions.php основной темы. Используйте дочернюю тему или небольшой mu-plugin, чтобы изменения не потерялись после обновления.
Ещё один практический момент: не плодите несколько решений одновременно. Если SEO-плагин уже ставит noindex, а код делает 301, а тема ещё и убирает ссылки, потом трудно понять, что именно сработало и где возник конфликт.
Для сайтов с большим количеством старых архивов полезно сначала собрать список URL, которые реально есть в индексе, и только потом решать: редирект, 404 или noindex. Это экономит время и уменьшает риск сломать полезные переходы.
Если нужен более широкий набор инструментов для чистки дублей и технической оптимизации, можно посмотреть Clearfy Pro: https://wpshop.ru/plugins/clearfy. Но даже с плагином базовая проверка URL, sitemap и редиректов всё равно остаётся обязательной.
В итоге рабочая схема простая: сначала диагностируете, какие date archive реально существуют, затем выбираете один способ отключения, после этого проверяете HTTP-коды, sitemap и внутренние ссылки. Если хотя бы один из этих этапов пропустить, архивы обычно возвращаются через тему, виджет или старый URL в индексе.