Дубли в WordPress обычно появляются не из-за одной ошибки, а из-за набора мелочей: одинаковые записи доступны по разным URL, архивы индексируются вместе с основными страницами, а плагин SEO или тема добавляют лишние версии страниц. В итоге поисковик видит несколько адресов с почти одинаковым содержимым и выбирает не тот, который нужен вам.
Ниже разберём практический сценарий: как быстро найти источники дублей, что можно исправить настройками, а где уже нужен код. Без «магии» и без советов уровня «проверьте сайт в Search Console» — только то, что реально помогает на живом проекте.
Когда проблема уже есть: как понять, что это именно дубли
Первый признак — в индексе появляются страницы с одинаковым текстом, но разными адресами. Второй — в отчётах по сканированию видно много URL с параметрами, пагинацией, архивами автора, тегами или версиями со слешем и без слеша. Третий — одна и та же запись открывается по нескольким путям, например через категории, архивы дат или служебные шаблоны темы.
Что проверить в первую очередь
- открывается ли запись по нескольким URL без редиректа на канонический адрес;
- не индексируются ли архивы тегов, авторов и дат, если они не нужны для поиска;
- нет ли страниц с параметрами
?replytocom=,?amp,?utm_и похожими хвостами; - не создаёт ли тема отдельные шаблоны для одного и того же контента;
- не дублируются ли заголовки и мета-описания на архивных страницах.
Если у вас установлен SEO-плагин, начните с его настроек. Часто проблема решается без правки кода: достаточно закрыть от индексации лишние архивы, включить canonical и убрать генерацию страниц, которые не несут самостоятельной ценности.
Быстрая диагностика: где искать источники дублей
Самый полезный подход — смотреть не на «весь сайт», а на типовые зоны риска. У WordPress они повторяются почти на каждом проекте.
| Источник дубля | Как проявляется | Что делать |
|---|---|---|
| Архивы тегов и авторов | Одинаковые фрагменты записей на нескольких страницах | Оставить только если архив реально нужен для поиска |
| Параметры URL | Одна страница доступна с разными хвостами | Настроить canonical и редиректы, где это безопасно |
| Пагинация архивов | Много похожих страниц 2, 3, 4… | Проверить, нужны ли они в индексе |
| Категории и метки | Одна запись встречается в нескольких архивах | Сократить число таксономий и убрать слабые архивы |
| Тема или плагин | Создаёт альтернативные шаблоны и выводы | Проверить шаблоны, хлебные крошки, блоки похожих записей |
Если нужен более глубокий аудит, удобно начать с краулинга сайта любым сканером и сравнить URL с одинаковым title, H1 и основным текстом. Но даже без внешних инструментов можно быстро найти проблему через карту сайта, архивы и ручную проверку нескольких страниц.
Пошаговое решение: как убрать дубли без лишнего риска
Шаг 1. Определите канонический вариант каждой страницы
Для каждой важной записи должен быть один основной URL. Обычно это постоянная ссылка записи без параметров и без альтернативных путей. Если страница доступна по нескольким адресам, поисковик должен получать сигнал, какой вариант считать основным.
Проверьте, что в HTML есть корректный rel="canonical". В большинстве случаев SEO-плагин делает это сам, но после кастомизации темы или шаблонов canonical может сломаться.
Шаг 2. Закройте от индексации слабые архивы
Если архивы тегов, авторов и дат не дают отдельной ценности, их лучше не тащить в индекс. Это не значит «удалить всё» — достаточно убрать их из поиска и оставить доступными для пользователей, если они нужны в навигации.
В Yoast SEO, Rank Math и похожих плагинах это обычно делается в настройках таксономий и архивов. Если у вас кастомная тема или нестандартная логика, проверьте, не выводит ли она эти страницы в sitemap.
Шаг 3. Уберите дубли на уровне редиректов
Если один и тот же контент открывается по нескольким адресам, редирект на основной URL часто лучше, чем просто noindex. Это особенно важно для версий со слешем, http/https, www/без www и старых адресов после смены структуры сайта.
Для простых случаев можно добавить редирект в .htaccess на Apache. Пример ниже убирает дубли без слеша в конце и приводит запросы к каноническому виду:
RewriteEngine On
# Пример: принудительный слеш в конце для URL без файлового расширения
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.*)$ https://example.com/$1/ [R=301,L]Если у вас Nginx, правило нужно писать в конфиге сервера, а не в .htaccess. Не пытайтесь копировать Apache-примеры в Nginx — это типичная ошибка, из-за которой редиректы просто не работают.
Шаг 4. Уберите служебные параметры из индекса
Параметры вроде ?replytocom= или UTM-меток не должны плодить отдельные страницы в поиске. Для UTM обычно достаточно canonical на чистый URL. Для системных параметров иногда нужен редирект или настройка плагина комментариев, кэша и аналитики.
Если параметр создаёт отдельную версию страницы, а не просто меняет трекинг, проверьте, не генерирует ли его тема или плагин в ссылках внутри контента.
Шаг 5. Сократите количество архивов и дублирующих таксономий
Чем больше категорий и меток без строгой структуры, тем выше шанс получить десятки слабых архивов с одинаковыми фрагментами текста. Для небольших и средних сайтов это частая причина разрастания дублей.
- оставьте категории только там, где они реально помогают навигации;
- удалите пустые и почти пустые метки;
- не дублируйте одну и ту же логику в категориях, тегах и пользовательских таксономиях;
- проверьте, не выводит ли тема одинаковые блоки на архиве и в записи.
Когда нужен код: пример для нестандартных архивов и параметров
Если SEO-плагина недостаточно, можно точечно добавить canonical или убрать индексацию для отдельных типов страниц. Ниже пример для functions.php дочерней темы или небольшого mu-plugin. Он не заменяет полноценную SEO-настройку, но помогает в узких сценариях.
<?php
add_filter('wpseo_canonical', function ($canonical) {
if (is_author() || is_date()) {
return false;
}
return $canonical;
});
add_action('wp_head', function () {
if (isset($_GET['replytocom'])) {
echo '<meta name="robots" content="noindex,follow" />' . "\n";
}
}, 1);Важно: этот код имеет смысл только если вы понимаете, зачем отключаете canonical или добавляете noindex. Не стоит применять его «на всякий случай» ко всему сайту. Для части проектов лучше оставить canonical, а не ломать логику SEO-плагина.
Если у вас не Yoast SEO, фильтр wpseo_canonical не сработает. Тогда нужно смотреть документацию конкретного плагина или использовать стандартные WordPress-механизмы через wp_head и шаблоны темы.
Проверка результата после внедрения
После изменений не ограничивайтесь визуальной проверкой. Нужно убедиться, что поисковый и технический контур ведут себя так, как вы ожидали.
- Откройте несколько проблемных URL и проверьте, что они ведут на один основной адрес.
- Посмотрите исходный код страницы и найдите
rel="canonical". - Проверьте, не появились ли лишние страницы в sitemap.
- Сравните заголовки и мета-описания у архивов и основных страниц.
- Переобойдите сайт сканером и убедитесь, что число дублей уменьшилось.
Если используете Google Search Console, смотрите не только на статус индексации, но и на примеры URL, которые поисковик выбрал как канонические. Иногда это сразу показывает, что редирект или canonical настроены не так, как вы думали.
Частые ошибки и как их исправить
Редирект настроен, но дубли остались
Обычно причина в том, что редирект покрывает только один сценарий: например, слеш в конце, но не http/https или www/без www. Проверьте цепочки редиректов и убедитесь, что конечный URL один.
Страницы закрыли от индексации, но они всё равно попадают в sitemap
Это значит, что SEO-плагин и карта сайта живут отдельно от настроек noindex. Нужно исключить архивы и типы записей именно из sitemap, а не только прятать их мета-тегом.
Canonical указывает не туда
Так бывает после правок темы, кэширования или установки нескольких SEO-плагинов одновременно. Оставьте один SEO-плагин, очистите кэш и проверьте исходный HTML без CDN-слоя, если он есть.
Закрыли слишком много страниц
Иногда пытаются убрать все архивы и все метки сразу, а потом ломают навигацию и внутреннюю перелинковку. Если архив полезен пользователю и содержит уникальный смысл, его можно оставить в индексе, но привести к нормальному виду: уникальный title, описание и понятная структура.
Практические советы по безопасности и производительности
Чистка дублей часто идёт рядом с оптимизацией. Это хороший момент, чтобы убрать лишнюю нагрузку и не создать новые проблемы.
- не ставьте несколько SEO-плагинов одновременно;
- после редиректов проверьте, не выросло ли число запросов к серверу из-за цепочек;
- если используете кэш, очищайте его после правок canonical и robots;
- не закрывайте важные страницы только через
robots.txt— это не решает проблему дублей на уровне индексации; - не удаляйте архивы и таксономии без проверки внутренних ссылок и хлебных крошек.
Если нужно быстро навести порядок в дублях, а не собирать всё вручную, удобно использовать связку SEO-плагина и инструмента для очистки лишних технических сущностей. Например, Clearfy Pro помогает убрать часть дублей и служебного шума, но его всё равно нужно настраивать под конкретный сайт, а не включать все опции подряд.
Главная проверка простая: у важной страницы должен быть один основной URL, один canonical, один индексируемый вариант в sitemap и отсутствие лишних дублей в архивных и параметризованных версиях. Если это выполнено, дальше уже можно смотреть на качество контента и внутреннюю перелинковку, а не на технический шум.