Как исключить страницы из поиска в WordPress через noindex и robots meta

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

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

Когда нужен noindex, а не robots.txt

robots.txt управляет обходом, но не гарантирует удаление уже проиндексированного URL. Если страница уже в индексе, поисковик может продолжать показывать её без захода на сам документ. Для таких случаев нужен именно noindex в HTML-ответе или через SEO-плагин.

Используйте noindex, если нужно скрыть:

  • страницы внутреннего поиска;
  • архивы с пустым или слабым содержимым;
  • служебные страницы, которые не должны ранжироваться;
  • дубли с параметрами, если они всё же доступны по отдельным URL;
  • тестовые или временные материалы, которые нельзя удалять сразу.

Если URL вообще не должен открываться пользователю, тогда уже смотрят в сторону 404, 410 или ограничения доступа. Но для обычной SEO-санитарии noindex — более аккуратный инструмент.

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

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

Что проверить в первую очередь

  • какие URL уже есть в индексе через site: и отчёты Search Console;
  • есть ли у страниц уникальный контент или это почти пустые архивы;
  • не используются ли эти URL во внутренней перелинковке;
  • не нужны ли они для пользователей, хотя и не нужны для поиска;
  • не закрывает ли текущий SEO-плагин уже эти страницы автоматически.

Если страница важна для навигации, но не должна ранжироваться, noindex, follow обычно подходит лучше всего. Если страница техническая и не должна ни индексироваться, ни передавать вес, иногда добавляют ещё и nofollow, но это уже отдельная задача и не универсальное правило.

Способы исключить страницы из поиска

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

СпособКогда подходитКомпромисс
SEO-плагинНужно закрыть архивы, страницы, таксономии без кодаЗависит от интерфейса и логики плагина
Код через wp_robotsНужна точечная логика по условиям WordPressТребует поддержки в теме или мини-плагине
Шаблон страницыНужно закрыть один конкретный шаблонЛегко забыть при смене темы

Вариант 1. Через SEO-плагин

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

Плюс такого подхода в том, что плагин обычно сам ставит корректный meta robots и не требует ручной правки шаблонов. Минус — настройки могут отличаться от плагина к плагину, а при миграции сайта логика иногда теряется.

Вариант 2. Через фильтр wp_robots

Если нужна точная логика, используйте фильтр wp_robots. Это штатный способ изменить robots-мета в WordPress без правки ядра.

add_filter( 'wp_robots', function( $robots ) {
	if ( is_search() || is_author() ) {
		$robots['noindex']  = true;
		$robots['follow']   = true;
	}

	if ( is_page( array( 123, 456 ) ) ) {
		$robots['noindex'] = true;
		$robots['follow']  = true;
	}

	return $robots;
} );

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

Если вы хотите закрывать не по ID, а по шаблону, это тоже делается штатно:

add_filter( 'wp_robots', function( $robots ) {
	if ( is_page_template( 'templates/landing-test.php' ) ) {
		$robots['noindex'] = true;
		$robots['follow']  = true;
	}

	return $robots;
} );

Вариант 3. Через отдельный шаблон страницы

Если страница одна и она всегда должна быть закрыта, можно добавить meta robots прямо в шаблон. Это менее гибко, но иногда проще для лендингов, тестовых страниц и внутренних служебных материалов.

<?php
/* Template Name: Noindex Page */
get_header();
?>
<meta name="robots" content="noindex,follow">
<?php while ( have_posts() ) : the_post(); ?>
	<main>
		<h1><?php the_title(); ?></h1>
		<?php the_content(); ?>
	</main>
<?php endwhile; get_footer();

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

Пошаговая настройка для точечного noindex

Если нужен управляемый и повторяемый вариант, делайте это через мини-плагин или functions.php дочерней темы. Так правило не исчезнет после обновления основной темы.

  1. Определите список URL, которые должны быть закрыты.
  2. Выберите условие: ID, шаблон, тип записи, архив, поиск, таксономия.
  3. Добавьте фильтр wp_robots в дочернюю тему или мини-плагин.
  4. Очистите кеш страницы и кеш CDN, если он есть.
  5. Проверьте исходный HTML и ответ сервера.

Для мини-плагина достаточно одного файла, например wp-content/plugins/site-noindex/site-noindex.php:

<?php
/**
 * Plugin Name: Site Noindex Rules
 */

add_filter( 'wp_robots', function( $robots ) {
	if ( is_search() ) {
		$robots['noindex'] = true;
		$robots['follow']  = true;
	}

	if ( is_page( 321 ) ) {
		$robots['noindex'] = true;
		$robots['follow']  = true;
	}

	return $robots;
} );

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

Как проверить, что решение сработало

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

  • Откройте страницу и посмотрите исходный код: должен быть <meta name="robots" content="noindex,follow"> или эквивалентный тег.
  • Проверьте ответ через curl или DevTools, чтобы исключить кешированную версию.
  • Если используется SEO-плагин, убедитесь, что он не добавляет второй конфликтующий robots-тег.
  • В Search Console отправьте URL на повторную проверку после переобхода.

Пример быстрой проверки через терминал:

curl -s https://example.com/test-page/ | grep -i robots

Если в ответе нет нужного meta-тега, значит правило не сработало или его перебил шаблон темы, плагин кеша либо SEO-плагин.

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

Страница закрыта в robots.txt, но всё ещё в индексе

Это частая путаница. Disallow в robots.txt не равен noindex. Если URL уже в индексе, поисковик может продолжать показывать его без обхода страницы. Решение: вернуть доступ для обхода и поставить noindex в HTML.

Поставили noindex, но забыли про кеш

Если на сайте есть page cache, CDN или серверный кеш, старый HTML может отдаваться ещё какое-то время. После правки очистите все уровни кеша, иначе проверка покажет старую версию страницы.

Добавили два robots-тега

Иногда тема уже выводит meta robots, а SEO-плагин добавляет свой. Поисковик обычно ориентируется на конфликтную разметку не так, как ожидает разработчик. Нужно оставить один источник правды: либо плагин, либо код.

Закрыли важные страницы по ошибке

Если правило написано слишком широко, можно случайно закрыть полезные страницы: например, все записи определённой категории или весь архив таксономии. Перед публикацией проверьте условия is_page(), is_search(), is_tax() и списки ID.

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

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

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

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

Что должно получиться в итоге

После настройки у вас есть предсказуемое правило: нужные страницы остаются доступными для пользователей, но не претендуют на ранжирование. В исходном HTML виден корректный meta robots, кеш обновлён, а в Search Console URL постепенно уходит из индекса или меняет статус после переобхода.

Если страница всё ещё появляется в поиске, проверьте три вещи в таком порядке: доступность страницы для обхода, наличие noindex в финальном HTML и отсутствие конфликтов с другими плагинами или шаблонами.

Как отключить XML-RPC.php в WordPress и не сломать нужные интеграции
29.08.2026
Как убрать дубли страниц авторов и архивов в WordPress
07.09.2026
Как отключить XML Sitemap для отдельного типа записей в WordPress
10.09.2026
Как отключить REST API для гостей в WordPress без поломки админки и плагинов
14.09.2026
Как исключить страницы из поиска в WordPress через noindex и robots meta
17.09.2026