Как убрать дубли курсов LearnPress в XML-карте сайта и архивах

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

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

Диагностика: откуда берутся дубли в LearnPress

Сначала не трогайте robots.txt и не ставьте массовый noindex наугад. В LearnPress дубли обычно появляются из нескольких мест:

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

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

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

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

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

ВариантКогда подходитМинус
Оставить в индексеУ категории есть текст, структура и спросНужно следить за уникальностью
noindex, followАрхив полезен для пользователей, но не нужен в поискеСтраница может остаться в обходе
Удалить из sitemapСлужебные страницы, пагинация, фильтрыНужно аккуратно не задеть нужные URL

Пошаговое решение через код: убрать лишние архивы из XML-карты

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

<?php
add_filter( 'wpseo_sitemap_exclude_post_type', function( $exclude, $post_type ) {
    if ( 'lp_course' === $post_type ) {
        return false;
    }

    return $exclude;
}, 10, 2 );

add_filter( 'wpseo_sitemap_exclude_taxonomy', function( $exclude, $taxonomy ) {
    if ( in_array( $taxonomy, array( 'course_category', 'course_tag' ), true ) ) {
        return true;
    }

    return $exclude;
}, 10, 2 );

Этот вариант полезен, если сами курсы должны оставаться в sitemap, а архивы таксономий — нет. Названия таксономий в конкретной установке лучше проверить в админке или через get_object_taxonomies(), потому что в некоторых сборках они могут отличаться.

Если нужен noindex для архивов, но без удаления из sitemap

Иногда архив лучше оставить в карте сайта, но закрыть от индексации. Тогда поисковик увидит URL, но не будет считать его основной страницей для ранжирования. Для этого можно добавить robots meta на уровне шаблона или через SEO-плагин. Если у вас нет удобного интерфейса, используйте фильтр Yoast:

<?php
add_filter( 'wpseo_robots', function( $robots ) {
    if ( is_post_type_archive( 'lp_course' ) || is_tax( array( 'course_category', 'course_tag' ) ) ) {
        return 'noindex,follow';
    }

    return $robots;
} );

Такой подход уместен, когда архивы нужны для навигации, но не должны конкурировать с карточками курсов. Для пагинации архивов это тоже часто правильнее, чем полное удаление через robots.txt.

Сценарий без кода: настройки SEO-плагина и темы

Если вы не хотите править код, сначала проверьте настройки архивов в SEO-плагине. В Yoast и Rank Math можно отключить индексацию архивов таксономий, а также задать noindex для страниц пагинации. Это безопаснее для контентной команды: правка не сломается после обновления темы.

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

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

После правок не ограничивайтесь визуальной проверкой. Нужны три шага:

  1. Откройте XML-карту сайта и убедитесь, что лишние архивы и таксономии исчезли или помечены как исключенные.
  2. Посмотрите исходный код архивной страницы и проверьте наличие noindex,follow, если вы использовали этот вариант.
  3. В Search Console отправьте на переобход несколько URL, которые раньше дублировались, и проверьте, как они отображаются в отчете по индексированию.

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

curl -I https://example.com/course-category/php/
curl -I https://example.com/courses/page/2/

В ответе ищите X-Robots-Tag, если он задается на уровне сервера или плагина, и убедитесь, что нужный URL не отдает неожиданный canonical на главную.

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

  • Закрыли в robots.txt вместо noindex. Поисковик может не увидеть директиву noindex, если страница уже заблокирована в robots.txt. Для дублей архивов обычно лучше использовать noindex, follow или исключение из sitemap.
  • Убрали из sitemap, но оставили доступными фильтры. Параметрические URL продолжают плодиться через внутренние ссылки. Нужно либо убрать их из навигации, либо ставить canonical на основную версию.
  • Сделали noindex для всех архивов подряд. В результате потеряли полезные страницы категорий, которые могли приносить трафик. Сначала отделите полезные архивы от служебных.
  • Правили не тот taxonomy slug. В LearnPress названия таксономий зависят от версии и связки с темой. Перед фильтрами проверьте реальные slug в коде или через админку.
  • Дубли остались из-за пагинации. Страница /page/2/ часто индексируется отдельно. Если пагинация не нужна в поиске, закройте ее точечно, а не весь архив целиком.

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

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

Если на сайте много курсов и категорий, следите за тем, чтобы sitemap не разрастался за счет мусорных URL. Чем меньше лишних страниц в карте сайта, тем проще поисковику обходить действительно важные материалы. Для чистки дублей и технических хвостов в WordPress иногда удобен Clearfy Pro, но использовать его стоит только там, где вы понимаете, какие именно архивы и мета-теги он меняет. Для проверки логики все равно полезно смотреть исходный HTML и sitemap вручную.

Хорошая практика — хранить все такие правки в дочерней теме или отдельном мини-плагине, а не в functions.php основной темы. Тогда обновление шаблона не затрет настройки индексации.

Мини-чек-лист перед публикацией изменений

  • Проверены реальные URL дублей в Search Console.
  • Определено, какие архивы полезны, а какие служебные.
  • Лишние таксономии исключены из sitemap или помечены noindex.
  • Проверен canonical на архивных и пагинированных страницах.
  • Сделан повторный обход в Search Console.
  • Изменения вынесены в дочернюю тему или mu-plugin.

Если после этого дубли все еще остаются, обычно проблема уже не в sitemap, а в шаблоне архива или в том, как тема генерирует ссылки на фильтры. Тогда стоит отдельно проверить хлебные крошки, сортировку и внутреннюю перелинковку.

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

⭐⭐⭐⭐⭐
Как решить проблему неотображения видео уроков в LearnPress после обновления
09.07.2026
Как решить проблему неотображения последних пройденных уроков в LearnPress
09.07.2026
Решение проблемы неотображения курса после оплаты в WooCommerce с LearnPress
06.06.2026
Решение проблемы необновления статуса заказа WooCommerce в LearnPress
21.04.2026
Как создать собственный виджет для LearnPress в WordPress
03.12.2025
×
Quizle
Получите больше лидов и увеличьте продажи!
-15%

на премиум плагин WordPress

Получить скидку ⋙