Как найти и удалить дубли метатегов в WordPress без потери SEO

Дубли метатегов в WordPress обычно появляются не из-за одной ошибки, а из-за нескольких источников разметки сразу: тема выводит один <title>, SEO-плагин — другой, а шаблон страницы добавляет свой canonical или meta description. В результате поисковик видит неоднозначные сигналы, а в отчётах по индексации начинают всплывать одинаковые сниппеты, странные каноникалы и страницы с пустыми или повторяющимися описаниями.

Ниже — рабочий сценарий: как быстро диагностировать источник дублей, что править в коде и как проверить, что после изменений WordPress отдаёт только один набор метатегов.

Как понять, что проблема именно в дублях метатегов

Сначала не трогайте код. Проверьте, действительно ли на странице выводится несколько версий одного и того же тега. Откройте исходный код страницы и найдите:

  • <title> — должен быть один;
  • <meta name="description"> — один или отсутствовать, если вы сознательно не используете description;
  • <link rel="canonical"> — один;
  • <meta property="og:title"> и og:description — не должны дублировать конфликтующие значения без причины.

Если в исходнике есть два canonical или два description, это уже не косметика. Обычно причина одна из трёх:

  • тема и SEO-плагин одновременно подключают метатеги;
  • в шаблоне вручную вставлен wp_head() не там, где нужно, или повторно;
  • кастомный код добавляет теги через wp_head, но не проверяет, что их уже вывел плагин.

Что посмотреть в первую очередь

Откройте исходник проблемной страницы и сравните значения. Если у одной и той же записи:

  • title отличается от заголовка в админке;
  • description берётся из темы, а не из SEO-плагина;
  • canonical указывает на архив, а не на саму запись;

значит, конфликт идёт на уровне шаблона или плагина, а не контента.

Где обычно возникает конфликт в WordPress

На практике дубли чаще всего появляются после установки SEO-плагина поверх темы, которая уже умеет генерировать метатеги. Это типичная ситуация для старых или сильно кастомизированных тем.

ПодходПлюсыМинусы
Исправить в SEO-плагинеБыстро, без правки темыНе помогает, если тема уже выводит теги вручную
Исправить в темеУбирает источник конфликтаНужен доступ к шаблонам и аккуратность при обновлениях
Оставить как есть и надеяться на canonicalНичего не ломает сразуПроблема остаётся, поисковик получает лишние сигналы

Если у вас есть доступ к теме, лучше убрать дубли на уровне источника. Если тема сторонняя и обновляется отдельно, безопаснее отключить лишний вывод через фильтры или настройки SEO-плагина.

Пошаговое решение: как убрать дубли title, description и canonical

Шаг 1. Найдите, кто именно выводит метатеги

Проверьте файлы темы на наличие прямого вывода метатегов. Ищите в header.php, functions.php и в шаблонах:

<title>...</title>
<meta name="description"
<link rel="canonical"
add_action( 'wp_head', ... )

Если тема выводит <title> вручную, а в WordPress включена поддержка title-tag, это уже потенциальный дубль. Для современных тем заголовок должен генерироваться через ядро WordPress, а не через статический HTML в шаблоне.

Шаг 2. Уберите ручной title из темы

Если в header.php есть жёстко прописанный <title>, удалите его и оставьте корректный вызов wp_head(). Поддержка заголовка должна быть включена в functions.php:

add_action( 'after_setup_theme', function () {
    add_theme_support( 'title-tag' );
} );

После этого WordPress сам сформирует title через ядро или SEO-плагин, если он подключён и совместим.

Шаг 3. Оставьте один источник description

Если description выводит и тема, и SEO-плагин, нужно выбрать один источник. В большинстве случаев правильнее оставить SEO-плагин, а ручной вывод из темы отключить. Пример безопасного отключения собственного description в теме:

add_action( 'wp_head', function () {
    // Удалите или закомментируйте кастомный вывод description в теме.
    // Не оставляйте второй meta description параллельно с SEO-плагином.
}, 1 );

Если вы не хотите править шаблон напрямую, можно найти функцию, которая печатает description, и убрать её через remove_action(), если она была добавлена через хук.

Шаг 4. Проверьте canonical

Canonical должен быть один и вести на основную версию страницы. Если SEO-плагин уже выводит canonical, не добавляйте его вручную в шаблон. Для кастомных страниц, где canonical нужен отдельно, можно задать его через фильтр wpseo_canonical в Yoast SEO или аналогичный фильтр в другом плагине, но не дублировать тег в wp_head.

