Дубли в WordPress чаще всего появляются не из-за «плохого SEO», а из-за вполне конкретных настроек: архивы с пагинацией, страницы тегов, версии с параметрами в URL, а иногда и из-за темы, которая выводит одинаковый контент в нескольких шаблонах. Если не понять источник, можно случайно закрыть от индексации нужные страницы или, наоборот, оставить в поиске мусорные URL.
Ниже разберём рабочий сценарий: как найти дубли, чем отличаются canonical и noindex, где править код, а где достаточно настроек плагина, и как проверить, что после правок поисковик видит правильную версию страницы.
Когда проблема действительно в дублях
Сначала стоит убедиться, что речь именно о дублях, а не о нормальной пагинации или фильтрации контента. В WordPress одинаковые или почти одинаковые страницы обычно появляются в таких случаях:
- одна и та же запись доступна по нескольким адресам из-за параметров в URL;
- архив категории, тегов и автора содержит одинаковые сниппеты и заголовки;
- страницы пагинации индексируются как самостоятельные документы без нужного canonical;
- тема выводит один и тот же блок контента на главной, в архиве и на посадочной странице;
- плагин кэширования или SEO-плагин генерирует конфликтующие мета-теги.
Что проверить в первую очередь
Откройте проблемный URL и посмотрите исходный код страницы. Важно найти не только <link rel="canonical">, но и понять, не дублируется ли title, description и основной текст на соседних страницах. Если canonical указывает на саму страницу, а в индексе всё равно есть копии, значит поисковик получает несколько равнозначных сигналов.
Полезно проверить:
- есть ли у дубля свой canonical;
- не закрыт ли нужный URL через
noindexслучайно; - не создаёт ли тема отдельные шаблоны для мобильной версии или фильтров;
- не появляются ли URL с параметрами вроде
?amp,?replytocom,?utm_*.
Диагностика: где именно рождается дубль
Если дубль виден в поиске, но неочевиден в админке, начинайте с технической проверки. Самый быстрый путь — посмотреть исходный HTML и сравнить несколько вариантов одного и того же контента. Для этого удобно использовать браузер и, при необходимости, curl.
curl -L https://example.com/category/news/ | grep -i canonicalЕсли canonical отсутствует или указывает не туда, проблема уже на уровне шаблона или SEO-плагина. Если canonical правильный, но дубли всё равно индексируются, значит поисковик видит слишком много альтернативных URL, и их нужно либо нормализовать, либо закрыть.
Типичные источники дублей в WordPress
| Источник | Как выглядит | Что делать |
|---|---|---|
| Пагинация | /category/news/page/2/ | Оставить индексируемой только при необходимости, canonical должен вести на саму страницу пагинации |
| Параметры URL | ?replytocom=1, ?utm_source=... | Нормализовать canonical, при необходимости закрыть параметрические URL |
| Архивы таксономий | Категории, теги, авторы | Удалить слабые архивы из индекса или улучшить уникальность шаблонов |
| Дубли шаблонов | Одинаковый контент на главной и в архиве | Пересмотреть вывод блоков в теме |
Пошаговое решение: canonical, noindex и правка шаблона
Универсального рецепта нет: иногда достаточно настроить SEO-плагин, иногда нужно поправить шаблон темы. Ниже — порядок, который обычно даёт предсказуемый результат.
Шаг 1. Нормализуйте canonical
Canonical должен указывать на основную версию страницы. Для записей это обычно сам URL записи, для архивов — соответствующий архив, а для параметрических URL — чистая версия без лишних параметров.
Если нужно задать canonical вручную для конкретного шаблона или страницы, можно использовать фильтр wpseo_canonical в Yoast SEO или аналогичный механизм в вашем SEO-плагине. Ниже пример для WordPress без привязки к конкретному плагину: добавляем canonical через wp_head только там, где это действительно нужно.
add_action('wp_head', function () {
if (!is_page('contacts')) {
return;
}
echo '<link rel="canonical" href="' . esc_url(get_permalink()) . '" />' . "\n";
}, 1);Этот вариант уместен только если тема или плагин не выводят canonical корректно. Если SEO-плагин уже делает это сам, не дублируйте тег вручную.
Шаг 2. Закройте слабые архивы от индексации
Теги, архивы автора или служебные страницы часто создают много почти одинаковых страниц. Если они не несут самостоятельной ценности, их лучше закрыть через noindex, а не просто надеяться на canonical.
В Yoast SEO и Rank Math это обычно делается в настройках архивов. Если нужен кодовый подход, можно отключить индексацию для конкретного типа архива через фильтры SEO-плагина. Но здесь важно не ломать весь сайт: закрывайте только те архивы, которые реально не нужны в поиске.
Шаг 3. Уберите дубли из шаблона темы
Иногда проблема не в SEO, а в самой теме. Например, на главной выводится полный текст записи, а в архиве — тот же текст без изменений. В таком случае поисковик получает два почти одинаковых документа.
Практичнее оставить в архивах только анонс и ссылку на запись. Для кастомной темы это обычно решается в шаблоне archive.php или content.php. Пример:
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<div class="entry-summary">
<?php the_excerpt(); ?>
</div>
</article>
<?php endwhile; endif; ?>Если в архиве сейчас выводится the_content(), это частая причина дублей. Для архивов почти всегда безопаснее использовать the_excerpt().
Какой подход выбрать: плагин, код или правка темы
Если сайт на стандартной установке и у вас уже стоит SEO-плагин, не усложняйте. Но когда дубли появляются из-за темы или нестандартной логики URL, без кода не обойтись.
| Подход | Когда подходит | Минус |
|---|---|---|
| SEO-плагин | Canonical, noindex, архивы, sitemap | Не решает проблемы в шаблонах темы |
| Код в теме или плагине | Нестандартные URL, ручная нормализация | Нужно аккуратно тестировать после обновлений |
| Правка шаблонов | Одинаковый контент в архивах и на главной | Требует понимания структуры темы |
Если нужен инструмент для технической чистки сайта, в экосистеме WPShop есть Clearfy Pro: он помогает закрывать лишние архивы, убирать дубли и наводить порядок в SEO-настройках. Ссылку лучше проверять по вашей конфигурации и тестировать изменения на staging-версии: Clearfy Pro.
Проверка результата после внедрения
После правок не ограничивайтесь визуальной проверкой. Нужно убедиться, что поисковый робот получает правильные сигналы.
- Откройте исходный код страницы и проверьте canonical.
- Сравните title и description у основной страницы и дублей.
- Проверьте, что закрытые архивы отдают
noindex, если это было задумано. - Убедитесь, что пагинация не ведёт на первую страницу вместо себя.
- Посмотрите отчёты в Google Search Console по страницам с дублирующимся canonical.
Для быстрой ручной проверки можно использовать такой запрос:
curl -L https://example.com/page/2/ | grep -iE 'canonical|robots|title'Если canonical указывает на правильный URL, а robots не конфликтует с ним, это уже хороший сигнал. Но окончательный эффект лучше оценивать по индексации в Search Console и по тому, как поисковик переобходит страницы в течение времени.
Частые ошибки и как их исправить
Canonical указывает на главную страницу для всех архивов
Это частая ошибка в самописных темах. В результате пагинация и архивы теряют собственный адрес, а поисковик получает противоречивый сигнал. Исправление простое: canonical должен быть самореферентным для страниц, которые вы хотите оставить в индексе.
Ставят noindex вместо решения причины
Если дубли создаёт шаблон, закрытие страниц от индексации не убирает саму проблему. Поисковик всё равно будет тратить краулинговый бюджет на лишние URL. Сначала нормализуйте структуру, потом решайте, что закрывать.
Вручную добавляют несколько canonical
Такое бывает, когда SEO-плагин уже выводит canonical, а разработчик добавляет второй в wp_head. В HTML должен быть один canonical. Если их два, поисковик может проигнорировать оба.
Закрывают важные страницы через robots.txt
robots.txt не удаляет URL из индекса, если они уже известны поисковику. Для дублей это не лучший инструмент. Используйте его только для действительно служебных разделов, а не как замену canonical и noindex.
Практические советы по безопасности и производительности
Любые правки в теме или SEO-настройках лучше сначала проверять на staging-копии. Если сайт рабочий, сделайте резервную копию файлов и базы данных перед изменениями. Это особенно важно, когда вы меняете шаблоны архивов или подключаете фильтры в functions.php.
С точки зрения производительности не стоит плодить тяжёлые проверки в wp_head на каждой странице. Если логика зависит от конкретного шаблона, ограничивайте её условными тегами вроде is_page(), is_category() и is_singular(). Так вы не будете выполнять лишний код на всём сайте.
Если дубли появились после установки нового плагина, отключайте его не вслепую, а по одному и проверяйте исходный HTML. Это быстрее, чем искать проблему по симптомам в индексации через неделю.