Как убрать дубли страниц курсов и уроков в LearnPress

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

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

Какие дубли в LearnPress встречаются чаще всего

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

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

Если у вас в Search Console растут «Просканировано, но не проиндексировано» или в отчёте по страницам появляются почти одинаковые URL, это уже повод проверить шаблоны LearnPress и правила индексации.

Диагностика: где именно рождается дубль

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

Проверьте URL вручную

Откройте один курс и посмотрите, есть ли у него альтернативные адреса:

  • архив курсов;
  • страница категории курса;
  • страница автора, если курс выводится в ленте;
  • URL с параметрами сортировки или фильтра;
  • страницы пагинации вида /page/2/.

Если контент совпадает почти полностью, это и есть кандидат на дубль.

Посмотрите исходный код страницы

В исходнике страницы найдите тег <link rel="canonical". Для одной сущности он должен указывать на основной URL. Если canonical отсутствует или ведёт на архив вместо карточки курса, поисковик может выбрать не ту страницу.

Проверьте, не создаёт ли дубли тема

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

Что закрывать, а что оставлять в индексе

Не все похожие страницы нужно прятать. Логика простая: индексируем только те URL, которые реально несут уникальную ценность.

ВариантЧто делатьКомпромисс
Карточка курсаОставить в индексеНужен уникальный title, description и canonical
Архивы и фильтрыЧаще закрывать или ставить noindexМожно потерять длинный хвост по фильтрам, если он был полезен
ПагинацияОбычно оставлять доступной, но не плодить дубли titleНужна аккуратная canonical-логика
Параметры сортировкиКак правило, noindex или canonical на чистый URLПользовательский сценарий не должен ломаться

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

Пошаговое решение: canonical, noindex и чистые архивы

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

Шаг 1. Задайте canonical для учебных страниц

Если SEO-плагин не справляется или тема подменяет canonical, можно добавить свой фильтр. Пример ниже ориентирован на стандартный WordPress-хук wpseo_canonical для Yoast SEO. Если у вас другой SEO-плагин, логика остаётся той же, но хук будет отличаться.

<?php
add_filter( 'wpseo_canonical', function( $canonical ) {
    if ( function_exists( 'learn_press_is_course' ) && learn_press_is_course() ) {
        $post_id = get_the_ID();
        $url     = get_permalink( $post_id );

        if ( $url ) {
            return $url;
        }
    }

    return $canonical;
} );

Этот вариант полезен, если на карточке курса canonical почему-то указывает на архив или на URL с параметрами.

Шаг 2. Закройте от индексации страницы фильтров и сортировки

Если фильтры формируют URL с параметрами ?orderby=, ?level=, ?price= и похожими, такие страницы обычно не стоит индексировать. Их задача — помочь пользователю, а не конкурировать с основным каталогом.

<?php
add_action( 'wp_head', function() {
    if ( is_post_type_archive( 'lp_course' ) ) {
        $query = isset( $_SERVER['QUERY_STRING'] ) ? wp_unslash( $_SERVER['QUERY_STRING'] ) : '';

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

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

Шаг 3. Уберите дубли title и description у пагинации

Если у страниц /page/2/ и /page/3/ одинаковые заголовки, поисковик может считать их почти одинаковыми. Для пагинации лучше добавлять номер страницы в title, а description не дублировать дословно.

<?php
add_filter( 'document_title_parts', function( $parts ) {
    if ( is_post_type_archive( 'lp_course' ) && is_paged() ) {
        $paged = max( 2, get_query_var( 'paged' ) );
        if ( ! empty( $parts['title'] ) ) {
            $parts['title'] .= ' — страница ' . $paged;
        }
    }

    return $parts;
} );

Это не решает всё само по себе, но помогает убрать одинаковые сниппеты у пагинации.

Шаг 4. Проверьте архивы таксономий курсов

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

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

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

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

  • Откройте карточку курса и убедитесь, что canonical указывает на её же URL.
  • Проверьте исходный код страниц с параметрами: там должен быть noindex,follow, если вы это включали.
  • Сравните title у первой страницы архива и у пагинации.
  • В Search Console отправьте на переобход несколько основных URL и посмотрите, не меняется ли выбранный canonical.

Если используете командную строку, можно быстро проверить заголовки ответа:

curl -I https://example.com/courses/

А затем открыть HTML и найти canonical вручную:

curl -s https://example.com/courses/ | grep -i canonical

Если canonical не совпадает с ожидаемым URL, значит правка не сработала или её перебивает другой плагин.

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

Ставят noindex на все страницы курсов

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

Оставляют дубли title без изменений

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

Надеются только на robots.txt

Закрытие в robots.txt не решает проблему дублей, если URL уже известен поисковику. Для таких случаев важнее canonical и noindex. Robots.txt полезен, но не как единственный инструмент.

Ломают фильтры для пользователей

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

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

Если вы добавляете код в functions.php, лучше вынести его в мини-плагин или в mu-plugin. Так он не потеряется при смене темы и проще отключается при отладке.

Для сайтов с большим каталогом курсов полезно:

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

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

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

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

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

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

⭐⭐⭐⭐⭐
Как закрыть служебные страницы LearnPress от индексации без поломки навигации
08.09.2026
Как решить проблему отсутствия возможности повторной оплаты в LearnPress и WooCommerce
22.09.2026
Как автоматизировать создание курсов в LearnPress через импорт CSV
22.09.2026
Как запретить индексацию учебных страниц в LearnPress
17.08.2026
Решение проблемы необновления статусов возврата платежа WooCommerce в LearnPress
01.10.2026
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше