Как убрать дубли страниц курсов LearnPress в XML-карте и пагинации

Если в Search Console всплывают дубли страниц курсов LearnPress, проблема обычно не в самом курсе, а в том, как тема, SEO-плагин и архивы WordPress собирают URL. Чаще всего в индекс попадают лишние страницы пагинации, архивы таксономий, служебные шаблоны и повторяющиеся URL с параметрами.

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

Что именно считать дублем в LearnPress

Для учебного сайта дубли — это не только одинаковый контент на двух URL. В LearnPress чаще встречаются такие варианты:

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

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

Диагностика: где искать источник дублей

Сначала проверьте, какие URL реально индексируются. Для этого достаточно трех точек контроля: Search Console, XML-карта сайта и список архивов WordPress.

1. Search Console

Откройте отчеты по страницам и посмотрите, какие типы URL повторяются: архивы курсов, пагинация, параметры, страницы с canonical на другой адрес. Если в отчете много URL вида /course/page/2/ или /course-category/..., значит проблема в архивах и пагинации.

2. XML-карта сайта

Проверьте, не попадают ли в sitemap страницы, которые не должны индексироваться. Это особенно важно, если SEO-плагин автоматически добавляет архивы и таксономии без учета структуры LearnPress.

3. Шаблоны темы и фильтры

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

Пошаговое решение без поломки навигации

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

Шаг 1. Закройте пагинацию архива курсов от индексации

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

<?php
add_action('wp_head', function () {
    if (is_post_type_archive('lp_course') && is_paged()) {
        echo '<meta name="robots" content="noindex,follow" />' . "\n";
    }
});

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

Шаг 2. Исключите лишние архивы из XML-карты

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

Ниже пример для WordPress-фильтра, когда нужно исключить архив таксономии course_tag из sitemap Yoast SEO:

<?php
add_filter('wpseo_sitemap_exclude_taxonomy', function ($exclude, $taxonomy) {
    if ($taxonomy === 'course_tag') {
        return true;
    }
    return $exclude;
}, 10, 2);

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

Шаг 3. Уберите дубли из архивов и фильтров

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

Пример для простого canonical на архиве курсов:

<?php
add_filter('wpseo_canonical', function ($canonical) {
    if (is_post_type_archive('lp_course') && is_paged()) {
        return get_post_type_archive_link('lp_course');
    }
    return $canonical;
});

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

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

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

ПодходКогда подходитМинус
Настройки SEO-плагинаОбычные архивы, таксономии, sitemapНе всегда хватает гибкости для LearnPress
Код в теме или мини-плагинеНужно точечно закрыть пагинацию, параметры, canonicalТребует тестирования после обновлений
Комбинированный вариантЕсть и SEO-плагин, и кастомные архивыНужно следить, чтобы правила не конфликтовали

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

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

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

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

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

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

Ставят noindex только на страницу, а не на источник дубля

В результате дубли остаются в sitemap или в архиве таксономии. Исправление: закрывайте не только страницу, но и шаблон, который ее порождает.

Удаляют URL из sitemap, но оставляют внутренние ссылки

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

Ставят canonical на неправильный адрес

Иногда canonical указывает на архив категории вместо основной страницы курса. Это сбивает индексацию сильнее, чем сам дубль. Исправление: canonical должен быть логически связан с основным URL, а не просто «куда-то на похожую страницу».

Закрывают от индексации все архивы подряд

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

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

Любые правки в functions.php лучше переносить в мини-плагин или mu-plugin. Так вы не потеряете изменения при смене темы и не сломаете сайт из-за обновления шаблона.

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

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

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

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

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

⭐⭐⭐⭐⭐
Как решить проблему несинхронизации статусов заказов WooCommerce и LearnPress при использовании различных платежных систем
27.06.2026
Как сделать отсрочку оплаты в LearnPress: пошаговое решение с примерами кода
29.12.2025
Решение проблем с авторизацией через Google в LearnPress на WordPress
05.07.2026
Как добавить авторизацию по OTP в LearnPress с применением WooCommerce
24.05.2026
Как добавить уникальный фильтр по статусу заявки в LearnPress
12.04.2026
×

AI-плагин

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

SEO и мета-теги

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

Изображения

Комментарии

Подробнее