Если в индексе уже всплывают страницы входа, регистрации, профиля ученика, корзины, checkout или внутренние страницы кабинета LearnPress, проблема обычно не в «плохом SEO», а в том, что сайт отдает поисковику лишние URL без явного запрета на индексацию. На учебных проектах это быстро раздувает мусор в поиске и мешает анализировать реальные страницы курсов.
Ниже — рабочая схема: сначала определяем, что именно закрывать, потом ставим noindex и при необходимости дополняем robots.txt. Для WordPress это безопаснее, чем пытаться «рубить» всё через один общий запрет.
Какие страницы LearnPress обычно нужно закрывать
Не стоит закрывать весь раздел курсов целиком, если он должен привлекать трафик. Обычно под запрет попадают служебные URL, которые не несут самостоятельной ценности для поиска:
- страница входа и регистрации;
- профиль пользователя и кабинет;
- страницы «мои курсы», «мои заказы», «избранное», если они доступны только после авторизации;
- служебные страницы оплаты и подтверждения;
- внутренние страницы с параметрами, которые создают дубли.
Если у вас уже есть статьи про дубли курсов и уроков, не смешивайте их с этой задачей. Здесь речь именно о служебных страницах, которые не должны попадать в индекс вообще.
Диагностика: что именно уже индексируется
Перед правками проверьте, какие URL реально попали в поиск. Самый простой способ — поиск по сайту и отчёт в Google Search Console.
Что смотреть в Search Console
- раздел «Страницы» — ошибки и проиндексированные URL;
- отчёт по исключённым страницам;
- URL Inspection для конкретной служебной страницы;
- сниппеты в поиске по запросу
site:example.com.
Если страница уже в индексе, одного robots.txt недостаточно: поисковик может видеть URL, но не сможет переобойти его и убрать из выдачи быстро. В таких случаях нужен noindex на самой странице.
Что выбрать: noindex, robots.txt или оба варианта
| Подход | Когда использовать | Плюс | Минус |
|---|---|---|---|
noindex | Страница уже доступна и может попасть в индекс | Поисковик видит запрет прямо на странице | Нужно, чтобы робот мог загрузить HTML |
robots.txt | Нужно ограничить обход, но страница не критична для удаления из индекса | Снижает лишний crawl | Не гарантирует удаление уже проиндексированного URL |
| Оба варианта | Служебные страницы, которые не должны индексироваться и не нужны в обходе | Самый практичный вариант | Нужно не закрыть случайно важные страницы |
Пошаговое решение через WordPress
Если у вас нет SEO-плагина, можно добавить запрет точечно через wp_head и фильтр для robots.txt. Такой подход удобен, когда нужно закрыть несколько конкретных шаблонов LearnPress.
1. Добавьте noindex для служебных шаблонов
Код ниже можно положить в мини-плагин или в functions.php дочерней темы. Он добавляет мета-тег noindex,follow на выбранные страницы.
<?php
add_action( 'wp_head', function () {
if ( is_user_logged_in() && function_exists( 'learn_press_is_course' ) ) {
return;
}
$is_service_page = false;
if ( function_exists( 'learn_press_is_profile' ) && learn_press_is_profile() ) {
$is_service_page = true;
}
if ( is_page( array( 'login', 'register', 'checkout' ) ) ) {
$is_service_page = true;
}
if ( $is_service_page ) {
echo '<meta name="robots" content="noindex,follow" />' . "\n";
}
}, 1 );Здесь важно не полагаться только на слаги, если они у вас могут меняться. Для LearnPress лучше проверять реальные условия шаблона, если они доступны в вашей версии плагина. Если таких функций нет, оставьте только is_page() для конкретных страниц.
2. Ограничьте обход в robots.txt
Если служебные URL не нужны поисковому роботу вообще, добавьте их в robots.txt. В WordPress это можно сделать через фильтр robots_txt.
<?php
add_filter( 'robots_txt', function ( $output, $public ) {
$output .= "\nDisallow: /login/\n";
$output .= "Disallow: /register/\n";
$output .= "Disallow: /profile/\n";
$output .= "Disallow: /checkout/\n";
return $output;
}, 10, 2 );Не добавляйте в Disallow всё подряд, если страница должна отдаваться пользователю без ограничений. robots.txt — это не защита доступа, а только инструкция для роботов.
3. Если используете SEO-плагин, не дублируйте правила
Если на сайте уже стоит Yoast SEO, Rank Math или похожий плагин, проверьте, не выставлен ли noindex там же. Дублирующиеся правила обычно не ломают сайт, но усложняют отладку: вы видите запрет в одном месте, а фактически он приходит из другого.
Практически удобнее выбрать один источник правды: либо SEO-плагин, либо код. Для небольшого набора служебных страниц код часто проще и прозрачнее.
Как проверить, что решение сработало
После внедрения не ограничивайтесь просмотром исходника в браузере. Проверка должна быть по цепочке:
- откройте страницу в режиме инкогнито;
- посмотрите исходный HTML и убедитесь, что есть
<meta name="robots" content="noindex,follow" />; - проверьте
/robots.txtна наличие нужныхDisallow; - в Search Console отправьте URL на повторную проверку;
- через URL Inspection убедитесь, что Google видит запрет на индексацию.
Если страница уже была в индексе, удаление может занять время. Это нормально: сначала робот должен переобойти URL и увидеть новый сигнал.
Частые ошибки и как их исправить
Закрыли важную страницу курса вместе со служебной
Такое случается, когда в robots.txt добавляют слишком общий путь, например /course/ или /lp-course/. В результате поисковик перестаёт обходить и полезные страницы. Исправление простое: уберите общий запрет и оставьте только точечные URL.
Поставили только robots.txt и ждут удаления из индекса
Если URL уже в выдаче, одного запрета на обход мало. Нужен noindex на самой странице, иначе поисковик может продолжать показывать URL без сниппета.
Добавили noindex, но страница всё равно индексируется
Проверьте, не отдаёт ли сервер старую кэшированную версию без мета-тега. Это частая история на сайтах с page cache или CDN. После правки очистите кэш плагина, сервера и CDN, если он есть.
Сломали доступ для авторизованных пользователей
noindex не должен запрещать вход на страницу. Если после правок кабинет или профиль перестал открываться, значит, вы перепутали индексацию с доступом. Для доступа нужны capability, авторизация или отдельные правила на уровне приложения, а не мета-тег robots.
Чек-лист перед публикацией
- Определены только служебные URL, а не весь каталог курсов.
- На страницах стоит
noindex,follow, если они уже могли попасть в индекс. - В
robots.txtзакрыты только те пути, которые не нужны в обходе. - Кэш очищен после изменений.
- Проверка в Search Console показывает новый сигнал для URL.
Практические советы по безопасности и производительности
Если служебные страницы содержат личные данные или внутренние данные ученика, не полагайтесь на noindex как на защиту. Такие страницы должны быть закрыты авторизацией и проверкой прав доступа. Для производительности полезно не только закрывать индексацию, но и исключать эти URL из лишних sitemap, если они туда попали через настройки плагина или темы.
На больших проектах удобно держать список служебных путей в одном месте — в небольшом mu-plugin или отдельном файле конфигурации. Так меньше шанс, что при смене темы правила исчезнут вместе с functions.php.
Если нужен более широкий технический аудит дублей и служебных URL, имеет смысл дополнительно проверить настройки чистки сайта и SEO-опций в Clearfy Pro: https://wpshop.ru/plugins/clearfy?utm_source=learnpress.ru&utm_medium=article&utm_campaign=zakryt-sluzhebnye-stranicy-learnpress-ot-indeksacii-v-robots-i-noindex