Архивы таксономий в WordPress часто создают лишние страницы: теги, нестандартные рубрики, служебные таксономии плагинов. На небольшом сайте это выглядит безобидно, но в индексе быстро появляются дубли, пустые архивы и страницы с тонким контентом. Если задача не в том, чтобы полностью убрать таксономии, а именно отключить их архивы без потери SEO, нужно действовать точечно: сначала понять, какие URL реально индексируются, потом закрыть или удалить только лишнее.
Ниже разберём рабочие варианты: через настройки SEO-плагина, через код и через проверку результата в индексе и в ответах сервера.
Когда архивы таксономий действительно мешают
Проблема обычно проявляется не в админке, а в поиске и логах. Типичные признаки:
- в индексе есть страницы тегов, которые дублируют рубрики или подборки;
- архивы таксономий открываются, но содержат 1–2 записи и не дают пользы пользователю;
- появляются URL с параметрами сортировки или фильтров, которые тоже попадают в обход;
- поисковик тратит краулинговый бюджет на страницы, которые не должны ранжироваться.
Важно не путать отключение архива и удаление самой таксономии. Если таксономия нужна для внутренней структуры контента, её можно оставить в админке, но закрыть публичный архив.
Диагностика: что именно нужно отключать
Перед изменениями проверьте, какие таксономии у вас есть и какие из них публичные. Это можно сделать в коде темы или временно через сниппет в functions.php:
<?php
add_action('init', function () {
$taxonomies = get_taxonomies([], 'objects');
foreach ($taxonomies as $taxonomy) {
if (!empty($taxonomy->public)) {
error_log(sprintf(
'Taxonomy: %s | public=%s | rewrite=%s',
$taxonomy->name,
$taxonomy->public ? 'yes' : 'no',
is_array($taxonomy->rewrite) ? 'yes' : 'no'
));
}
}
});Этот код не решает задачу сам по себе, но помогает понять, какие таксономии реально доступны по URL. После проверки его лучше убрать.
Что смотреть в первую очередь
Если речь о SEO, приоритет такой:
- теги с низкой ценностью;
- кастомные таксономии плагинов, если они дублируют рубрики;
- архивы с пустыми или почти пустыми страницами;
- архивы, которые уже закрыты в robots.txt, но всё равно доступны по прямой ссылке.
Рабочие способы отключить архивы таксономий
Есть три нормальных подхода: закрыть от индексации, вернуть 404/410 или полностью убрать публичный архив. Выбор зависит от того, нужна ли таксономия пользователям и есть ли на неё внешние ссылки.
| Подход | Что делает | Когда использовать | Компромисс |
|---|---|---|---|
| noindex | Страница доступна, но не должна индексироваться | Если архив нужен для навигации | URL остаётся доступным, краулер всё равно может заходить |
| 404/410 | Архив исчезает как страница | Если архив точно не нужен | Нужно настроить редиректы или принять потерю URL |
| Отключение rewrite | Публичный URL не создаётся | Если таксономия нужна только в админке | Нужно аккуратно проверить шаблоны и ссылки |
Вариант 1: закрыть архив от индексации через SEO-плагин
Если у вас уже стоит SEO-плагин, это самый безопасный путь. В Yoast, Rank Math и похожих решениях можно отключить индексацию таксономий в настройках архивов. Логика простая: архив остаётся доступным для пользователей, но получает noindex и не должен попадать в выдачу.
Плюс этого варианта в том, что не нужно трогать код темы. Минус — URL всё равно существует, а значит, при большом количестве архивов краулинг не исчезает полностью.
Вариант 2: убрать публичный архив у своей таксономии
Если таксономия создана вами или плагином, который позволяет переопределить параметры, можно отключить публичный архив на уровне регистрации. Для своей таксономии это делается через register_taxonomy():
<?php
add_action('init', function () {
register_taxonomy('project_tag', ['project'], [
'label' => 'Теги проектов',
'public' => false,
'publicly_queryable'=> false,
'show_ui' => true,
'show_in_nav_menus' => false,
'show_admin_column' => true,
'rewrite' => false,
'hierarchical' => false,
]);
}, 20);Здесь ключевые параметры — public, publicly_queryable и rewrite. Если rewrite выключен, WordPress не будет генерировать красивый архивный URL. Но такой код нельзя бездумно вставлять в уже работающий сайт: если архивы были в индексе, их нужно либо перенаправить, либо отдать 404/410.
Вариант 3: вернуть 410 для ненужных архивов
Если архивы уже не нужны и вы хотите явно сообщить поисковикам, что страница удалена навсегда, можно отдавать 410 Gone. Это уместно для устаревших тегов или служебных таксономий, которые не должны возвращаться.
<?php
add_action('template_redirect', function () {
if (is_tax('project_tag')) {
status_header(410);
nocache_headers();
include get_query_template('404');
exit;
}
});Этот вариант подходит только если вы уверены, что архив не нужен ни пользователям, ни внутренним ссылкам. Если на него ведут старые URL, сначала настройте редирект на релевантную рубрику или страницу.
Пошаговое решение без лишнего риска
- Составьте список таксономий, которые реально открываются по URL.
- Проверьте, есть ли у них трафик, внешние ссылки и внутренние переходы.
- Для полезных архивов оставьте страницу, но закройте индексацию.
- Для бесполезных архивов настройте 410 или редирект на близкую по смыслу страницу.
- После изменений обновите sitemap и отправьте на переобход важные URL.
Если архивов много, не меняйте всё разом. Начните с одной таксономии, проверьте реакцию сайта и только потом масштабируйте решение.
Как проверить, что отключение сработало
Проверка должна быть не визуальной, а технической. Откройте архив в браузере и посмотрите:
- какой код ответа возвращает сервер;
- есть ли в HTML мета-тег
noindex; - не осталась ли страница в sitemap;
- не ведут ли на неё внутренние ссылки из меню, хлебных крошек или блоков тегов.
Для быстрой проверки ответа сервера удобно использовать curl:
curl -I https://example.com/tag/sample/Если вы закрывали страницу через noindex, в ответе должен быть обычный 200 OK, а в исходнике — соответствующий мета-тег. Если отдаёте 410, проверьте, что нет цепочки редиректов и что страница действительно исчезла из индекса после переобхода.
Что проверить в Search Console
После внедрения откройте отчёт по страницам и посмотрите, как меняется статус URL. Для закрытых архивов нормально, если они постепенно уходят из индекса. Если страница продолжает индексироваться, обычно причина одна из трёх: есть каноникал на саму страницу, sitemap всё ещё содержит URL, или на архив ведут внутренние ссылки.
Частые ошибки и как их исправить
- Закрыли архив в robots.txt, но не убрали из индекса. Robots.txt не удаляет уже известный URL из выдачи. Для удаления нужен
noindex, 410 или редирект. - Поставили 404 на полезную таксономию. Если архив нужен для навигации, лучше оставить его доступным и закрыть от индексации.
- Отключили rewrite, но не проверили внутренние ссылки. Меню, виджеты и хлебные крошки могут продолжать вести на старые URL.
- Удалили архив без редиректа. Если на страницу были внешние ссылки, часть веса и трафика потеряется.
- Смешали таксономии и рубрики. Иногда проще оставить одну структуру, чем поддерживать две параллельные.
Безопасность и производительность: что не стоит игнорировать
Если вы отключаете архивы через код, делайте это в дочерней теме или в небольшом mu-plugin. Так изменения не исчезнут после обновления темы. Перед правками проверьте резервную копию и список активных плагинов, которые могут переопределять таксономии.
Для сайтов с большим количеством дублей полезно дополнительно проверить:
- не генерируются ли архивы по тегам автоматически при импорте контента;
- не создаёт ли плагин фильтрации отдельные URL с параметрами;
- не дублируются ли одни и те же записи в нескольких таксономиях без смысла.
Если нужна более широкая чистка дублей и SEO-настроек, имеет смысл смотреть в сторону инструментов вроде Clearfy Pro, но только как в дополнение к ручной проверке, а не вместо неё.
Практический чек-лист перед публикацией изменений
- Список таксономий составлен.
- Понято, какие архивы нужны пользователям.
- Для ненужных архивов выбран один способ: noindex, 410 или отключение rewrite.
- Старые URL проверены на наличие внешних ссылок.
- Обновлены sitemap и внутренние ссылки.
- Проверен код ответа сервера через
curl -I. - Страницы перепроверены в Search Console после переобхода.
Если после изменений архив всё ещё индексируется, не ищите проблему в одном месте. Обычно это комбинация из sitemap, внутренних ссылок и отсутствующего или конфликтующего каноникала. В таких случаях проще идти от ответа сервера и исходного HTML, чем от настроек плагина.