В WordPress дубли чаще всего появляются не из-за «плохого SEO», а из-за нормальной работы движка: одна и та же запись доступна по нескольким URL, архивы создают похожие страницы, а фильтры и параметры запроса плодят почти одинаковые версии. Если это не контролировать, поисковик начинает выбирать канонический URL сам, и выбор не всегда совпадает с вашим.
Ниже разберём, как найти источник дублей, что именно править в WordPress и как проверить, что после изменений поисковая система видит нужную версию страницы.
Когда дубли появляются чаще всего
Сначала полезно понять, с чем вы имеете дело. В WordPress дубли обычно возникают в нескольких сценариях:
- одна запись открывается с разными URL из-за
www/non-www, HTTP/HTTPS или слэша в конце; - посты доступны через архивы рубрик, тегов, автора и даты;
- страницы пагинации и фильтров создают похожий контент;
- параметры
?replytocom=,?amp, UTM-метки и сортировки дают отдельные URL; - тема или плагин выводят неправильный
canonicalв<head>.
Если у сайта уже есть индексация, не стоит сразу закрывать всё подряд. Сначала нужно понять, какие URL реально попали в поиск и какие из них должны остаться.
Диагностика: как найти источник дублей
Проверка через поиск и исходный код
Откройте несколько проблемных страниц и посмотрите исходный код. В <head> должен быть один корректный тег:
<link rel="canonical" href="https://example.com/post-slug/" />Если canonical отсутствует, дублируется или указывает на другой URL, это уже повод проверять тему, SEO-плагин и кастомный код.
Что смотреть в Google Search Console
В отчёте по страницам и в проверке URL полезно сравнить:
- какой URL выбран как канонический Google;
- какой URL указан вами;
- есть ли страницы с параметрами, которые индексируются отдельно;
- не попали ли в индекс архивы, которые не несут самостоятельной ценности.
Если Search Console показывает, что канонический URL выбран не тот, сначала исправляйте причину на сайте, а не только отправляйте страницу на повторную индексацию.
Пошаговое решение: что делать в WordPress
1. Приведите сайт к одному основному варианту URL
На уровне сервера и WordPress должен быть один формат адресов: HTTPS, один домен, один стиль слэша. Это базовая настройка, без которой canonical не спасает от технического шума.
Проверьте Настройки > Общие и убедитесь, что WordPress Address и Site Address совпадают с основным доменом. Если сайт работает через www, не смешивайте его с без-www версией.
2. Оставьте canonical на уровне SEO-плагина или темы
Если у вас уже стоит SEO-плагин, не дублируйте его логику в теме. Два разных источника canonical — частая причина конфликтов. В большинстве случаев достаточно одного механизма: либо SEO-плагин, либо собственный код, если проект очень кастомный.
Для страниц, где canonical должен быть нестандартным, можно задать его вручную через фильтр wpseo_canonical в Yoast SEO или аналогичный механизм в другом плагине. Но используйте это точечно, а не для всего сайта.
3. Уберите лишние архивы из индексации
Архивы автора, дат и тегов часто создают страницы с очень похожим набором записей. Если они не дают отдельной ценности, их лучше закрыть от индексации или настроить canonical на более полезные страницы.
Например, если архивы авторов не нужны, можно отключить их вывод в поиске через SEO-плагин или кодом. Но сначала проверьте, не приносят ли они трафик по брендовым или навигационным запросам.
4. Уберите параметры, которые плодят дубли
Параметры вроде ?replytocom= и некоторых сортировок часто создают лишние URL. Если они не нужны для SEO, лучше не допускать их индексации. Для комментариев и якорных переходов это обычно безопасно, но для фильтров и сортировок на контентных страницах решение надо принимать отдельно.
Если нужен жёсткий контроль, можно добавить canonical вручную для страниц с параметрами. Пример для простого случая:
add_filter('wpseo_canonical', function ($canonical) {
if (is_singular() && isset($_GET['replytocom'])) {
return get_permalink();
}
return $canonical;
});Этот код имеет смысл только если у вас действительно есть проблема с параметром replytocom и SEO-плагин Yoast. Для других плагинов фильтр будет другим.
5. Настройте canonical для нестандартных шаблонов
Если у вас кастомные страницы, блоки с подборками или шаблоны, которые выводят один и тот же контент в нескольких местах, canonical можно задать вручную через wp_head. Это полезно, когда стандартная логика WordPress не понимает, какая версия страницы главная.
add_action('wp_head', function () {
if (is_page_template('templates/landing.php')) {
$canonical = get_permalink();
echo '<link rel="canonical" href="' . esc_url($canonical) . '" />' . "\n";
}
}, 1);Важно: если SEO-плагин уже выводит canonical, не добавляйте второй тег. Сначала отключите стандартный вывод для этого шаблона или меняйте его через фильтр плагина.
Какой подход выбрать: плагин, код или правка шаблона
| Подход | Когда подходит | Плюсы | Минусы |
|---|---|---|---|
| SEO-плагин | Типовой сайт, стандартные архивы и записи | Быстро, меньше ручного кода | Меньше контроля над нестандартными сценариями |
| Код в теме или mu-plugin | Кастомные шаблоны, точечные правила | Гибко, можно учесть логику проекта | Нужна аккуратность и тестирование |
| Правка шаблона | Один проблемный шаблон | Локальное решение без глобальных изменений | Легко забыть при обновлении темы |
Если сайт типовой, не усложняйте: сначала настройте SEO-плагин и базовые URL. Код нужен тогда, когда стандартных настроек уже не хватает.
Проверка результата после внедрения
После правок не ограничивайтесь визуальной проверкой. Нужны минимум три шага:
- Откройте проблемную страницу и проверьте исходный код: canonical должен быть один и вести на нужный URL.
- Проверьте страницу в Google Search Console через инструмент проверки URL.
- Сравните индексацию через
site:-запрос и убедитесь, что лишние варианты не вытесняют основную страницу.
Если вы закрывали архивы или параметры, изменения могут быть заметны не сразу. Это нормально: поисковику нужно время, чтобы переоценить страницы.
Мини-чек-лист перед повторной индексацией
- основной домен и HTTPS настроены без дублей;
- canonical на странице один и корректный;
- нет второго canonical из темы или плагина;
- архивы, которые не нужны, закрыты или настроены осознанно;
- страницы с параметрами не создают отдельные индексируемые версии;
- robots.txt не блокирует важные страницы случайно.
Частые ошибки и как их исправить
Два canonical на одной странице
Обычно это конфликт темы и SEO-плагина. Оставьте только один источник. Если canonical выводится через wp_head в теме, уберите этот код или отключите его условно для страниц, где работает плагин.
Canonical указывает на главную страницу
Такое бывает после неудачной настройки шаблона или при копировании кода из другого проекта. Для обычной записи canonical должен вести на её собственный URL, а не на главную, если только это не специальная посадочная страница.
Закрыли архивы, но не убрали внутренние ссылки
Если рубрики и теги остаются в меню, хлебных крошках и блоках, поисковик всё равно будет их обходить. Закрытие от индексации не отменяет наличие ссылок. Иногда нужно ещё и пересмотреть структуру внутренних ссылок.
Удалили параметры в robots.txt и получили побочный эффект
Robots.txt не решает проблему canonical. Если запретить обход слишком агрессивно, поисковик может не увидеть нужные сигналы на странице. Для дублей с параметрами чаще полезнее canonical и корректная внутренняя перелинковка, чем жёсткая блокировка.
Практические советы по безопасности и производительности
Любые правки canonical и архивов лучше вносить через дочернюю тему или mu-plugin, а не в файлы обновляемой темы. Так вы не потеряете изменения после обновления.
Если на сайте много технических дублей, имеет смысл дополнительно проверить:
- не создаёт ли кэш отдельные версии страниц для разных query string;
- не дублируются ли мета-теги из нескольких SEO-расширений;
- не генерирует ли тема лишние архивы, которые можно отключить;
- не выводятся ли одинаковые блоки контента на разных URL без канонизации.
Для сайтов, где нужна более жёсткая чистка дублей и технических страниц, можно посмотреть в сторону Clearfy Pro: он закрывает часть типовых задач по SEO и уборке лишних сущностей, но всё равно требует проверки после настройки. Ссылка на продукт: https://wpshop.ru/plugins/clearfy.
Главный критерий здесь простой: у каждой важной страницы должен быть один понятный адрес, один canonical и одна логика индексации. Всё остальное — уже следствие этой настройки.