Как закрыть от индексации служебные страницы WordPress

Служебные страницы WordPress часто попадают в поиск не потому, что они полезны пользователю, а потому что их никто отдельно не ограничил. Это страницы входа и регистрации, корзина, оформление заказа, thank-you page после покупки, результаты внутреннего поиска, страницы фильтров и другие URL, которые не должны конкурировать с нормальными посадочными страницами. Если оставить их открытыми, поисковик может тратить краулинговый бюджет на мусорные адреса, а в выдаче начнут всплывать бесполезные или даже чувствительные страницы.

Задача решается не одним способом, а набором мер. Для одних URL достаточно запрета в robots.txt, для других нужен noindex, а для третьих правильнее вообще убрать их из публичного доступа или закрыть от индексации на уровне шаблона. Ниже — практический порядок действий, который не ломает сайт и подходит для большинства обычных проектов на WordPress.

Какие страницы действительно стоит закрывать

Не все служебные URL одинаковы. Часть из них можно оставить доступными для пользователей, но убрать из поиска. Часть лучше вообще не показывать поисковым роботам. Обычно закрывают:

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

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

Что использовать: robots.txt, noindex или запрет доступа

Для WordPress важно понимать разницу между тремя подходами. Они решают разные задачи.

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

Самая частая ошибка — закрыть страницу в robots.txt и ждать, что она исчезнет из выдачи. Если поисковик уже знает этот адрес, одного запрета на обход может быть недостаточно. Для удаления из индекса обычно нужен noindex или корректный ответ сервера, например 404 или 410, если страница больше не должна существовать.

Как закрыть служебные страницы через SEO-плагин

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

Что нужно проверить в настройках плагина:

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

Для страниц входа, корзины, оформления заказа и thank-you page часто удобнее не искать отдельную настройку, а задать noindex на уровне конкретного шаблона или страницы. Если плагин умеет управлять мета-тегами для отдельных URL, это предпочтительнее, чем править код вручную.

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

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

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

Для обычной страницы WordPress в functions.php дочерней темы можно добавить условие и вывести мета-тег в <head>. Пример ниже закрывает от индексации конкретную страницу по её ID:

add_action('wp_head', function () {
    if (is_page(123)) {
        echo '<meta name="robots" content="noindex,follow">' . "\n";
    }
});

Здесь 123 нужно заменить на ID нужной страницы. Атрибут follow обычно оставляют, чтобы поисковик мог переходить по ссылкам со страницы, если она всё ещё нужна пользователю.

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

add_action('wp_head', function () {
    if (is_search() || is_page(array(123, 124, 125))) {
        echo '<meta name="robots" content="noindex,follow">' . "\n";
    }
});

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

Как закрыть результаты внутреннего поиска

Страницы поиска в WordPress обычно имеют вид ?s=запрос. Для поисковика это почти всегда мусорный трафик: запросы бесконечно вариативны, а содержимое страницы не несёт самостоятельной ценности. Такие URL обычно закрывают от индексации через noindex.

Если вы используете SEO-плагин, найдите настройку для страниц поиска и включите запрет индексации. Если делаете вручную, можно добавить условие is_search() в wp_head, как в примере выше. Это не мешает пользователю пользоваться поиском на сайте, но убирает результаты поиска из выдачи.

Отдельно проверьте, не создаёт ли ваш шаблон отдельные страницы результатов поиска по фильтрам, сортировкам или AJAX-поиску. Иногда проблема не в стандартном поиске WordPress, а в теме или плагине, который генерирует дополнительные URL.

Что делать с корзиной, оформлением заказа и thank-you page

Если на сайте есть интернет-магазин, эти страницы почти всегда должны быть закрыты от индексации. Корзина и оформление заказа не должны ранжироваться в поиске, а thank-you page после покупки часто содержит персональные или технические данные, которые не предназначены для индексации.

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

Если у вас WooCommerce, проверьте, что закрыты:

  • корзина;
  • оформление заказа;
  • страница «Мой аккаунт», если она не нужна в поиске;
  • страница благодарности после заказа, если она отдельная;
  • страницы оплаты и возврата, если они существуют как публичные URL.

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

Когда лучше закрыть URL на уровне сервера

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

Но здесь важно не переборщить. Не стоит ставить 404 на корзину, личный кабинет или страницу входа, если они реально используются посетителями. Для таких URL нужен доступ, но без индексации.

Если вы меняете поведение на уровне сервера, обязательно проверьте, что:

  • пользователь всё ещё может выполнить нужное действие;
  • страница не отдает случайно 200 OK там, где должен быть 404 или 410;
  • не сломались формы, редиректы и авторизация;
  • в кэше не осталась старая версия страницы.

Как проверить, что страницы действительно закрыты

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

Проверьте несколько вещей:

  • в исходном коде страницы есть <meta name="robots" content="noindex,follow"> или другой нужный вариант;
  • страница не закрыта от обхода в robots.txt, если вы рассчитываете именно на noindex;
  • HTTP-ответ соответствует задаче: 200 для доступной страницы, 404 или 410 для удалённой;
  • в панели вебмастера страница постепенно исчезает из индекса после повторного обхода.

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

Чего не стоит делать

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

  • Не закрывайте полезные страницы сайта только потому, что они выглядят «техническими».
  • Не рассчитывайте на один robots.txt, если нужно убрать URL из индекса.
  • Не ставьте noindex на страницу, которую сами же закрыли от обхода через robots.txt — робот может не увидеть мета-тег.
  • Не правьте основной шаблон темы без резервной копии, если не уверены в результате.
  • Не закрывайте корзину, вход или оформление заказа через жёсткий запрет доступа, если ими пользуются посетители.

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

В большинстве проектов этого достаточно, чтобы убрать из выдачи страницу входа, регистрацию, корзину, thank-you page, результаты внутреннего поиска и другие служебные адреса WordPress без лишних рисков.

⭐⭐⭐⭐⭐