Если в Search Console всплывают одинаковые title, description или несколько страниц с одним и тем же canonical, проблема обычно не в «плохом SEO-плагине», а в конфигурации темы, архивов, пагинации и шаблонов. В WordPress дубли метатегов появляются быстрее, чем кажется: один и тот же шаблон может отрабатывать для записей, таксономий, авторских архивов и служебных страниц.
Ниже — рабочая схема, как найти источник дублей, исправить его без лишних правок и проверить, что поисковик видит уже одну каноническую версию страницы.
Как понять, что дубли метатегов уже есть
Сначала не трогайте код. Проверьте симптомы в инструментах, которые уже есть под рукой:
- в Google Search Console страницы с одинаковым
TitleилиDuplicate, Google chose different canonical than user; - в выдаче отображается не тот заголовок, который вы задавали в SEO-плагине;
- у страниц пагинации, архивов и фильтров одинаковый
<title>илиmeta description; - в исходном коде есть несколько тегов
rel="canonical"или canonical указывает на URL с параметрами.
Что проверить в первую очередь
Откройте проблемную страницу и посмотрите исходный HTML. Ищите не только title и description, но и canonical, robots, Open Graph-теги. Часто дубли возникают не в одном месте, а сразу в двух: тема выводит базовые метатеги, а SEO-плагин добавляет свои поверх них.
<title>Пример заголовка</title>
<meta name="description" content="Описание страницы">
<link rel="canonical" href="https://example.com/page/">Если в коде вы видите два блока <title> или два canonical, это уже не «особенность браузера», а конфликт шаблонов.
Откуда обычно берутся дубли в WordPress
На практике источников немного, и почти все они типовые. Это помогает не искать проблему вслепую.
| Источник | Как проявляется | Что делать |
|---|---|---|
| Тема | Выводит title/description вручную в header.php или через старые функции | Убрать ручной вывод и оставить один источник метатегов |
| SEO-плагин | Генерирует шаблоны для записей, архивов и таксономий | Проверить шаблоны title/description и правила для архивов |
| Пагинация | Страницы /page/2/ получают тот же title, что и первая страница | Добавить номер страницы в шаблон или закрыть от индексации |
| Фильтры и параметры URL | Один контент доступен по нескольким адресам | Настроить canonical и при необходимости noindex |
Пошаговое решение без лишнего риска
Шаг 1. Уберите двойной вывод метатегов
Если тема вручную печатает title, description или canonical, сначала отключите именно это. В современных темах title должен управляться через add_theme_support( 'title-tag' ), а canonical — либо ядром, либо SEO-плагином, но не обоими сразу.
<?php
// functions.php
add_action( 'after_setup_theme', function () {
add_theme_support( 'title-tag' );
} );Если в header.php есть жестко прописанный <title>, удалите его. Иначе WordPress и SEO-плагин будут спорить за один и тот же тег.
Шаг 2. Настройте шаблоны title и description в SEO-плагине
В большинстве случаев лучше не писать метатеги вручную для каждой страницы, а задать шаблоны для типов контента. Это снижает риск дублей на новых записях и архивах.
Проверьте отдельно:
- записи;
- страницы;
- рубрики и метки;
- авторские архивы;
- страницы пагинации.
Если архивы не нужны в поиске, закройте их от индексации или задайте уникальные шаблоны. Иначе у вас быстро появятся десятки страниц с одинаковым описанием.
Шаг 3. Исправьте canonical для страниц с параметрами
Проблема с canonical особенно заметна на страницах поиска, фильтров, сортировок и UTM-меток. Базовое правило простое: canonical должен вести на чистую основную версию URL без служебных параметров, если параметры не меняют смысл страницы.
Ниже пример, который убирает параметры utm_* и gclid из canonical. Это не универсальное решение для всех сайтов, но для контентных страниц оно часто уместно.
<?php
add_filter( 'wpseo_canonical', function ( $canonical ) {
if ( empty( $canonical ) ) {
return $canonical;
}
$parts = wp_parse_url( $canonical );
if ( empty( $parts['query'] ) ) {
return $canonical;
}
parse_str( $parts['query'], $query );
foreach ( $query as $key => $value ) {
if ( str_starts_with( $key, 'utm_' ) || in_array( $key, array( 'gclid', 'fbclid' ), true ) ) {
unset( $query[ $key ] );
}
}
$new_query = http_build_query( $query );
$url = $parts['scheme'] . '://' . $parts['host'] . ( $parts['path'] ?? '' );
if ( $new_query ) {
$url .= '?' . $new_query;
}
return $url;
} );Этот пример рассчитан на Yoast SEO, потому что фильтр wpseo_canonical — реальный и документированный. Если у вас другой плагин, ищите его собственный фильтр или настраивайте canonical через шаблон темы.
Шаг 4. Закройте от индексации служебные страницы
Не все дубли нужно «лечить» canonical. Иногда правильнее просто закрыть страницу от индексации: результаты поиска по сайту, страницы с пустыми архивами, технические фильтры, некоторые страницы пагинации.
Для этого используйте noindex точечно, а не глобально. Иначе можно случайно убрать из поиска полезные разделы.
Когда лучше править кодом, а когда — настройками
Если дубли идут из шаблонов темы, правка кода быстрее и надежнее. Если проблема в шаблонах SEO-плагина, проще исправить настройки. Если же дубли появляются только на отдельных типах страниц, лучше использовать точечный фильтр.
| Подход | Когда подходит | Минус |
|---|---|---|
| Настройки SEO-плагина | Нужно быстро убрать дубли title/description на типовых страницах | Не всегда решает конфликт с темой |
| Код в теме или плагине | Есть ручной вывод метатегов или нестандартные архивы | Нужна аккуратность при обновлениях |
| Комбинированный вариант | Часть дублей идет из шаблонов, часть — из параметров URL | Требует проверки нескольких мест |
Как проверить, что решение сработало
После правок не ограничивайтесь просмотром страницы в браузере. Проверка должна быть технической.
- Откройте исходный код страницы и убедитесь, что title, description и canonical выводятся один раз.
- Проверьте несколько типов страниц: запись, рубрика, архив, пагинация, страница с параметрами URL.
- В Search Console отправьте URL на повторную проверку, если проблема была массовой.
- Сравните canonical в исходнике и в отчете инспекции URL — они должны совпадать.
Если canonical в коде один, а в Search Console Google выбирает другой, значит у страницы есть сильный сигнал на дублирование: похожий контент, несколько доступных URL или конфликт внутренних ссылок.
Частые ошибки и как их исправить
Оставили title в теме и в SEO-плагине
Это самая частая причина. Визуально все выглядит нормально, но в HTML уже два заголовка. Решение одно: оставить только один источник генерации метатегов.
Сделали одинаковые шаблоны для записей и архивов
Если шаблон title для рубрик и записей совпадает, поисковик быстро начинает считать их дублями. Добавляйте в шаблон тип страницы, название рубрики или номер страницы, если это оправдано.
Поставили canonical на URL с параметрами
Canonical должен указывать на основную версию страницы. Если в нем остаются UTM-метки или сортировка, вы сами создаете шум для индексации.
Закрыли noindex все подряд
Это типичная попытка «потушить пожар» слишком грубо. В итоге из поиска исчезают не только мусорные страницы, но и полезные архивы. Закрывайте только то, что действительно не должно ранжироваться.
Практические советы по безопасности и производительности
Чем меньше плагинов одновременно управляют метатегами, тем меньше конфликтов. Если SEO-плагин уже закрывает title, description и canonical, не дублируйте эту логику в теме и в mu-plugin без необходимости.
Перед изменениями сделайте копию файла темы или вынесите правки в дочернюю тему. Это особенно важно, если вы правите header.php или шаблоны архивов. После обновления основной темы ручные изменения часто теряются.
Если сайт большой, не проверяйте все вручную. Начните с шаблонов, которые генерируют больше всего страниц: рубрики, метки, авторы, пагинация и результаты поиска. Именно там дубли появляются чаще всего.
Для сайтов на Yoast SEO можно дополнительно использовать его настройки для архивов и шаблонов, а если нужен более широкий контроль над дублями и технической чисткой, уместно посмотреть в сторону Clearfy Pro: https://wpshop.ru/plugins/clearfy?utm_source=wpdo.ru&utm_medium=article&utm_campaign=kak-najti-i-udalit-dubli-metatagov-i-kanonicheskih-url-v-wordpress
Если после правок проблема не уходит, проверьте не только HTML, но и кеш: серверный, плагинный и CDN. Иногда поисковик видит старую версию страницы дольше, чем вы ожидаете, и это создает ложное ощущение, что исправление не сработало.