Архивы по датам в WordPress часто создают лишние страницы без самостоятельной ценности: /2024/05/, /2024/05/15/ и похожие URL начинают индексироваться, дублировать логику рубрик и тянуть на себя краулинговый бюджет. На небольшом блоге это может быть незаметно, но на сайте с большим количеством записей такие архивы быстро превращаются в технический шум.
Если у вас нет редакционного сценария, где дата-архивы реально нужны пользователю, их обычно закрывают от индексации или отключают полностью. Ниже — рабочие варианты без выдуманных хуков и без поломки сайта.
Когда архивы дат действительно мешают
Проблема не в самом наличии архивов, а в том, что они начинают конкурировать с основными страницами. Чаще всего это проявляется так:
- в индексе появляются страницы архивов, хотя они не приводят трафик;
- поисковик тратит ресурсы на обход страниц, которые не дают уникального контента;
- в отчётах по дублям всплывают архивы дат рядом с рубриками и пагинацией;
- на сайте с новостями или блогом архивы дат дублируют смысл страницы рубрики.
Если архивы дат нужны для навигации внутри сайта, их можно оставить, но закрыть от индексации. Если не нужны вообще — лучше убрать ссылки и отдавать 404/410 только после проверки, что на них нет внутреннего трафика и внешних ссылок.
Диагностика: как понять, что проблема именно в архивах дат
Сначала проверьте, существуют ли такие URL и как они отдаются сервером. Откройте несколько типовых адресов вручную и посмотрите код ответа, заголовки и мета robots. Для быстрой проверки удобно использовать curl:
curl -I https://example.com/2024/05/Если страница отдаёт 200 OK и не закрыта от индексации, поисковик может её обойти и добавить в индекс. Далее проверьте исходный код страницы: есть ли <meta name="robots" с noindex, и не генерируется ли canonical на сам архив.
Ещё один практический тест — поиск по сайту в Google с оператором site:. Если в выдаче есть архивы дат, значит они уже попали в индекс или находятся в очереди на него. Для точной картины смотрите отчёты в Google Search Console: разделы с индексированием и страницами, исключёнными из индекса.
Что выбрать: плагин, код или полное удаление
| Подход | Когда подходит | Плюсы | Минусы |
|---|---|---|---|
| Плагин | Нужно быстро закрыть архивы без правки темы | Минимум кода, проще откатить | Зависимость от настроек и лишняя нагрузка |
| Код в теме или mu-plugin | Нужен контролируемый и предсказуемый результат | Не зависит от интерфейса плагина | Нужно аккуратно тестировать после обновлений |
| Полное удаление архивов | Архивы не нужны ни пользователям, ни SEO | Убирает лишние URL из структуры | Можно сломать старые ссылки, если не настроить редиректы |
Если задача точечная, я бы начинал с кода: он прозрачнее и не добавляет лишний слой логики. Если на сайте уже используется SEO-плагин, можно закрыть архивы через его настройки, но важно проверить, что он действительно ставит noindex, а не только убирает ссылку из меню.
Пошаговое решение через код
Самый безопасный вариант — оставить архивы доступными, но закрыть их от индексации и убрать из навигации. Для этого можно добавить фильтр в functions.php дочерней темы или в отдельный mu-plugin.
1. Закрываем архивы дат от индексации
add_filter('wp_robots', function ($robots) {
if (is_date()) {
$robots['noindex'] = true;
$robots['nofollow'] = true;
}
return $robots;
});Этот вариант добавляет noindex и nofollow только на архивы дат. Для большинства сайтов этого достаточно: страница остаётся доступной, но поисковик получает сигнал не индексировать её.
2. Убираем ссылки на архивы дат из шаблона
Если тема выводит архивы дат в сайдбаре или в блоке мета, лучше убрать этот вывод на уровне шаблона. В стандартных темах WordPress это обычно делается через виджеты или через редактирование шаблона, если ссылка добавлена вручную. Пример для кастомного шаблона:
<?php if ( ! is_date() ) : ?>
<div class="post-meta">
<?php the_time('d.m.Y'); ?>
</div>
<?php endif; ?>Это не отключает архивы как функциональность, но убирает лишние внутренние ссылки в местах, где они не нужны.
3. Если архивы не нужны вообще — отключаем их маршруты
Полное отключение требует аккуратности: нельзя просто удалить rewrite rules без проверки старых URL. Надёжнее сначала закрыть их от индексации и поставить редирект на релевантную страницу, например на рубрику или главную блога. Для этого можно использовать template_redirect:
add_action('template_redirect', function () {
if (is_date()) {
wp_safe_redirect(home_url('/blog/'), 301);
exit;
}
});Редирект на /blog/ уместен только если у вас действительно есть страница блога. Если её нет, лучше вести на главную или на ближайшую рубрику. Не отправляйте все архивы дат на главную без логики — это ухудшает поведенческие сигналы и делает редирект формальным.
Если используете SEO-плагин
Во многих случаях проще закрыть архивы дат в SEO-плагине, если он умеет управлять мета robots для архивов. Но здесь важно не путать два действия:
- скрыть ссылку в интерфейсе;
- действительно запретить индексацию через
noindexилиX-Robots-Tag.
После изменения настроек проверьте исходный код страницы архива и HTTP-заголовки. Если плагин только убрал ссылку из меню, но страница по-прежнему отдаёт 200 OK и индексируется, задача не решена.
Если нужен более широкий набор инструментов для чистки дублей и технической оптимизации, на практике часто используют Clearfy Pro: он умеет закрывать лишние архивы и упрощает работу с техническими настройками. Ссылка для проверки: https://wpshop.ru/plugins/clearfy.
Проверка результата после внедрения
После правки не ограничивайтесь визуальной проверкой. Нужны три шага:
- Откройте архив даты в браузере и убедитесь, что страница доступна или редиректит туда, куда вы задумали.
- Проверьте заголовки ответа через
curl -Iили DevTools: если оставляете архив, он должен содержать корректныйnoindex; если ставите редирект, должен быть301. - Посмотрите исходный код и убедитесь, что на странице нет лишнего canonical на сам архив, если вы решили его убрать из индекса.
Дополнительно проверьте Search Console: новые настройки не применяются мгновенно, но со временем страницы архивов должны уйти из активного индекса или перестать появляться в отчётах как важные для обхода.
Частые ошибки и как их исправить
Оставили архив доступным, но забыли про noindex
Это самая частая ситуация. Ссылка исчезла из меню, но URL продолжает отдавать 200 OK и индексируется. Исправление простое: добавьте wp_robots или настройку в SEO-плагине и проверьте результат по исходному коду.
Поставили редирект без замены внутренних ссылок
Если в контенте или шаблоне остались ссылки на архивы дат, вы получите лишние переходы и цепочки редиректов. После внедрения пройдитесь по шаблонам и виджетам, уберите старые ссылки или замените их на рубрики и страницу блога.
Сделали 410 без анализа ссылочного профиля
Жёсткое удаление может быть оправдано, но только если на архивы нет внешних ссылок и они не нужны для пользователей. Иначе вы просто создадите битые переходы. Сначала проверьте входящие ссылки, потом принимайте решение.
Закрыли архивы, но не проверили другие дубли
Архивы дат часто идут вместе с архивами авторов, пагинацией и параметрами поиска. Если закрыть только один источник дублей, проблема останется в другом месте. Имеет смысл смотреть на техническую структуру целиком, а не точечно.
Чек-лист перед публикацией изменений
- Проверен код ответа архивов дат.
- Добавлен
noindexили настроен редирект. - Убраны внутренние ссылки на архивы там, где они не нужны.
- Проверен canonical и мета robots.
- Тест пройден в браузере и через
curl -I. - Изменения не ломают старые URL и навигацию.
Когда лучше не отключать архивы дат
Если у вас новостной сайт, журнал или проект, где дата — важный элемент навигации, архивы могут быть полезны. В таком случае не отключайте их полностью, а ограничьтесь noindex и аккуратной чисткой внутренних ссылок. Это сохранит функциональность для пользователей и уберёт лишний шум из индекса.
Если же архивы дат не несут пользы, лучше убрать их один раз и проверить, что сайт не потерял нужные переходы. В WordPress такие изменения всегда стоит делать через тестовую копию или staging, особенно если тема переопределяет архивные шаблоны или SEO-плагины уже управляют мета-тегами на уровне страницы.