В WordPress чаще всего проблема не в «плохом SEO», а в том, что поисковик видит лишние URL: страницы поиска, архивы автора, теги, вложения, параметры сортировки, служебные разделы плагинов. Если такие адреса попадают в индекс, сайт начинает раздуваться дублями и мусорными страницами. Ниже — рабочая схема, как закрывать именно индексацию, а не ломать обход сайта целиком.
Какие страницы обычно нужно закрывать
Сначала важно понять, что именно вы хотите убрать из индекса. robots.txt и meta robots решают разные задачи. Первый ограничивает обход, второй — индексирование уже найденной страницы. Если перепутать инструменты, можно получить URL, который всё равно будет показываться в поиске, но без контента или с устаревшим сниппетом.
Типичные кандидаты на запрет индексации
- страницы внутреннего поиска WordPress;
- архивы автора на небольших сайтах с одним редактором;
- теги, если они дублируют рубрики и не несут самостоятельной ценности;
- служебные страницы плагинов, которые не должны ранжироваться;
- вложения-медиа страницы, если они не используются как отдельные посадочные;
- страницы с параметрами, которые создают дубли.
Если у вас уже есть SEO-плагин, сначала проверьте его настройки. Во многих случаях проще закрыть архивы и таксономии в интерфейсе, чем писать код. Но если нужен точечный контроль, лучше сделать это вручную и проверить результат в HTML.
Диагностика: где именно возникает дубль
Перед правками откройте несколько проблемных URL и посмотрите исходный код страницы. Ищите мета-тег robots, канонический URL и следы индексации в sitemap. Если страница уже попала в индекс, одного Disallow в robots.txt может быть недостаточно: поисковик может оставить URL в выдаче без контента, если он уже известен.
Полезно проверить три вещи:
- Есть ли страница в XML-карте сайта.
- Есть ли на ней
noindexв HTML. - Не блокируется ли она слишком рано через
robots.txt, из-за чего поисковик не видитnoindex.
Если URL уже в индексе, обычно безопаснее сначала поставить noindex, follow, дождаться переобхода, а потом при необходимости ограничить обход через robots.txt.
Пошаговое решение: закрываем индексацию правильно
Вариант 1. Через SEO-плагин
Если у вас установлен плагин уровня Yoast SEO, Rank Math или аналогичный, используйте его для архивов, таксономий и отдельных типов записей. Это самый предсказуемый путь для редактора и не требует правки темы. Но не стоит закрывать всё подряд: например, рубрики часто полезнее тегов, а архивы автора на многопользовательском сайте могут давать нормальный трафик.
Плюс этого подхода в том, что плагин обычно сам добавляет noindex и убирает URL из sitemap. Минус — часть настроек размазана по интерфейсу, и легко забыть, что именно было отключено.
Вариант 2. Через код в теме или мини-плагине
Если нужна точечная логика, удобнее добавить фильтр wp_robots. Он позволяет управлять директивами для конкретных шаблонов и запросов. Ниже пример, который закрывает от индексации страницы поиска, архивы автора для одиночного редактора и вложения.
<?php
add_filter( 'wp_robots', function( array $robots ) {
if ( is_search() || is_attachment() ) {
$robots['noindex'] = true;
$robots['nofollow'] = false;
}
if ( is_author() && (int) get_query_var( 'author' ) === 1 ) {
$robots['noindex'] = true;
}
return $robots;
} );Если вы хотите закрыть от индексации конкретную таксономию, лучше проверять её явно, а не по общему признаку. Например, для тегов:
<?php
add_filter( 'wp_robots', function( array $robots ) {
if ( is_tag() ) {
$robots['noindex'] = true;
}
return $robots;
} );Такой код лучше размещать в небольшом mu-plugin, а не в functions.php темы. Тогда он не исчезнет при смене шаблона.
Вариант 3. Через robots.txt
robots.txt нужен для ограничения обхода, а не как основной способ убрать URL из выдачи. Его имеет смысл использовать для технических разделов, которые не должны тратить краулинговый бюджет: например, некоторые параметры, внутренние пути плагинов, временные каталоги. Но не блокируйте в robots.txt то, что уже должно получить noindex в HTML, иначе поисковик может не увидеть директиву.
Пример аккуратного файла:
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /?s=
Disallow: /search/
Sitemap: https://example.com/sitemap_index.xmlЗдесь важно не переусердствовать. Полный запрет на /wp-admin/ нормален, но закрывать весь сайт через Disallow: / — это уже аварийный сценарий, а не SEO-настройка.
Сравнение подходов
| Способ | Что делает | Когда использовать | Ограничение |
|---|---|---|---|
| SEO-плагин | Добавляет noindex, управляет sitemap | Для рубрик, тегов, архивов, медиа | Меньше точности, зависит от интерфейса |
wp_robots | Даёт точный контроль на уровне шаблона | Для нестандартной логики и отдельных URL | Нужен код и тестирование |
robots.txt | Ограничивает обход | Для технических путей и мусорных запросов | Не гарантирует удаление из индекса |
Как проверить, что решение сработало
После правок не ограничивайтесь просмотром страницы в браузере. Проверьте именно то, что видит поисковик.
- Откройте исходный код страницы и найдите
<meta name="robots"или заголовки, если они используются. - Проверьте, что проблемный URL исчез из XML-карты сайта, если он не должен индексироваться.
- Посмотрите ответ сервера для URL с помощью
curlи убедитесь, что страница отдаёт ожидаемый HTML.
Пример проверки заголовков:
curl -I https://example.com/search/test/Если вы используете noindex, убедитесь, что страница не заблокирована в robots.txt раньше времени. Иначе поисковик может не переобойти её и не увидеть новое правило.
Частые ошибки и как их исправить
Закрыли URL в robots.txt, но он остался в выдаче
Это нормальная ситуация, если URL уже был известен поисковику. Исправление: сначала поставить noindex, дождаться переобхода, потом при необходимости ограничить обход. Если страница не должна существовать вовсе, можно дополнительно вернуть 404 или 410 для удалённого контента.
Поставили noindex, но URL всё ещё в sitemap
Тогда поисковик продолжает видеть страницу как приоритетную для обхода. Уберите её из карты сайта через настройки SEO-плагина или через фильтры генератора sitemap, если используете кастомную реализацию.
Закрыли слишком много страниц
Частая ошибка — отключить индексацию всех архивов подряд, а потом потерять полезный трафик. Например, рубрики могут быть полноценными посадочными, а архивы автора на новостном сайте — нормальным источником переходов. Решение: закрывайте только то, что реально дублирует контент или не несёт самостоятельной ценности.
Использовали noindex и canonical одновременно без логики
Если canonical указывает на другой URL, а сама страница ещё и закрыта от индексации, поисковик может долго переосмысливать сигнал. В простых случаях canonical должен вести на основную версию, а noindex применяться только там, где страница не нужна в выдаче вообще.
Практические советы по безопасности и производительности
Не храните SEO-логику в случайных сниппетах из админки, если они не версионируются. Лучше вынести код в отдельный mu-plugin или маленький плагин проекта. Так проще откатить изменения и не потерять их после обновления темы.
Если на сайте много дублей из-за тегов, архивов и вложений, имеет смысл не только закрыть их от индексации, но и сократить генерацию лишних страниц на уровне контента. Для этого полезно проверить:
- не создаются ли теги автоматически без редакторского контроля;
- не плодятся ли страницы вложений для каждого изображения;
- не генерируют ли плагины отдельные архивы, которые не нужны пользователям;
- не добавляют ли виджеты и фильтры параметрические URL без каноникализации.
Если нужен более широкий аудит дублей и служебных страниц, удобно использовать инструменты вроде Clearfy Pro, но только как помощник для чистки и SEO-настроек, а не как замену пониманию того, что именно вы закрываете.
Когда лучше не трогать индексацию вручную
Если сайт уже живёт на трафике из архивов, тегов или авторских страниц, не отключайте их массово без анализа. Сначала посмотрите, какие URL реально получают показы и клики. Иногда проблема не в том, что страниц слишком много, а в том, что у них слабые заголовки, дублирующиеся описания и плохая внутренняя перелинковка. В таком случае правильнее доработать контент, чем прятать его от поисковика.
Рабочий критерий простой: если страница не нужна пользователю и не должна ранжироваться сама по себе, ставьте noindex; если она нужна, но не должна расходовать обход, ограничивайте crawl через robots.txt; если страница удалена навсегда, отдавайте корректный статус ответа. Эта последовательность обычно даёт меньше сюрпризов, чем попытка решить всё одним файлом robots.txt.