wplang.ru wordpress WP Lang

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

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

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

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

Сначала стоит понять, что именно ломает структуру. Проблема не всегда в самой таксономии. Иногда дубли создают:

  • архивы меток, которые повторяют содержание рубрик;
  • кастомные таксономии с пустыми или почти пустыми страницами;
  • страницы пагинации архивов, которые индексируются отдельно;
  • несколько таксономий, ведущих на один и тот же набор записей;
  • шаблон темы, который выводит одинаковые Title и Description для разных архивов.

Если в индексе уже есть десятки или сотни страниц вида /tag/..., /topic/... или /product-cat/..., сначала проверьте, есть ли у них реальная поисковая ценность. Если нет — их лучше закрыть или убрать из генерации.

Быстрая диагностика

Проверка занимает несколько минут и помогает не стрелять вслепую:

  1. Откройте несколько архивов таксономий и сравните заголовки, H1 и основной контент.
  2. Проверьте исходный код: есть ли noindex, canonical и корректные meta robots.
  3. Посмотрите, попадают ли архивы в XML-карту сайта.
  4. Сравните количество страниц в индексе с количеством реально полезных архивов.

Если архивы пустые или почти пустые, а в поиске они уже есть, проблема не в «плохом SEO-плагине», а в самой логике сайта.

Что делать: три рабочих подхода

Выбор зависит от того, нужна ли таксономия пользователю и поисковику. Для наглядности — короткое сравнение.

ПодходКогда подходитМинус
Закрыть от индексацииТаксономия нужна для навигации, но не для SEOАрхив остаётся доступным по URL
Убрать из sitemapНужно снизить шум в карте сайтаНе решает проблему полностью
Отключить архивы таксономииАрхивы не нужны вообщеНужно проверить ссылки и шаблоны

Вариант 1. Закрыть архивы от индексации

Это самый безопасный путь, если таксономия нужна для фильтрации или внутренней навигации. В WordPress можно добавить noindex,follow для нужных архивов через фильтр wp_robots.

<?php
add_filter( 'wp_robots', function( array $robots ) {
	if ( is_tax( array( 'topic', 'service' ) ) ) {
		$robots['noindex'] = true;
		$robots['follow']   = true;
	}

	return $robots;
} );

Такой вариант не ломает URL и не мешает пользователям переходить по архивам. Но он работает только если тема и SEO-плагин не переопределяют robots на уровне шаблона.

Вариант 2. Убрать таксономию из XML sitemap

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

<?php
add_filter( 'wp_sitemaps_taxonomies', function( array $taxonomies ) {
	unset( $taxonomies['post_tag'] );
	unset( $taxonomies['topic'] );

	return $taxonomies;
} );

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

Вариант 3. Отключить архивы таксономии полностью

Если архивы не используются ни пользователями, ни поиском, их лучше не публиковать вовсе. Для собственной таксономии это решается при регистрации параметром publicly_queryable и rewrite. Пример:

<?php
register_taxonomy( 'topic', array( 'post' ), array(
	'label'             => 'Темы',
	'public'            => true,
	'publicly_queryable' => false,
	'rewrite'           => false,
	'show_ui'           => true,
	'show_in_rest'      => true,
) );

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

Если таксономия уже встроена в тему или плагин

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

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

Для редиректа пустого архива можно использовать шаблонный файл taxonomy.php или отдельную проверку в template_redirect. Пример для случая, когда архив таксономии не должен открываться:

<?php
add_action( 'template_redirect', function() {
	if ( is_tax( array( 'topic', 'service' ) ) ) {
		wp_safe_redirect( home_url( '/' ), 301 );
		exit;
	}
} );

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

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

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

  1. Откройте архив таксономии и посмотрите исходный код: должен быть noindex, если вы его добавляли.
  2. Проверьте XML sitemap: нужная таксономия должна исчезнуть из карты сайта, если вы её отключали.
  3. Убедитесь, что URL не выдаёт 404, если вы не планировали отключать сам архив.

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

curl -I https://example.com/topic/some-term/

В ответе важно увидеть ожидаемый код: 200 для живого архива, 301 для редиректа или 404/410 для удалённой страницы. Если код не совпадает с логикой, ищите конфликт в плагине кэша, SEO-плагине или в шаблоне темы.

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

Оставили архив доступным, но не убрали его из индекса

Так бывает, когда добавили только noindex, но не проверили canonical и sitemap. Поисковик может ещё долго держать URL в индексе, особенно если на него есть внутренние ссылки. Решение: убрать страницу из sitemap, сократить количество ссылок на неё и дождаться переобхода.

Сломали навигацию после отключения архива

Если таксономия использовалась в меню, хлебных крошках или блоках фильтрации, отключение архива без замены логики даёт пустые ссылки. Перед удалением публичного архива проверьте, где он выводится. Иногда достаточно заменить ссылку на родительскую рубрику или на страницу-агрегатор.

Поставили редирект на главную для всех архивов

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

Не учли SEO-плагин

Если у вас уже стоит Yoast SEO, Rank Math или другой SEO-плагин, он может управлять robots и sitemap отдельно. Тогда код в теме не всегда даст ожидаемый результат. Сначала проверьте настройки плагина, потом уже добавляйте фильтры в functions.php или в mu-plugin.

Безопасность и производительность

Такие правки лучше не вносить прямо в тему, если сайт живой и тема может обновляться. Практичнее держать их в небольшом mu-plugin или в отдельном мини-плагине. Так вы не потеряете настройки после обновления и не смешаете SEO-логику с версткой.

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

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

Когда лучше не отключать архив, а переработать его

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

  • добавить уникальное описание термина;
  • показать только релевантные записи;
  • убрать пустые термины;
  • сделать нормальные Title и H1;
  • закрыть от индексации только служебные или дублирующие термины.

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

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

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

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