Архивы по датам в WordPress часто создают страницы, которые не несут пользы ни посетителям, ни поисковым системам: записи за день, месяц или год обычно дублируют ленту блога и собирают тонкий контент. Если на сайте нет задачи вести журнал публикаций по календарю, такие архивы лучше отключить или закрыть от индексации.
Сделать это можно несколькими способами: убрать ссылки на архивы из темы, закрыть сами страницы от индексации или полностью отключить их генерацию на уровне сайта. Выбор зависит от того, нужно ли вам сохранить доступ для пользователей и как именно устроен шаблон WordPress.
Что именно нужно отключать: ссылки, страницы или индексацию
Сначала полезно разделить три разные задачи, потому что они решаются по-разному.
- Убрать ссылки на архивы дат — чтобы пользователи не попадали на них из меню, сайдбара, футера или виджетов.
- Закрыть архивы от индексации — чтобы поисковики не держали эти страницы в выдаче, но сами страницы при этом оставались доступны по прямой ссылке.
- Полностью отключить архивы дат — чтобы WordPress вообще не отдавал такие страницы или отдавал ошибку 404/410.
Для большинства сайтов достаточно второго варианта: архивы остаются технически доступными, но не попадают в индекс. Если же на сайте много дублей и вы точно не используете календарные архивы, можно пойти дальше и отключить их полностью.
Самый безопасный вариант: закрыть архивы дат от индексации
Если задача именно в том, чтобы убрать лишние страницы из индекса, а не ломать структуру сайта, начните с закрытия архивов от индексации. Это меньше рискованно, чем сразу удалять их из маршрутизации WordPress.
Проще всего сделать это через SEO-плагин, который умеет управлять мета-тегом robots и/или HTTP-заголовками для архивов. В настройках нужно найти раздел, где отключается индексация архивов дат, и выставить для них значение noindex. После этого поисковик сможет обходить страницу, но не должен включать её в выдачу.
Если у вас уже есть SEO-плагин, проверьте именно настройки архивов, а не только главной страницы или рубрик. На практике многие оставляют архивы дат открытыми просто потому, что не трогали этот отдельный пункт.
После изменения настроек проверьте исходный код любой страницы архива даты. В нём должен появиться мета-тег вида <meta name="robots" content="noindex,follow"> или аналогичная директива, если плагин использует другой способ.
Как отключить архивы дат в теме WordPress
Если архивы дат выводятся в шаблоне, их часто можно убрать без кода: через меню, виджеты или настройки темы. Обычно ссылки на архивы попадают в сайдбар, футер или блок «Архивы».
Проверьте такие места:
- Внешний вид → Меню — нет ли там пункта с архивами.
- Внешний вид → Виджеты — не добавлен ли стандартный виджет «Архивы».
- Настройки темы — многие темы имеют отдельные переключатели для показа архивов, метаданных и блоков в сайдбаре.
Если ссылка на архивы дат убрана из интерфейса, это не значит, что сами страницы исчезли. WordPress по-прежнему может отдавать их по прямому URL, поэтому для SEO этого шага обычно недостаточно. Его стоит рассматривать как дополнение к закрытию от индексации или полному отключению.
Полное отключение архивов дат через код
Если вам нужно именно отключить архивы дат, а не просто скрыть их от поисковиков, можно добавить небольшой код в functions.php дочерней темы или в собственный мини-плагин. Этот вариант подходит, когда вы контролируете сайт и понимаете, что архивы дат на нём не нужны.
Перед изменениями сделайте резервную копию файлов темы или базы данных. Если код добавить с ошибкой, можно получить белый экран или потерять доступ к админке.
Ниже пример, который переводит архивы по дням, месяцам и годам в 404-ответ. WordPress перестанет показывать такие страницы как архивы.
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;
}
} );Что делает этот код:
is_date()проверяет, что запрос относится к архиву даты;set_404()помечает запрос как несуществующий;status_header( 404 )отправляет корректный HTTP-статус;include get_query_template( '404' )подключает шаблон 404 вашей темы.
Такой подход уместен, если вы хотите, чтобы архивы дат не существовали вообще. Но если на сайте уже есть внешние ссылки на эти страницы, резкое удаление может временно увеличить количество 404 в логах. В этом случае иногда разумнее сначала закрыть архивы от индексации, а уже потом убрать их полностью.
Если нужно не 404, а 410 Gone
Для страниц, которые вы удаляете намеренно и окончательно, иногда используют ответ 410 Gone. Он сообщает поисковикам, что страница удалена навсегда. Это не обязательный шаг, но в некоторых случаях помогает быстрее убрать старые URL из индекса.
Для архивов дат такой вариант подходит, если вы точно решили, что они больше не будут существовать. Тогда код будет немного другим:
add_action( 'template_redirect', function () {
if ( is_date() ) {
status_header( 410 );
nocache_headers();
wp_die( 'Страница удалена.' );
}
} );Здесь важно понимать разницу: 404 означает, что страница не найдена, а 410 — что она удалена намеренно. Для пользователя это почти одинаково, но поисковые системы могут обрабатывать такие ответы по-разному.
Как убрать архивы дат из sitemap и внутренних ссылок
Даже если архивы закрыты от индексации, они могут продолжать появляться в карте сайта или внутренних ссылках. Это лишний шум для поисковика и лишние переходы для пользователей.
Проверьте три места:
- XML-карта сайта — архивы дат не должны попадать туда, если ваш SEO-плагин умеет управлять типами страниц в sitemap.
- Блоки «Архивы» и календарь — их лучше удалить, если они не нужны для навигации.
- Шаблоны темы — иногда ссылки на архивы встроены в footer.php, sidebar.php или в кастомные блоки.
Если вы используете собственную тему, ищите в шаблонах функции вроде wp_get_archives(). Именно она часто выводит список архивов по месяцам. Удаление или замена этого вызова убирает ссылку из интерфейса, но не влияет на саму маршрутизацию архивов, если она остаётся доступной.
Как проверить, что лишние страницы действительно исчезли из индекса
После настройки не ограничивайтесь визуальной проверкой. Нужно убедиться, что поисковик видит правильный статус страницы.
Проверьте следующее:
- Откройте URL архива даты в браузере и посмотрите, что он отдаёт: 200, 404 или 410.
- Посмотрите исходный код страницы, если архив оставлен доступным: там должен быть
noindex. - Проверьте карту сайта: архивов дат в ней быть не должно.
- В Google Search Console отправьте на повторную проверку уже существующие URL, если они были в индексе.
Если архивы уже были проиндексированы, их удаление не происходит мгновенно. Поисковику нужно время, чтобы заново обойти сайт и увидеть новые сигналы. Обычно быстрее всего уходят страницы с 410 или с явным noindex, но срок зависит от частоты обхода сайта и его размера.
Что выбрать в реальной ситуации
| Сценарий | Что делать | Когда подходит |
|---|---|---|
| Архивы не нужны, но ломать сайт не хочется | Закрыть от индексации | Почти всегда как первый шаг |
| Архивы не нужны вообще | Отключить через код и вернуть 404 | Если на них нет полезного трафика и ссылок |
| Страницы уже удалены навсегда | Отдавать 410 Gone | Если нужно ускорить очистку индекса |
На практике чаще всего начинают с noindex, проверяют, как сайт реагирует, и только потом полностью отключают архивы. Это самый аккуратный путь, если вы не хотите случайно сломать старые ссылки или шаблоны темы.
Если на сайте много технических дублей и вы хотите централизованно чистить их без ручной возни с шаблонами, можно посмотреть в сторону Clearfy Pro: он помогает управлять лишними страницами и SEO-обвязкой WordPress. Но даже с таким инструментом всё равно стоит понимать, какие именно архивы вы отключаете и как они отдаются сервером.