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

Ситуация типовая: курс должен оставаться в поиске, а один или несколько уроков — нет. Например, это вводные материалы для студентов, страницы с внутренними инструкциями, дубли после импорта или уроки, которые вы показываете только после оплаты. В LearnPress это лучше решать точечно, а не ставить общий запрет на весь раздел.

Когда нужен точечный запрет, а не общий noindex

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

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

Диагностика проблемы: что именно попало в индекс

Сначала проверьте, действительно ли проблема в индексации, а не в шаблоне или кэше. Откройте страницу урока и посмотрите исходный код: есть ли мета-тег noindex, не отдает ли страница заголовок X-Robots-Tag, не закрыта ли она случайно через robots.txt. Затем проверьте URL в Google Search Console: если страница уже проиндексирована, одного изменения на сайте недостаточно — потребуется переобход.

Полезно сравнить три сценария:

ПодходЧто делаетКогда подходит
Плагин SEOДобавляет noindex через интерфейсЕсли уроков мало и нужна ручная настройка
Код в теме или плагинеСтавит правило для конкретных уроков автоматическиЕсли уроков много и есть понятный критерий
robots.txtОграничивает обход, но не всегда удаляет URL из индексаТолько как вспомогательная мера

Важно: robots.txt сам по себе не гарантирует удаление страницы из поиска. Для удаления из индекса нужен именно noindex или снятие доступности страницы с последующей переобработкой.

Пошаговое решение через код

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

Шаг 1. Добавьте признак для урока

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

<?php
add_action( 'add_meta_boxes', function() {
    add_meta_box(
        'lp_noindex_lesson',
        'SEO для урока',
        function( $post ) {
            $value = get_post_meta( $post->ID, '_lp_noindex_lesson', true );
            wp_nonce_field( 'lp_noindex_lesson_save', 'lp_noindex_lesson_nonce' );
            echo '<p><label>';
            echo '<input type="checkbox" name="lp_noindex_lesson" value="1" ' . checked( $value, '1', false ) . '> ';
            echo 'Запретить индексацию этого урока';
            echo '</label></p>';
        },
        'lp_lesson',
        'side',
        'default'
    );
} );

add_action( 'save_post_lp_lesson', function( $post_id ) {
    if ( ! isset( $_POST['lp_noindex_lesson_nonce'] ) || ! wp_verify_nonce( $_POST['lp_noindex_lesson_nonce'], 'lp_noindex_lesson_save' ) ) {
        return;
    }

    if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
        return;
    }

    if ( ! current_user_can( 'edit_post', $post_id ) ) {
        return;
    }

    $value = isset( $_POST['lp_noindex_lesson'] ) ? '1' : '0';
    update_post_meta( $post_id, '_lp_noindex_lesson', $value );
} );

Шаг 2. Отдайте noindex только для отмеченных уроков

Дальше добавьте правило в wp_head. Оно сработает только на страницах уроков, где включен флаг.

<?php
add_action( 'wp_head', function() {
    if ( ! is_singular( 'lp_lesson' ) ) {
        return;
    }

    $post_id = get_queried_object_id();
    $noindex = get_post_meta( $post_id, '_lp_noindex_lesson', true );

    if ( '1' === $noindex ) {
        echo '<meta name="robots" content="noindex, nofollow" />' . "\n";
    }
}, 1 );

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

Шаг 3. При необходимости добавьте X-Robots-Tag

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

<?php
add_action( 'send_headers', function() {
    if ( ! is_singular( 'lp_lesson' ) ) {
        return;
    }

    $post_id = get_queried_object_id();
    $noindex = get_post_meta( $post_id, '_lp_noindex_lesson', true );

    if ( '1' === $noindex ) {
        header( 'X-Robots-Tag: noindex, nofollow', true );
    }
} );

Не используйте этот вариант без проверки, если сайт уже отправляет заголовки в другом месте. Ошибка headers already sent здесь означает, что в теме или плагине есть ранний вывод.

Если нужен быстрый вариант без кода

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

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

Проверка результата после внедрения

После сохранения урока откройте его в браузере и проверьте исходный код страницы. Должен появиться либо мета-тег noindex, nofollow, либо заголовок X-Robots-Tag. Затем выполните три проверки:

  1. Откройте страницу в режиме инкогнито и убедитесь, что урок доступен только тем, кому он должен быть доступен.
  2. Проверьте исходный код на наличие одного корректного robots-мета.
  3. Отправьте URL на переобход в Google Search Console, если страница уже была в индексе.

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

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

  • Закрыли robots.txt вместо noindex. Страница может остаться в индексе как URL без контента. Используйте robots.txt только как дополнение.
  • Поставили noindex на весь тип записей. В результате исчезают и полезные страницы курса. Ограничивайте правило только выбранными уроками.
  • Забыли очистить кэш. На сайте продолжает отдаваться старая версия HTML. После изменения обязательно сбросьте кэш плагина, сервера и CDN.
  • Дублируется robots-мета. Один тег выводит тема, второй — SEO-плагин. Оставьте один источник правды.
  • Урок закрыт, но доступен через внутренние ссылки. Это нормально, если он должен быть доступен студентам. Но если страница не должна открываться вообще, нужен отдельный контроль доступа, а не только noindex.

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

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

Если уроков много, не проверяйте метаполе на каждой странице через тяжелые запросы. В примере выше используется get_post_meta(), и для обычного сайта этого достаточно. Но если вы строите сложную схему с десятками условий, сначала проверьте, не замедляет ли она генерацию страниц и не конфликтует ли с кэширующим плагином.

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

Что проверить перед публикацией правки

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

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

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Решение проблем с авторизацией через Google в LearnPress на WordPress
05.07.2026
Как автоматизировать обновление курсов в LearnPress: практическое руководство
26.11.2025
Как установить и настроить OmniVideo для LearnPress: пошаговое руководство
27.01.2026
Как решить проблему неотображения последних пройденных уроков в LearnPress
09.07.2026
Как добавить авторизацию через социальные сети в LearnPress на WordPress
08.05.2026
×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее