wplang.ru wordpress WP Lang

Как закрыть от индексации архивы авторов и дат в WordPress без лишних дублей

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

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

Когда архивы авторов и дат реально мешают

Сначала стоит понять, есть ли у вас вообще проблема. Архивы не всегда вредны: у новостных проектов архив даты может быть полезен, а у блога с несколькими авторами страницы авторов иногда работают как витрина экспертизы. Но если архивы пустые, дублируют главную ленту или содержат по 2–3 записи, поисковику они обычно не нужны.

Типичные признаки

  • в индексе есть страницы вида /author/ivan/ и /2024/05/, но они не дают трафик;
  • в Search Console растёт число «Просканировано, но не проиндексировано» для архивов;
  • в выдаче видны страницы архивов вместо нужных записей;
  • на сайте есть дубли заголовков и описаний между архивами и основными страницами рубрик.

Диагностика: что именно сейчас индексируется

Перед изменениями проверьте фактическое состояние, а не только настройки плагина. Иногда архив уже закрыт в мета-тегах, но доступен в sitemap, либо наоборот — в robots meta стоит noindex, а страница всё равно попадает в индекс из-за старых ссылок и отсутствия каноникала.

Что смотреть вручную

  • исходный код страницы архива: есть ли <meta name="robots" content="noindex,follow">;
  • HTTP-заголовки, если они используются для индексации;
  • наличие URL в XML-карте сайта;
  • канонический адрес страницы;
  • поисковый оператор site:example.com author или site:example.com 2024/05 для быстрой проверки следов в индексе.

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

Пошаговое решение через код

Самый надёжный вариант — явно задать noindex для архивов авторов и дат. Для этого не нужно трогать robots.txt: поисковику важнее мета-тег на самой странице. Код можно добавить в functions.php дочерней темы или в небольшой mu-plugin.

Вариант 1: закрыть архивы от индексации через wp_robots

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

	return $robots;
} );

Этот способ работает на современных версиях WordPress, где используется фильтр wp_robots. Он не ломает остальные директивы и обычно лучше, чем вручную печатать мета-тег в wp_head.

Вариант 2: убрать архивы из sitemap

Если архивы не должны индексироваться, логично не показывать их и в карте сайта. В WordPress это зависит от того, кто формирует sitemap. Если вы используете встроенную карту сайта, можно исключить типы архивов через фильтры, но на практике чаще проще отключить их в SEO-плагине или проверить, не добавляет ли плагин отдельные sitemap для авторов и дат.

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

Вариант 3: убрать ссылки на архивы из шаблона

Если архивы не нужны пользователям, можно убрать ссылки на них из шаблонов автора, мета-блоков и хлебных крошек. Это не заменяет noindex, но уменьшает внутреннюю перелинковку на ненужные URL.

<?php
// Пример: вывод ссылки на автора только если архивы авторов нужны.
if ( ! is_author() ) {
	$author_id = get_the_author_meta( 'ID' );
	$author_url = get_author_posts_url( $author_id );
	if ( $author_url ) {
		echo '<a href="' . esc_url( $author_url ) . '">' . esc_html( get_the_author() ) . '</a>';
	}
}

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

Что выбрать: плагин, код или оба варианта

На практике есть три рабочих подхода. Выбор зависит от того, насколько у вас сложный стек и кто потом будет поддерживать сайт.

ПодходКогда подходитПлюсыМинусы
SEO-плагинЕсли уже используется Yoast, Rank Math или аналогБыстро, без правки темы, удобно для редактораЗависимость от интерфейса плагина, часть настроек может быть спрятана
Код в теме / mu-pluginЕсли нужен точечный контрольПрозрачно, предсказуемо, легко версионироватьНужно следить за обновлениями и тестировать после изменений
Плагин + кодЕсли SEO-плагин закрывает базу, а код нужен для исключенийГибкостьРиск конфликтов, если дублировать одну и ту же логику в двух местах

Если на сайте уже стоит Clearfy Pro, часть задач по чистке дублей и архивов можно закрыть через его настройки, но всё равно проверьте, что именно он делает на вашем шаблоне и не конфликтует ли с SEO-плагином. В таких задачах важен не бренд, а итоговый HTML на странице.

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

После правки не ограничивайтесь визуальной проверкой. Нужно убедиться, что поисковик видит именно то, что вы задумали.

Чек-лист проверки

  • откройте архив автора и архив даты в браузере;
  • посмотрите исходный код страницы и найдите noindex;
  • проверьте, что канонический URL не указывает на сам архив, если он вам не нужен;
  • убедитесь, что архив не попал в sitemap;
  • проверьте статус в Search Console после переобхода;
  • если архивы были в индексе, дождитесь повторного сканирования и не делайте выводы по одному дню.

Для быстрой локальной проверки удобно смотреть HTML через view-source: или через DevTools. Если используете терминал, можно проверить заголовки и содержимое страницы так:

curl -L https://example.com/author/ivan/ | grep -i robots

Если в ответе нет нужной директивы, значит настройка не сработала или её перезаписывает другой плагин.

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

1. Закрыли архив в robots.txt вместо meta robots

Disallow не равен noindex. Если URL уже известен поисковику, он может продолжать показываться без содержимого. Для удаления из индекса нужен именно noindex на странице или другой корректный механизм, а не только запрет обхода.

2. Поставили noindex, но оставили архив в sitemap

Это создаёт противоречивые сигналы. Поисковик видит URL в карте сайта, но на самой странице получает запрет на индексацию. В итоге переобход может затянуться, а диагностика станет сложнее.

3. Закрыли архив, но не убрали внутренние ссылки

Если ссылки на архив автора стоят в карточках постов, блоках «об авторе» и хлебных крошках, URL будет продолжать активно обходиться. Это не всегда ошибка, но если архив не нужен, лучше убрать и ссылки.

4. Использовали код в родительской теме

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

5. Смешали несколько SEO-плагинов

Два плагина могут одновременно писать robots meta и каноникал. В результате в HTML появятся конфликтующие директивы. Перед внедрением оставьте один источник правды для SEO-меток.

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

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

  • не плодите архивы, если они не несут отдельной ценности;
  • не дублируйте одну и ту же логику в SEO-плагине и в теме;
  • после изменений очистите кеш страницы и кеш объекта, если он есть;
  • если используете CDN или серверный кеш, проверьте, что старая версия HTML не отдаётся из кеша;
  • для правок в коде держите изменения в git или хотя бы в отдельном mu-plugin, а не в случайной вставке через админку.

Если задача шире и нужно одновременно чистить дубли, скрывать лишние архивы и наводить порядок в SEO-метках, удобнее собрать это в одном инструменте, чем поддерживать набор разрозненных правок. Но даже в этом случае сначала проверьте, что именно меняется в HTML, а не только в интерфейсе настроек.

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

×
C Днём программиста!
-20%

Ваша скидка
на премиум-темы и
плагины WordPress

Купить со скидкой сейчас ⋙