wplangs.ru wordpress WP Langs

Как закрыть от индексации архивы дат в WordPress без поломки навигации

Архивы по датам в WordPress часто остаются включенными по умолчанию, хотя реальной пользы от них на сайте нет. В результате в индекс попадают страницы вида /2024/08/, которые дублируют ленту записей, размазывают внутренний вес и добавляют лишние URL в обход поискового краулера. Если у вас новостной сайт, блог или корпоративный журнал, это обычно не тот тип страниц, который стоит продвигать отдельно.

При этом просто поставить noindex недостаточно, если архивы уже участвуют во внутренней перелинковке, а в sitemap или хлебных крошках они продолжают всплывать как обычные страницы. Ниже — рабочая схема: как диагностировать проблему, чем закрывать архивы дат, как не сломать навигацию и как проверить, что всё действительно сработало.

Когда архивы дат становятся проблемой

Сами по себе архивы дат не вредны. Проблема начинается, когда они создают страницы с почти пустым или повторяющимся содержимым. Типичный сценарий: на архиве месяца показаны те же записи, что уже есть на главной, в рубриках и в тегах. Для поисковика это слабая страница, а для сайта — дополнительный URL, который нужно обходить и оценивать.

Проверить это можно быстро:

  • введите в поиск site:example.com inurl:/2024/ и посмотрите, есть ли в выдаче архивы дат;
  • откройте /2024/08/ и проверьте, есть ли там уникальный текст или только список постов;
  • посмотрите, не попадают ли такие архивы в XML-карту сайта;
  • проверьте, не ведут ли на них внутренние ссылки из виджетов, хлебных крошек или темы.

Диагностика: что именно нужно закрывать

В WordPress есть несколько типов архивов, и их часто путают. Закрывать нужно не всё подряд, а только то, что реально не несет ценности.

Тип страницыЧто обычно делатьКомментарий
Архивы датЗакрыть от индексацииЧаще всего это дубли ленты записей
Архивы авторовЗависит от сайтаЕсли авторские страницы пустые, их тоже лучше ограничить
РубрикиОставить в индексеОбычно это полезные посадочные страницы
ТегиПо ситуацииЕсли теговые архивы пустые, их лучше чистить отдельно

Если у вас уже есть SEO-плагин, сначала проверьте его настройки. Многие плагины умеют закрывать архивы дат без кода. Но если нужен точный контроль, лучше сделать это на уровне темы или небольшого mu-plugin.

Пошаговое решение через noindex и nofollow

Самый безопасный вариант для большинства сайтов — оставить архивы доступными для пользователей, но запретить их индексацию. Для этого WordPress позволяет управлять robots meta через фильтр wp_robots. Это современный способ, который не требует правки шаблонов в лоб.

<?php
add_filter( 'wp_robots', function( array $robots ) {
    if ( is_date() ) {
        $robots['noindex']  = true;
        $robots['nofollow'] = true;
    }

    return $robots;
} );

Код можно добавить в functions.php дочерней темы, но практичнее вынести его в небольшой плагин или mu-plugin, чтобы он не пропал при обновлении темы. Если на сайте уже используется SEO-плагин, проверьте, не конфликтует ли он с этим фильтром: иногда один слой ставит noindex, а другой потом перезаписывает мета-теги.

Если архивы дат нужно убрать из поиска полностью

Иногда требуется не только noindex, но и более жесткое поведение: например, если архивы уже давно не нужны и вы хотите отдать их в 404 или 410. Это стоит делать аккуратно, потому что старые ссылки могут быть в закладках, логах и внешних упоминаниях. Для таких случаев лучше сначала оставить noindex, а уже потом решать, нужен ли редирект на релевантную страницу.

Если архивы дат не нужны вообще, можно перенаправить их на главную или на архив рубрики, но только если это логично по структуре сайта. Универсального редиректа «всё на главную» лучше избегать: поисковик и пользователь должны понимать, куда они попали.

<?php
add_action( 'template_redirect', function() {
    if ( is_date() ) {
        wp_safe_redirect( home_url( '/' ), 301 );
        exit;
    }
} );

