Дубли метаданных в WordPress обычно всплывают не сразу: сайт открывается, страницы индексируются, но в Search Console появляются одинаковые title и description, а у части URL конфликтуют canonical. На небольшом сайте это выглядит как косметическая проблема, но на практике дубли мешают поисковику понять, какая версия страницы основная.
Чаще всего источник один из трех: тема выводит свои мета-теги поверх SEO-плагина, в шаблоне остался старый код, или разные типы страниц получают одинаковые шаблоны title/description. Ниже разберем, как быстро найти причину и убрать дубли без поломки индексации.
Как понять, что проблема именно в дублях метаданных
Сначала стоит убедиться, что речь не о дублях контента, а именно о мета-тегах. Для этого откройте несколько проблемных URL и сравните исходный код страницы. Ищите повторяющиеся блоки <title>, <meta name="description"> и <link rel="canonical">. Если один и тот же тег выводится дважды, поисковик может взять не тот вариант или проигнорировать часть разметки.
Быстрая диагностика в браузере
- Откройте страницу и посмотрите исходный код, а не визуальный HTML.
- Найдите все вхождения
<title>иcanonical. - Проверьте, не дублирует ли тема SEO-плагин.
- Сравните главную, записи, страницы, архивы и пагинацию.
Если у вас установлен SEO-плагин, сначала проверьте его настройки. Но не спешите отключать всё подряд: иногда дубли создаются не плагином, а кастомным кодом в functions.php или в дочерней теме.
Где обычно появляются дубли
На практике я чаще всего вижу такие сценарии:
| Источник | Как выглядит | Что делать |
|---|---|---|
| Тема | В шаблоне есть ручной вывод <title> или meta description | Убрать ручной вывод и оставить один источник |
| SEO-плагин | Плагин генерирует title, а тема добавляет свой | Отключить дублирующий код в теме |
| Кастомный код | Функция подключена через wp_head дважды | Проверить хук и условия подключения |
| Архивы и пагинация | Одинаковые title на страницах 1, 2, 3 | Добавить номер страницы в шаблон |
Пошаговое решение: оставляем один источник метаданных
Самый надежный подход — выбрать один механизм генерации мета-тегов и убрать остальные. Если вы используете SEO-плагин, он должен быть единственным источником title, description и canonical. Если плагина нет, эти теги можно генерировать в теме, но тоже только в одном месте.
1. Найдите ручной вывод в теме
Проверьте header.php, functions.php и файлы шаблонов. Ищите прямые вставки вроде <title>, meta name="description" и rel="canonical". Если они есть рядом с SEO-плагином, это почти наверняка источник дубля.
<!-- Плохой пример: ручной title в header.php -->
<title>Мой сайт</title>
<meta name="description" content="Описание сайта">Такой код лучше удалить, если title уже формируется через add_theme_support( 'title-tag' ) и SEO-плагин или ядро WordPress.
2. Проверьте поддержку title-tag
Если тема старая, она может выводить title вручную. Для современных тем правильнее использовать встроенную поддержку:
add_action( 'after_setup_theme', function () {
add_theme_support( 'title-tag' );
} );После этого WordPress сам подключит title через wp_head, а вы сможете управлять шаблоном без ручного HTML в header.php.
3. Уберите дублирующий canonical
Если canonical выводится и темой, и SEO-плагином, оставьте только один вариант. Вручную добавлять canonical имеет смысл только тогда, когда вы точно понимаете логику страницы. В остальных случаях лучше доверить это плагину или ядру.
remove_action( 'wp_head', 'rel_canonical' );Эта строка нужна не всегда. Она уместна только если вы сознательно заменяете стандартный canonical своим вариантом. Если не уверены, сначала найдите, кто именно уже выводит canonical, и не удаляйте рабочую реализацию без проверки.
4. Настройте шаблон title для архивов и пагинации
Если дубли возникают на страницах архивов, добавьте номер страницы в title. Это особенно полезно для категорий, тегов и страниц пагинации.
add_filter( 'document_title_parts', function( $parts ) {
if ( is_paged() ) {
$parts['title'] .= ' — страница ' . get_query_var( 'paged' );
}
return $parts;
} );Не используйте этот фильтр для всего подряд. Он должен решать конкретную проблему с одинаковыми заголовками, а не превращаться в место для случайных правок.
Если дубли создает SEO-плагин
Иногда проблема не в коде темы, а в настройках плагина. Тогда задача проще: нужно отключить лишний вывод в одном месте и оставить только нужные шаблоны. Проверьте, не включены ли одновременно:
- автогенерация description и ручной шаблон для тех же страниц;
- canonical для архивов и отдельный кастомный canonical в теме;
- шаблоны title для записей, страниц и таксономий без различий;
- мета-теги для вложений, если они уже закрыты от индексации.
Если вы используете Clearfy Pro, его удобно применять именно для точечной чистки дублей и лишних мета-тегов, когда не хочется править шаблоны вручную. Но даже в этом случае сначала проверьте, что именно выводится в исходнике: плагин должен помогать убрать лишнее, а не маскировать конфликт между темой и SEO-модулем.
Как проверить, что решение сработало
После правок не ограничивайтесь визуальной проверкой. Нужно посмотреть итоговый HTML и убедиться, что на странице остался один набор метаданных.
- Откройте проблемный URL в браузере и проверьте исходный код.
- Убедитесь, что
<title>выводится один раз. - Проверьте, что description не повторяется в двух разных блоках.
- Сравните canonical на основной странице и на пагинации.
- Прогоните URL через Google Search Console после переобхода.
Если у вас есть доступ к WP-CLI, полезно быстро найти старые ручные вставки по теме:
grep -Rni "rel=\"canonical\"\|meta name=\"description\"\|<title>" wp-content/themes/Команда не чинит проблему сама по себе, но помогает быстро локализовать файл, где остался лишний код.
Частые ошибки и как их исправить
Удалили canonical совсем
Это плохой сценарий, если у страницы есть параметры, пагинация или несколько похожих URL. Без canonical поисковику сложнее выбрать основную версию. Исправление простое: верните canonical, но оставьте только один источник генерации.
Отключили title-tag, но не убрали ручной title
В результате title может остаться в шаблоне темы и конфликтовать с выводом WordPress. Проверьте header.php и все подключаемые части шаблона.
Сделали одинаковые title для всех архивов
Это частая ошибка после упрощения шаблона. Для категорий, тегов и авторских архивов title должен отличаться хотя бы по названию термина. Иначе вы получите новые дубли вместо старых.
Проверяли только главную страницу
На главной все может быть нормально, а дубли останутся на записях, страницах пагинации и вложениях. Проверяйте минимум несколько типов URL.
Практические советы по безопасности и производительности
Когда правите метаданные через тему, не разбрасывайте логику по нескольким файлам. Один понятный фильтр в дочерней теме или небольшом плагине безопаснее, чем правка ядра шаблона. Так проще откатить изменения и не потерять их при обновлении темы.
Если сайт большой, не делайте массовые изменения в базе без бэкапа. Сначала снимите резервную копию, потом меняйте шаблоны и только после этого проверяйте HTML на нескольких типах страниц. Для продакшена это банальная, но обязательная последовательность.
И еще один практический момент: если вы используете несколько SEO-инструментов одновременно, оставьте один основной. Два плагина, которые пытаются управлять title и canonical, почти всегда создают лишние конфликты и усложняют диагностику.