Архивы по датам в WordPress часто появляются сами по себе: /2024/05/, /2024/05/15/ и похожие URL начинают индексироваться, хотя пользы от них нет. На небольшом сайте это просто лишний шум, а на контентном проекте — ещё и источник дублей, слабых страниц и лишней нагрузки на обход поисковыми роботами.
Задача обычно не в том, чтобы «удалить всё подряд», а в том, чтобы аккуратно закрыть именно date archives, не трогая записи, рубрики, теги и другие нужные страницы. Ниже — рабочие варианты: через SEO-плагин, через код и через проверку результата после внедрения.
Когда архивы дат действительно мешают
Проблема заметна не всегда сразу. Чаще всего она всплывает после проверки индексации в Search Console, анализа логов или при ручном поиске по сайту. Архивы дат становятся лишними, если:
- на сайте публикации не привязаны к датам как к смысловой структуре;
- страницы архивов показывают слишком мало контента или только список записей;
- поисковик индексирует много URL, которые не приводят трафик;
- в выдаче появляются страницы вида
/2023/,/2023/11/, хотя они не нужны пользователю; - в теме или плагинах уже есть другие архивы, и date archives только создают дубли.
Что именно нужно проверить перед отключением
Сначала убедитесь, что на архивы дат не завязаны внутренние ссылки, меню или внешние материалы. Если где-то в шаблоне есть ссылки на архивы по месяцам, после отключения они начнут вести в никуда. Также проверьте, не использует ли сайт архивы дат как навигацию по новостям или журналу. В таком случае лучше не отключать их полностью, а закрыть от индексации и оставить для пользователей.
Диагностика: как понять, что проблема именно в date archives
Самый быстрый способ — посмотреть, какие URL уже попали в индекс. В поиске по сайту или в Google используйте запросы вроде site:example.com/2024/ или site:example.com/2024/05/. Если там есть страницы архивов, а они не несут ценности, это кандидат на отключение.
Полезно также открыть несколько таких страниц вручную и посмотреть, что они отдают:
- полный список записей без уникального текста;
- пустой или почти пустой архив;
- дублирующийся заголовок и мета-данные;
- каноникал на сам архив, хотя страница не нужна в индексе.
Если у вас установлен SEO-плагин, проверьте, не управляет ли он архивами отдельно. Иногда date archives уже закрыты, но в индексе остаются старые URL, и тогда нужна не только настройка, но и корректная обработка уже существующих страниц.
Способ 1: отключить архивы дат через SEO-плагин
Если сайт уже использует SEO-плагин, это самый безопасный путь. В большинстве случаев достаточно выключить архивы дат в настройках таксономий и архивов. Удобство здесь в том, что плагин обычно сам добавляет нужные мета-данные и не требует правки темы.
Например, в Clearfy Pro есть инструменты для чистки сайта и управления лишними архивами. Это полезно, если вы хотите убрать не только date archives, но и другие технические страницы без ручного кода.
| Подход | Плюсы | Минусы |
|---|---|---|
| SEO-плагин | Быстро, без правки темы, удобно для редактора | Зависимость от настроек плагина, не всегда гибко |
| Код в теме/плагине | Полный контроль, минимум лишнего | Нужно аккуратно тестировать после обновлений |
| Только noindex | Не ломает старые ссылки | URL остаются доступны, не решает проблему дублей полностью |
Способ 2: отключить архивы дат кодом
Если нужен точечный контроль, проще всего сделать это через небольшой сниппет. Лучше не править functions.php активной темы, а добавить код в мини-плагин или в mu-plugin, чтобы он не пропал после смены темы.
Ниже пример, который отключает архивы по дате и отдаёт 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;
}
});Если вам нужно не 404, а мягкое перенаправление на главную или на архив рубрики, используйте wp_redirect(). Но здесь важно не делать случайный редирект на нерелевантную страницу: поисковики это обычно воспринимают хуже, чем честный 404 или 410.
<?php
add_action('template_redirect', function () {
if (is_date()) {
wp_safe_redirect(home_url('/'), 301);
exit;
}
});На практике 301 на главную — не лучший универсальный вариант. Если у вас есть логичная замена, например архив рубрики или страница раздела, редирект должен вести туда. Если замены нет, лучше оставить 404 и убрать URL из индекса естественным образом.
Способ 3: оставить URL для пользователей, но закрыть от индексации
Иногда архивы дат нужны как навигация для читателя, но не нужны в поиске. Тогда не отключайте их полностью, а добавьте noindex через SEO-плагин или фильтр, если плагин это поддерживает. Такой вариант полезен для новостных сайтов, где архив по месяцам может быть удобен внутри сайта, но не должен конкурировать с записями.
Важно понимать разницу: noindex не убирает URL из сайта и не исправляет внутреннюю структуру, он только просит поисковик не держать страницу в индексе. Если архивы дат создают много мусора, лучше всё же отключать их полностью.
Проверка результата после внедрения
После изменения не ограничивайтесь открытием одной страницы в браузере. Проверьте результат по нескольким уровням:
- откройте старый URL архива даты и убедитесь, что он отдаёт 404, 410 или редирект туда, куда вы планировали;
- посмотрите исходный код страницы, если архив оставлен: нет ли
index,followтам, где нуженnoindex; - проверьте ответ сервера через DevTools или
curl -I; - в Search Console отправьте проверку URL и посмотрите, как робот видит страницу;
- через несколько дней повторно проверьте выдачу по запросу
site:example.com/2024/.
Пример быстрой проверки заголовков ответа:
curl -I https://example.com/2024/05/Если всё сделано правильно, вы увидите либо 404 Not Found, либо 301 Moved Permanently на нужный адрес, либо страницу с noindex, если вы оставили архив доступным.
Частые ошибки и как их исправить
Ставят редирект на главную без логики
Это одна из самых частых ошибок. Если архив даты не имеет прямой замены, редирект на главную выглядит как мягкая ошибка 404, а не как полезная переадресация. Лучше либо отправить URL в 404/410, либо перенаправить на ближайший тематический раздел.
Отключают архивы в теме, а потом теряют настройку после обновления
Если код лежит в functions.php, обновление темы может его затереть. Для таких задач безопаснее использовать отдельный мини-плагин или mu-plugin. Это особенно важно, если сайт обслуживается несколькими людьми и тема обновляется регулярно.
Закрывают архивы только в robots.txt
Это не решает проблему полностью. Если URL уже известен поисковику, он может продолжать учитывать его в индексе без контента. Для удаления из выдачи нужен либо noindex, либо корректный 404/410, либо редирект на релевантную страницу.
Не проверяют старые ссылки в контенте
После отключения архивов иногда ломаются ссылки в статьях, блоках или виджетах. Перед публикацией изменений пройдитесь по шаблонам, меню и текстам, где могли быть ссылки на даты.
Что делать с безопасностью и производительностью
Сама по себе отключённая дата-архивация не ускоряет сайт магически, но убирает лишние запросы и уменьшает количество страниц, которые нужно обслуживать и обходить. Если на сайте много технического мусора, имеет смысл параллельно проверить:
- не создаются ли лишние архивы авторов, тегов и форматов;
- не генерируются ли пустые страницы пагинации;
- не дублируются ли заголовки и мета-описания;
- не тянет ли тема тяжёлые шаблоны для архивов, которые никто не использует.
Если вы хотите чистить сайт системно, а не точечно, удобнее делать это через набор проверенных инструментов, а не через разрозненные хаки в теме. Но даже в этом случае сначала фиксируйте конкретную проблему, а потом уже меняйте конфигурацию.
В итоге рабочая схема обычно такая: сначала находите, какие date archives реально попали в индекс, потом выбираете один из трёх путей — отключить, закрыть от индекса или перенаправить на релевантный раздел — и после этого проверяете ответ сервера и состояние URL в поиске. Именно эта последовательность даёт предсказуемый результат без побочных эффектов.