Пример для Yoast SEO, если нужно переопределить canonical только на конкретной странице:

add_filter( 'wpseo_canonical', function ( $canonical ) {
    if ( is_page( 'contacts' ) ) {
        return home_url( '/contacts/' );
    }

    return $canonical;
} );

Такой подход лучше, чем печатать второй <link rel="canonical"> вручную.

Если дубли создаёт не тема, а плагин

Иногда проблема не в шаблоне, а в том, что одновременно активны два SEO-решения или один плагин дублирует часть функций другого. Это часто видно по исходнику: один плагин выводит Open Graph и canonical, другой — title и description.

В таком случае не пытайтесь «подчистить» HTML точечно. Сначала отключите лишний источник метатегов в настройках плагина. Если плагин не даёт гибко выключить нужный блок, лучше оставить один основной SEO-плагин, а второй убрать.

Что отключать в настройках

  • автоматический title, если его уже генерирует другой плагин;
  • meta description, если он дублируется;
  • canonical, если он выводится дважды;
  • Open Graph, если он конфликтует по структуре с основной SEO-разметкой.

Если вы используете Clearfy Pro, там есть инструменты для чистки лишних элементов и дублей в разметке. Это полезно именно в тех случаях, когда тема перегружена служебным HTML и часть метатегов можно убрать без ручной правки шаблонов: Clearfy Pro.

Проверка результата после внедрения

После правок не ограничивайтесь визуальной проверкой страницы. Нужно убедиться, что в исходнике остался один набор тегов и что они не меняются между шаблонами.

  • Откройте страницу в режиме просмотра исходного кода.
  • Проверьте, что <title> встречается один раз.
  • Проверьте, что meta description один.
  • Проверьте, что canonical один и ведёт на нужный URL.
  • Проверьте несколько типов страниц: запись, страница, рубрика, архив.
  • Если есть SEO-плагин, сравните его настройки с фактическим HTML.

Дополнительно можно быстро проверить страницу через команду:

curl -s https://example.com/page/ | grep -E 'title|description|canonical'

Это не заменяет полноценный аудит, но помогает быстро увидеть, сколько раз тег реально выводится в HTML.

Частые ошибки и как их исправить

Оставили ручной title в header.php

Если в теме остался статический <title>, а WordPress уже поддерживает title-tag, поисковик может видеть конфликтующие заголовки. Решение простое: убрать ручной тег и оставить генерацию через ядро или SEO-плагин.

Добавили canonical через wp_head и забыли про плагин

Это самая частая ошибка после копирования кода из старого туториала. Если canonical уже есть в SEO-плагине, второй тег не нужен. Оставляйте только фильтр или настройку плагина, но не оба варианта сразу.

Использовали несколько SEO-плагинов одновременно

Два плагина для SEO почти всегда создают пересечения: title, description, Open Graph, schema, canonical. Если нужен только один набор функций, оставьте один основной плагин и отключите лишний.

Проверили только главную страницу

На главной всё может выглядеть нормально, а на записях, рубриках и страницах пагинации уже будут дубли. Проверяйте минимум несколько типов страниц, иначе проблема вернётся после индексации.

Практические советы по безопасности и производительности

Чем меньше ручного HTML в wp_head, тем проще сопровождать сайт. Это не только про SEO, но и про поддержку темы после обновлений. Если вы правите шаблон, делайте это в дочерней теме или через небольшой mu-plugin, а не в исходниках сторонней темы.

Ещё один полезный момент: не добавляйте тяжёлые проверки и запросы к базе данных внутри wp_head ради генерации метатегов. Заголовок и description должны формироваться быстро, без лишних запросов. Если нужна логика по типу записи, используйте уже доступные данные объекта post и фильтры SEO-плагина.

Если у сайта много технического мусора в разметке, имеет смысл сначала почистить базовые дубли, а уже потом настраивать метатеги вручную. В противном случае вы будете исправлять один конфликт за другим, не убирая источник проблемы.

В рабочем варианте после правок у страницы остаётся один title, один description и один canonical. Это легко проверить в исходнике, и именно на это стоит ориентироваться, а не на то, как страница выглядит в браузере.

Как создать собственный тип записей (Custom Post Type) в WordPress с примерами кода
01.02.2026
Как удалить Emoji из WordPress для ускорения сайта
11.03.2026
WooCommerce: как убрать обязательное поле номера телефона при оформлении заказа
23.07.2026
WooCommerce: отключение обязательного поля адреса доставки при оформлении заказа
11.07.2026
WooCommerce: как убрать обязательное поле телефона при оформлении заказа
06.06.2026