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

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

Если закрыть всё подряд через robots.txt, можно получить обратный эффект: страница перестанет обходиться, но уже известный URL ещё долго будет висеть в выдаче без контента. Если поставить только noindex, робот сможет зайти на страницу и увидеть директиву, но сам обход останется. Поэтому сначала важно понять, что именно вы хотите: убрать URL из индекса, сократить обход или и то и другое.

Когда проблема действительно в индексации

Перед правками проверьте, что страница не просто плохо ранжируется, а именно индексируется там, где не должна. Для этого откройте:

  • отчёт по страницам в Google Search Console;
  • поиск по оператору site:example.com;
  • исходный код проблемной страницы — ищите meta name="robots" и канонический URL;
  • robots.txt сайта, если речь о массовом запрете обхода.

Часто проблема выглядит так:

  • в индексе есть страницы с параметрами вроде ?replytocom=, ?utm_ или фильтрами;
  • отдельно индексируются страницы поиска по сайту;
  • попадают в выдачу архивы авторов на небольшом сайте без уникального контента;
  • в индексе остаются страницы тегов, которые дублируют рубрики.

Что лучше использовать: robots.txt, noindex или canonical

Для разных задач — разные инструменты. Ниже короткое сравнение.

ПодходЧто делаетКогда подходитОграничение
robots.txtЗапрещает обходДля служебных разделов, где не нужен crawlНе гарантирует удаление URL из индекса
meta robots noindexПросит не индексировать страницуДля точечных страниц, которые должны быть доступны роботуСтраница должна быть доступна для обхода
rel=canonicalУказывает основную версиюДля дублей и страниц с параметрамиНе заменяет запрет индексации

Если задача — убрать из выдачи отдельные страницы WordPress, чаще всего нужен именно noindex, а не только robots.txt.

Пошаговое решение: закрываем отдельные страницы от индексации

1. Добавляем meta robots для нужных шаблонов

Самый надёжный способ — подключить условную директиву noindex, follow для конкретных типов страниц. Например, для страниц поиска, архивов автора и служебных URL. Код ниже можно добавить в дочернюю тему или в небольшой mu-plugin.

<?php
add_action('wp_head', function () {
    if (is_search() || is_author() || is_tag()) {
        echo '<meta name="robots" content="noindex,follow" />' . "\n";
    }
}, 1);

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

2. Для дублей и параметров используем canonical

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

<?php
add_filter('get_canonical_url', function ($canonical, $post) {
    if (is_singular('post') && isset($_GET['ref'])) {
        return get_permalink($post);
    }

    return $canonical;
}, 10, 2);

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

3. Ограничиваем обход в robots.txt только там, где это оправдано

robots.txt полезен для разделов, которые не должны тратить crawl budget: внутренний поиск, технические директории, временные URL. В WordPress файл можно редактировать вручную в корне сайта или через серверную конфигурацию, если он генерируется не физически.

User-agent: *
Disallow: /?s=
Disallow: /search/
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

Обратите внимание: запрет /wp-admin/ стандартный, но admin-ajax.php обычно оставляют доступным, иначе часть фронтенд-функций может сломаться.

Диагностика после внедрения

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

  • Откройте исходный код страницы и проверьте наличие <meta name="robots" content="noindex,follow" />.
  • Проверьте заголовки ответа, если директива задаётся через HTTP header.
  • В Search Console отправьте URL на повторную проверку.
  • Убедитесь, что канонический URL указывает на основную страницу без параметров.
  • Посмотрите, не блокирует ли robots.txt обход страницы, которой нужен noindex.

Если страница закрыта в robots.txt, но вы хотите убрать её из индекса быстрее, это плохая комбинация: робот может не увидеть директиву noindex. В таком случае сначала дайте ему доступ, дождитесь переобхода и только потом при необходимости ограничивайте crawl.

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

Закрыли страницу в robots.txt и ждёте удаления из выдачи

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

Ставите noindex на все архивы без проверки

На небольших сайтах это иногда оправдано, но на контентных проектах архивы авторов, рубрик и тегов могут приносить трафик. Перед массовым закрытием проверьте, есть ли у архивов уникальные тексты, хлебные крошки, внутренние ссылки и поисковый спрос.

Оставляете дубли с параметрами без canonical

Если одна и та же запись доступна по нескольким адресам, поисковик может выбрать не ту версию. Исправление: нормализуйте ссылки, уберите лишние параметры из генерации URL и проверьте canonical на шаблоне.

Добавляете код в родительскую тему

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

Чек-лист перед публикацией изменений

  • Проверен список URL, которые действительно должны быть закрыты.
  • Для нужных страниц добавлен noindex,follow.
  • Для дублей настроен canonical.
  • robots.txt не блокирует страницы, которым нужен переобход.
  • Проверен исходный код и ответ сервера.
  • Запрос на переиндексацию отправлен в Search Console.

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

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

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

Главный критерий простой: если URL должен существовать для пользователя, но не нужен в поиске, используйте noindex и canonical по ситуации. Если URL вообще не должен обходиться, ограничивайте его в robots.txt, но только после того, как убедились, что это не мешает удалению уже проиндексированной страницы.

Как добавить поддержку WebP в WordPress без плагинов
10.04.2026
Как запретить индексацию отдельных страниц в WordPress через robots.txt и meta robots
14.08.2026
Ошибка «Invalid Payment Method» при оформлении заказа в WooCommerce: как исправить
07.05.2026
Как удалить старые мета данные в WordPress без плагинов
12.02.2026
WooCommerce: использование woocommerce_checkout_update_order_meta для добавления дополнительных данных к заказу
14.07.2026