Архивы по датам в WordPress часто появляются сами по себе: /2024/, /2024/05/, /2024/05/12/. Для новостных и блоговых сайтов это иногда полезно, но на большинстве проектов такие страницы только размазывают внутреннюю перелинковку, создают тонкие архивы и попадают в индекс без реальной ценности для поиска.
Если у вас уже настроены robots.txt и noindex для других служебных разделов, это не решает проблему полностью: URL остаются доступными, а поисковик может продолжать их обходить по внутренним ссылкам и sitemap. Поэтому лучше отключать сами архивы дат, а не только прятать их от индексации.
Когда архивы дат действительно мешают
Проблема обычно заметна по одному из сценариев:
- в индексе есть страницы вида
/2023/и/2023/11/, хотя на них почти нет полезного контента; - в Search Console растёт число страниц, которые не приносят трафик, но создают шум в отчётах;
- поиск показывает архивы дат вместо нормальных категорий или записей;
- тема или плагин выводят ссылки на архивы в сайдбаре, хлебных крошках или футере;
- на сайте есть старые записи, и архивы по месяцам выглядят как дубли навигации.
Как понять, что именно они создают проблему
Проверьте несколько вещей вручную:
- откройте URL архива даты в браузере и посмотрите, есть ли там осмысленный список записей;
- выполните поиск по сайту в Google с оператором
site:ваш-домен.ru 2024/05; - посмотрите исходный код страницы и найдите ссылки на архивы в меню, виджетах и футере;
- если используете SEO-плагин, проверьте, не генерирует ли он отдельные мета-теги для архивов дат.
Что лучше: отключить, закрыть noindex или оставить
Если архивы дат не несут ценности, лучший вариант — убрать их из публичной навигации и отдавать 404 или 410 для старых URL, если это допустимо по структуре сайта. Если на проекте уже есть внешние ссылки на такие страницы, иногда разумнее оставить редирект на релевантный раздел, а не просто удалять URL.
| Подход | Когда подходит | Минус |
|---|---|---|
| Отключить архивы в коде | Если они не нужны вообще | Нужно аккуратно проверить шаблоны и ссылки |
| Поставить noindex | Если URL пока должны открываться | Страницы остаются в обходе и могут висеть в индексе дольше |
| Сделать редирект | Если есть внешние ссылки или старый трафик | Нужно выбрать релевантную цель, а не редиректить всё на главную |
Пошаговое решение через functions.php или мини-плагин
Самый прямой способ — отключить архивы дат через фильтр date_archive_link и убрать сами правила архива из генерации ссылок. Но на практике чаще нужно не только скрыть ссылки, а ещё и запретить открытие этих страниц.
Ниже пример для дочерней темы или мини-плагина. Он отключает архивы дат и отдаёт 404 для запросов к ним.
<?php
/**
* Plugin Name: Disable Date Archives
*/
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;
}
});
add_filter('get_archives_link', function ($link_html) {
// Убираем ссылки на архивы дат из виджетов и списков архивов.
if (strpos($link_html, 'href=') !== false) {
return preg_replace('/<a[^>]*>.*?<\/a>/i', '', $link_html);
}
return $link_html;
});Этот вариант рабочий, но его лучше использовать только если вы понимаете, где именно на сайте выводятся архивы. Если тема жёстко собрана и архивы дат встроены в шаблоны, удобнее отключать их точечно через шаблон или через SEO-плагин.
Более аккуратный вариант: редирект на категорию или главную
Если архивы уже попали в индекс и на них есть внешние ссылки, можно сделать 301-редирект. Но редиректить всё на главную — плохая идея: поисковик видит несоответствие намерению пользователя. Лучше отправлять на ближайший тематический раздел.
<?php
add_action('template_redirect', function () {
if (is_date()) {
$target = home_url('/blog/'); // замените на реальный раздел
wp_safe_redirect($target, 301);
exit;
}
});Если у вас нет отдельного раздела блога, а сайт корпоративный, иногда лучше оставить 404. Это честнее, чем редиректить всё подряд на главную.
Как отключить архивы дат через SEO-плагин
Если на сайте уже стоит SEO-плагин, проверьте его настройки архивов. Некоторые плагины позволяют закрыть архивы авторов, дат и таксономий без кода. Это удобно, если вы не хотите править тему.
Но есть важный нюанс: не все плагины одинаково работают с архивами дат. Одни ставят noindex, другие отключают только вывод ссылок, а URL остаются доступными. Поэтому после изменения настроек обязательно проверяйте фактический ответ сервера и мета-теги.
Проверка результата после внедрения
После правки нужно убедиться, что архивы действительно отключены, а не просто спрятаны визуально.
- Откройте URL архива даты напрямую в браузере.
- Проверьте HTTP-статус через DevTools,
curl -Iили любой HTTP checker. - Убедитесь, что страница не отдает
200 OK, если вы ожидали 404 или редирект. - Проверьте исходный код на наличие
noindex, если вы выбрали именно этот вариант. - Посмотрите, исчезли ли ссылки на архивы из меню, виджетов и футера.
Пример проверки через консоль:
curl -I https://example.com/2024/05/Если вы видите 301, проверьте целевой URL. Если 404 — убедитесь, что это не ломает старые ссылки из внешних источников. Если 200 и страница всё ещё доступна, значит, правило не сработало или его перебивает тема/плагин.
Частые ошибки и как их исправить
Отключили ссылки, но страницы остались в индексе
Это типичная ситуация, когда из шаблона убрали блок архивов, но сами URL продолжают открываться. В этом случае поисковик всё ещё может обходить старые адреса. Решение — либо 404/410, либо 301 на релевантный раздел, либо noindex на переходный период.
Сделали редирект на главную
Такой редирект часто выглядит как техническая ошибка. Пользователь и поисковик ожидают архив дат, а получают нерелевантную страницу. Лучше вести на раздел блога, категорию или оставить 404, если архивы не нужны совсем.
Сломали навигацию в теме
Иногда архивы дат используются в шаблоне как часть хлебных крошек, сайдбара или блока «Архивы». После удаления кода проверьте, не появились ли PHP notices и не поехала ли верстка. Если тема старая, лучше делать правку в дочерней теме или мини-плагине, а не в исходниках.
Закрыли в robots.txt вместо реального отключения
Disallow не удаляет URL из индекса сам по себе. Если страница уже известна поисковику, она может оставаться в выдаче без сниппета. Для удаления мусорных архивов этого обычно недостаточно.
Что проверить на производительности и безопасности
Если архивов много, они могут создавать лишнюю нагрузку на обход и внутренние запросы к базе. После отключения полезно проверить, не остались ли:
- виджеты с архивами в сайдбаре;
- ссылки в футере и мобильном меню;
- автоматические блоки в шаблонах записей;
- старые sitemap-кэши и кэш страниц, который продолжает отдавать архивы.
Если вы используете кэш-плагин, после изменений очистите кэш страниц и, при необходимости, кэш объекта. Иначе вы можете смотреть на старую версию страницы и думать, что правка не сработала.
Для сайтов, где нужно быстро убрать несколько типов дублей и служебных страниц без ручной правки кода, иногда удобнее использовать Clearfy Pro: он закрывает ряд технических задач по SEO и чистке сайта, но всё равно требует проверки результата на конкретном проекте. Ссылка: https://wpshop.ru/plugins/clearfy
Мини-чек-лист перед публикацией
- архивы дат больше не нужны как часть навигации;
- выбрано одно поведение: 404, 301 или noindex;
- ссылки на архивы убраны из шаблонов и виджетов;
- проверен HTTP-статус старых URL;
- очищен кэш сайта и CDN, если он есть;
- проверено, что в Search Console не растёт число мусорных страниц из-за старых ссылок.
Если после отключения архивов дат сайт стал чище в индексе и не потерял полезную навигацию, значит, решение выбрано правильно. Если же архивы всё ещё всплывают в выдаче, ищите не только в коде темы, но и в старых sitemap, внутренних ссылках и кэше.