Этот вариант подходит не всем. Если на архивы дат уже есть внешние ссылки, резкий 301 на главную может выглядеть как мягкая ошибка и ухудшить качество переобхода. В большинстве случаев сначала достаточно noindex.

Как не сломать навигацию и внутренние ссылки

Закрыть архивы от индексации — не значит удалить их из интерфейса. Пользователь может по-прежнему переходить по календарю, виджетам или хлебным крошкам. Важно проверить, не создают ли эти ссылки лишний шум.

  • уберите календарный виджет, если он не нужен;
  • проверьте блоки в сайдбаре и футере;
  • если тема выводит ссылки на архивы дат в хлебных крошках, отключите этот элемент или измените логику;
  • не добавляйте архивы дат в XML sitemap;
  • не дублируйте их в HTML-карте сайта.

Если вы используете SEO-плагин, удобнее делать это через его настройки, а не вручную. Но даже в этом случае полезно проверить исходный HTML страницы: иногда в <meta name="robots"> нужный атрибут есть, а в sitemap архивы всё равно остаются.

Проверка результата после внедрения

После изменения не ограничивайтесь открытием страницы в браузере. Проверьте три уровня: HTML, индекс и обход.

  1. Откройте архив даты и посмотрите исходный код страницы.
  2. Убедитесь, что в <meta name="robots"> или в заголовках есть noindex.
  3. Проверьте, что страница не попала в sitemap.
  4. В Search Console отправьте URL на проверку и посмотрите, как робот видит страницу.
  5. Через несколько дней проверьте, исчез ли архив из выдачи по запросу site:.

Если вы хотите проверить именно заголовок ответа, используйте curl:

curl -I https://example.com/2024/08/

В ответе вы не всегда увидите noindex, потому что он может быть задан в HTML, а не в HTTP-заголовке. Поэтому лучше смотреть и заголовки, и исходник страницы.

Частые ошибки и как их исправить

Поставили noindex, но архив всё равно в индексе

Причина обычно одна из двух: страница ещё не переобошлась или где-то осталась ссылка из sitemap. Сначала уберите URL из карты сайта, затем дождитесь переобхода. Если страница давно не обновлялась, можно ускорить процесс через проверку URL в Search Console.

Закрыли архивы через robots.txt

Это частая ошибка. Если запретить обход в robots.txt, поисковик может не увидеть мета-робот noindex и оставить URL в индексе как «известный, но не просканированный». Для удаления из выдачи это слабый вариант. Лучше использовать noindex на самой странице.

Сделали 301 на главную без анализа

Такой редирект часто выглядит искусственно. Если у архивов были внешние ссылки, поисковик может долго переоценивать их назначение. Если редирект нужен, направляйте на ближайшую релевантную страницу: рубрику, архив года или раздел блога.

Оставили архивы в sitemap

Это ломает логику закрытия. Поисковик видит URL в карте сайта и продолжает считать его важным. Если используете Yoast SEO, Rank Math или другой SEO-плагин, проверьте, можно ли отключить именно date archives в XML sitemap, а не только поставить noindex.

Практические советы по безопасности и производительности

Если вы правите поведение архивов кодом, не вносите изменения в родительскую тему. После обновления они пропадут. Для небольших правок лучше создать mu-plugin: он загружается автоматически и не зависит от темы.

<?php
/**
 * Plugin Name: Disable Date Archives Indexing
 */
add_filter( 'wp_robots', function( array $robots ) {
    if ( is_date() ) {
        $robots['noindex']  = true;
        $robots['nofollow'] = true;
    }
    return $robots;
} );

С точки зрения производительности это почти не влияет на нагрузку. Но если вы добавляете дополнительные проверки в template_redirect или строите сложные условия по ролям, следите, чтобы код не выполнялся на каждом запросе без необходимости. Для такой задачи достаточно простого условного тега is_date().

Если на сайте много технических дублей, полезно смотреть на проблему шире: архивы дат, архивы авторов, страницы вложений, теги и параметры сортировки часто создают один и тот же эффект — раздувают индекс. В таких сценариях удобнее сначала составить список URL-типов, а потом закрывать их по одному, проверяя результат после каждого шага.

×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше