Архивы по датам в WordPress часто остаются включенными по умолчанию, хотя на большинстве сайтов они не несут самостоятельной ценности для поиска. В результате появляются страницы вида /2024/05/, /2024/05/17/ и похожие URL, которые дублируют логику рубрик, тегов или обычной ленты записей. Если сайт небольшой или контент публикуется нерегулярно, такие архивы обычно только размывают структуру индекса.
Ниже разберем, когда архивы дат лучше отключить, как сделать это аккуратно через код или плагин, и как проверить, что после изменений не осталось лишних URL в выдаче и внутренних ссылках.
Когда архивы дат действительно мешают
Проблема не в самих архивных страницах, а в том, что они начинают конкурировать с более полезными страницами сайта. Это особенно заметно, если:
- на сайте мало записей, и архивы дат содержат по 1–2 материала;
- записи уже хорошо сгруппированы по рубрикам;
- в шаблоне есть ссылки на архивы дат в сайдбаре, футере или хлебных крошках;
- поисковик индексирует страницы архивов, но они не дают трафика и не решают пользовательскую задачу;
- на сайте есть пагинация архивов, и количество URL быстро растет.
Если архивы дат используются как навигация для новостного проекта или журнала, отключать их полностью не всегда разумно. Но для корпоративных сайтов, блогов с тематическими рубриками и экспертных проектов это обычно лишний слой страниц.
Диагностика: как понять, что архивы дат уже попали в индекс
Сначала проверьте, есть ли такие URL в поиске и в самой структуре сайта. Это можно сделать без доступа к серверу.
Что смотреть в первую очередь
- поиск по сайту через
site:example.com/2024/илиsite:example.com/2024/05/; - отчеты в Google Search Console по страницам с датами;
- внутренние ссылки в теме оформления: архивы в меню, виджетах, футере;
- наличие архивов в XML-карте сайта, если карта генерируется плагином или темой;
- шаблоны
date.php,archive.phpи функции, которые выводят ссылки на архивы.
Если архивы дат уже индексируются, но не дают полезного трафика, их лучше либо закрыть от индексации, либо убрать из публичной навигации, либо сделать оба шага сразу — в зависимости от того, как устроен сайт.
Что выбрать: плагин, код или правка темы
Для этой задачи есть три рабочих подхода. Выбор зависит от того, нужен ли вам быстрый результат без разработки или точечный контроль над поведением WordPress.
| Подход | Когда подходит | Плюсы | Минусы |
|---|---|---|---|
| Плагин | Нужно быстро убрать дубли без правки кода | Просто включить, меньше риска сломать шаблон | Дополнительная зависимость, не всегда гибкая настройка |
Код в functions.php или мини-плагин | Нужен контроль и предсказуемое поведение | Нет лишних плагинов, легко проверить логику | Нужно аккуратно тестировать на staging |
| Правка темы | Архивы выводятся в шаблоне или меню темы | Можно убрать ссылки и шаблон целиком | При обновлении темы изменения могут затереться |
Если задача только в индексации, обычно достаточно закрыть архивы дат от поисковиков и убрать ссылки из интерфейса. Если архивы не нужны вообще, лучше отключить их генерацию и отдать 404 или 301 на более релевантную страницу.
Пошаговое решение через код
Ниже вариант, который отключает архивы дат на уровне WordPress и не требует отдельного плагина. Его удобно использовать в дочерней теме или в небольшом mu-plugin.
1. Перехватить запросы к архивам дат
Этот код переводит архивы дат в 404, если пользователь или бот открывает URL вида /2024/, /2024/05/ или /2024/05/17/. Так вы не оставляете в индексе активные страницы-архивы.
<?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, а закрыть их через noindex и убрать ссылки из навигации.
2. Добавить noindex для архивов дат
Если архивы должны открываться, но не должны индексироваться, можно добавить мета-тег noindex,follow только для этих страниц.
<?php
add_action('wp_head', function () {
if (is_date()) {
echo '<meta name="robots" content="noindex,follow" />' . "\n";
}
});Важно: этот способ не отменяет наличие URL, а только просит поисковик не включать их в индекс. Для чистки сайта этого иногда достаточно, но если архивы уже активно размечены внутренними ссылками, лучше дополнительно убрать их из меню и виджетов.
3. Убрать ссылки на архивы дат из темы
Проверьте, не выводит ли тема ссылку на архивы по датам в сайдбаре, футере или блоке метаданных записи. Если да, удалите этот вывод в шаблоне или через фильтр, если тема его поддерживает. Универсального хука для всех тем нет, поэтому здесь чаще всего приходится править конкретный шаблон.
Если ссылка собирается вручную, ищите что-то вроде:
<?php echo get_month_link( get_the_time('Y'), get_the_time('m') ); ?>В таком случае проще убрать сам вывод ссылки, чем пытаться закрывать ее после факта.
Если нужен быстрый вариант без кода
Когда нет доступа к разработчику или нужно быстро навести порядок, можно использовать SEO-плагин с настройками архивов. Например, в Clearfy Pro есть инструменты для удаления дублей и чистки сайта; это полезно, если нужно централизованно отключать лишние типы архивов и не править шаблоны вручную. Но даже в этом случае стоит проверить, какие именно URL реально закрываются, а какие продолжают жить в теме.
Плагин удобен, если у вас несколько типов дублей сразу: архивы дат, авторов, тегов, служебные страницы. Но если задача точечная и сайт небольшой, код обычно прозрачнее и легче в сопровождении.
Как проверить, что решение сработало
После внедрения не ограничивайтесь визуальной проверкой на фронтенде. Нужна проверка по фактическим URL и ответам сервера.
- Откройте несколько архивов дат вручную:
/2024/,/2024/05/,/2024/05/17/. - Убедитесь, что они отдают 404, если вы выбрали отключение, или содержат
noindex, если вы выбрали мягкое закрытие. - Проверьте исходный код страницы на наличие
<meta name="robots" content="noindex,follow" />. - Посмотрите, не остались ли ссылки на архивы в меню, виджетах и хлебных крошках.
- Через Search Console отправьте на переобход несколько старых URL, если они уже были в индексе.
Для быстрой проверки ответа сервера удобно использовать curl:
curl -I https://example.com/2024/05/Если вы ожидаете 404, в заголовках должен быть соответствующий статус. Если используете noindex, проверьте HTML-ответ, а не только код статуса.
Частые ошибки и как их исправить
Оставили ссылки на архивы в теме
Даже если архивы закрыты от индексации, поисковик и пользователи все равно могут ходить по ним через внутренние ссылки. В этом случае проблема не исчезает, а просто становится менее заметной. Решение — убрать ссылки из шаблона или заменить их на рубрики.
Поставили 301 на главную без логики
Редирект всех архивов дат на главную страницу выглядит просто, но часто это плохой компромисс. Поисковик получает нерелевантную замену, а пользователь — страницу, которая не отвечает на его запрос. Если архивы не нужны, 404 обычно честнее. Если нужен аналогичный контент, лучше перенаправлять на более близкую по смыслу рубрику.
Смешали noindex и canonical без понимания
Иногда в теме или SEO-плагине уже есть canonical, а вы сверху добавляете еще и ручной noindex. Это не всегда критично, но может запутать диагностику. Сначала проверьте, какие мета-теги уже выводит плагин, и не дублируйте их без необходимости.
Правили родительскую тему
Если отключение архивов дат завязано на шаблоны, не вносите изменения прямо в родительскую тему. После обновления они исчезнут. Используйте дочернюю тему или мини-плагин.
Практические советы по безопасности и производительности
Если вы вносите код вручную, лучше не вставлять его в случайный файл. Для точечных правок удобнее создать небольшой mu-plugin: он не отключится случайно и не зависит от активации темы.
<?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;
}
});Перед выкладкой на продакшен проверьте код на staging-сайте. Особенно если у вас нестандартная тема или SEO-плагин уже вмешивается в архивы. Для сайтов с высокой посещаемостью полезно еще и очистить кэш после изменения шаблонов, иначе старые страницы могут продолжать отдаваться из кэша.
Если вам нужен не только контроль архивов дат, но и более широкая чистка технических дублей, имеет смысл смотреть в сторону инструментов, которые помогают управлять служебными страницами централизованно. Но в любом случае сначала определите, какие URL реально нужны пользователю, а какие просто занимают место в индексе.
Короткий чек-лист перед публикацией изменений
- Проверил, нужны ли архивы дат как навигация.
- Определил, будет ли это 404, noindex или редирект.
- Убрал ссылки на архивы из темы и виджетов.
- Проверил ответ сервера через
curl -I. - Посмотрел исходный код страницы на наличие
noindex. - Очистил кэш и перепроверил URL в браузере и Search Console.
Если после изменений архивы дат перестали открываться или исчезли из индекса, но при этом не сломались рубрики, записи и пагинация, значит задача решена корректно. В WordPress такие правки лучше делать не «на глаз», а через проверяемые статусы, мета-теги и фактические ответы сервера — тогда результат предсказуем и не зависит от того, как именно тема собирает архивы.