WPExperts

Как найти и убрать дубли метаданных в WordPress

Дубли метаданных в WordPress обычно всплывают не сразу. Сайт может нормально открываться, но в коде страницы одновременно оказываются два <title>, несколько meta name="description" или конфликтующие link rel="canonical". Для поисковика это не косметика: он получает противоречивые сигналы и начинает выбирать версию страницы сам.

Чаще всего проблема появляется после установки SEO-плагина, обновления темы, подключения конструктора или ручной правки header.php. Ниже — рабочий порядок проверки и исправления, без лишних действий и без «на всякий случай отключить всё подряд».

Когда дубли метаданных действительно мешают

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

  • в HTML есть два разных title — один от темы, второй от SEO-плагина;
  • на странице выводятся две версии description из-за параллельной работы темы и плагина;
  • canonical указывает на одну URL, а og:url или разметка темы — на другую;
  • для записей, страниц и архивов используются разные шаблоны, и в одном из них метатеги добавляются вручную;
  • после миграции сайта старый код в functions.php продолжает печатать мета-теги, хотя SEO-плагин уже делает это сам.

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

Диагностика: где искать источник дублей

Начинать нужно не с правки кода, а с проверки исходника страницы. Откройте проблемную страницу и посмотрите HTML через «Просмотр кода страницы» или DevTools. Ищите:

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

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

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

Если у вас стоит SEO-плагин, а в коде всё равно есть второй набор метатегов, почти всегда виноваты:

  • header.php темы;
  • кастомный код в functions.php дочерней темы;
  • плагин, который добавляет Open Graph и Twitter Cards отдельно;
  • конструктор или тема с собственным SEO-модулем.

Проверка через поиск по файлам обычно быстрее, чем гадать по интерфейсу админки. Ищите в теме и плагинах строки wp_head, wp_title, pre_get_document_title, meta name="description", rel="canonical".

Как убрать дубли: рабочая схема

Правильный подход такой: сначала оставляем один источник метаданных, потом отключаем остальные. Не наоборот.

Шаг 1. Определите главный источник

Если вы используете SEO-плагин, он должен быть единственным источником для title, description и canonical. Тема в этом случае не должна печатать эти же теги вручную. Если SEO-плагина нет, метатеги можно генерировать кодом темы, но тогда это должен быть один аккуратный механизм, а не набор разрозненных вставок.

Шаг 2. Уберите ручную генерацию из темы

Проверьте header.php и functions.php. Если там есть что-то вроде этого, это частая причина дублей:

<title><?php bloginfo('name'); ?></title>

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

В functions.php проверьте, нет ли старых фильтров, которые добавляют title или description поверх SEO-плагина:

add_filter('pre_get_document_title', function ($title) {
    return $title . ' | Мой сайт';
});

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

Шаг 3. Оставьте один canonical

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

Шаг 4. Проверьте Open Graph и Twitter Cards

Иногда кажется, что дубли только в SEO-метатегах, но на деле конфликт идёт через соцсети. Например, тема выводит og:title и og:description, а плагин — свои версии. Это не всегда ломает индексацию, но создаёт шум в коде и может давать разные превью в соцсетях.

ПодходПлюсыМинусы
Оставить SEO-плагин как единственный источникПредсказуемо, удобно для контентной командыНужно убрать старый код из темы
Генерировать метатеги кодом темыМеньше зависимостей от плагиновСложнее поддержка, выше риск дублей
Смешанный вариантБыстро на этапе миграцииЧасто приводит к конфликтам и повторным правкам

Пример: как отключить ручной title в теме

Если тема выводит title вручную, сначала проверьте, есть ли в functions.php поддержка документа через add_theme_support('title-tag'). Если нет — добавьте её и уберите ручной тег из header.php.

// functions.php
add_action('after_setup_theme', function () {
    add_theme_support('title-tag');
});

После этого в header.php не должно быть собственного <title>. Заголовок будет формироваться через ядро WordPress и совместимый SEO-плагин.

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

Как проверить, что исправление сработало

После правок не ограничивайтесь визуальной проверкой в браузере. Смотрите именно исходный HTML:

  1. Откройте страницу в режиме просмотра кода.
  2. Найдите <title> и убедитесь, что он один.
  3. Проверьте, что meta name="description" не повторяется.
  4. Проверьте, что link rel="canonical" один и ведёт на нужный URL.
  5. Сравните страницу с тем, что показывает SEO-плагин в предпросмотре сниппета.

Если используете Search Console, после исправления стоит отправить страницу на переобход. Но сначала убедитесь, что в коде реально исчезли дубли, а не только «стали незаметны» в интерфейсе плагина.

Мини-чек-лист перед публикацией

  • в теме нет ручного <title>;
  • SEO-плагин не дублируется собственным кодом темы;
  • canonical выводится один раз;
  • Open Graph не печатается двумя разными источниками;
  • после очистки кеша исходник страницы проверен заново.

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

Ошибка 1: удалили не тот код. Часто убирают метатеги из дочерней темы, а дубли остаются в родительской теме или в плагине. Решение простое: искать по всему проекту, а не только в активной теме.

Ошибка 2: отключили SEO-плагин целиком. Это слишком грубо. В результате можно потерять не только дубли, но и нормальные canonical, robots и соцметки. Лучше отключать только конфликтующий модуль или убрать ручную генерацию из темы.

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

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

Ошибка 5: смешали SEO и Open Graph без контроля. Если один плагин отвечает за SEO, а другой — за соцсети, заранее проверьте, не печатают ли они одинаковые поля. Иначе дубли будут не только в метатегах, но и в превью ссылок.

Что делать, если дубли появляются после обновления темы или плагина

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

Для нестандартных правок лучше вынести логику в небольшой mu-plugin или в собственный плагин сайта. Тогда обновление темы не вернёт старый конфликт обратно.

Если нужен более системный способ чистить лишние SEO-элементы и дубли в WordPress, можно посмотреть на Clearfy Pro: https://wpshop.ru/plugins/clearfy. Но даже с плагином важно понимать, какой именно источник метаданных вы отключаете, иначе проблема просто переедет в другой шаблон.

Практика безопасности и поддержки

Не редактируйте родительскую тему напрямую, если сайт живой и обновляется. Для таких задач безопаснее:

  • дочерняя тема для шаблонов;
  • mu-plugin для точечных фильтров;
  • отдельный плагин для кода, который должен переживать обновления темы.

Перед изменениями сделайте бэкап файлов и базы. Если сайт на продакшене, сначала проверьте правки на staging-копии. Для метатегов это особенно важно: ошибка не ломает фронтально сайт, но может незаметно испортить индексацию.

Если после чистки дублей вы видите, что часть страниц всё ещё отдаёт старые метатеги, проверьте не только WordPress, но и кеш на уровне сервера, CDN и браузера. В таких задачах именно кеш чаще всего маскирует результат и создаёт ложное ощущение, что правка не сработала.

×
до 3225₽

Продавай темы и плагины WordPress!

Лови с каждой продажи

Начать ⋙