wplog.ru wordpress wplog.ru

Как отключить дублирующиеся метатеги в WordPress без поломки SEO

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

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

Как выглядит проблема на практике

Чаще всего жалобы выглядят так: в Google Search Console появляются предупреждения о дублирующихся метаописаниях, в сниппетах скачет заголовок, а в коде страницы видно сразу несколько блоков разметки одного типа. На фронтенде это может не бросаться в глаза, но для индексации разница существенная.

Типичные симптомы:

  • в <head> два раза выводится <title>;
  • есть и meta name="description", и отдельный SEO-плагин с тем же полем;
  • rel="canonical" указывает на одну страницу, а Open Graph — на другую;
  • на архивных страницах и пагинации метатеги повторяются без логики;
  • после смены темы дубли не исчезают, потому что старый код остался в плагине или в functions.php.

Диагностика: откуда именно берутся дубли

Сначала нужно не «чистить всё подряд», а понять источник. Иначе можно удалить нужный вывод и сломать SEO-разметку целиком.

Проверка исходного кода

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

<title>...
<meta name="description" content="...">
<link rel="canonical" href="...">

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

Проверка активных источников

Сверьте три места:

  1. настройки темы — иногда там есть отдельный блок SEO или Open Graph;
  2. SEO-плагин — Yoast SEO, Rank Math, All in One SEO и похожие обычно берут на себя title, description и canonical;
  3. кастомный код в functions.php, mu-plugins или подключённых сниппетах.

Если у вас есть доступ к серверу, полезно быстро найти явные вставки по проекту:

grep -RniE 'wp_head|canonical|description|og:|twitter:|<title>' wp-content/themes wp-content/plugins wp-content/mu-plugins

Эта команда не решает проблему сама по себе, но помогает увидеть, где вообще живёт генерация метатегов.

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

Логика простая: оставляем один источник ответственности за SEO-метатеги и отключаем остальные. В идеале title, description, canonical и Open Graph должны формироваться в одном месте.

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

Если у вас уже стоит SEO-плагин, обычно именно он должен управлять основными метатегами. Тогда в теме не должно быть собственного вывода <title> и дублирующих meta в wp_head.

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

ПодходКогда подходитМинус
SEO-плагин как единственный источникПочти всегда на живом сайтеНужно проверить, что тема не дублирует вывод
Код в темеМинимальный сайт без SEO-плагинаСложнее поддерживать при смене темы
Смешанный вариантЛучше избегатьПочти гарантирует дубли

Шаг 2. Уберите лишний вывод из темы

Если тема сама печатает <title> вручную, а WordPress уже использует поддержку title-tag, оставьте только один вариант. В современной теме заголовок должен управляться через add_theme_support( 'title-tag' );.

Пример корректной настройки в functions.php:

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

Если в header.php есть ручной <title>, его нужно убрать. Иначе WordPress и тема будут выводить его одновременно.

Шаг 3. Отключите дублирующий SEO-код точечно

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

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

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

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

Для архивов проверьте:

  • не выводится ли canonical дважды;
  • не закрыты ли страницы пагинации случайно через noindex без причины;
  • не генерирует ли тема отдельный блок SEO для архивов поверх плагина.

Пример: как убрать ручной title из темы

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

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

// header.php — удалить ручной <title>...
// Было:
// <title><?php wp_title(); ?></title>
// Стало: ничего, WordPress сам выведет title через wp_head().

Если тема использует устаревший wp_title(), это отдельный сигнал, что код писался под старую схему. В таком случае лучше проверить ещё и другие устаревшие вставки в head.

Когда нужен код, а когда достаточно настроек

Не всегда нужно лезть в PHP. Если дубли создаёт плагин настроек темы, иногда достаточно выключить соответствующий переключатель в админке. Но если источник — шаблон или кастомный сниппет, без кода не обойтись.

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

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

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

  • Откройте страницу в браузере и убедитесь, что в <head> остался один <title>.
  • Проверьте, что meta description выводится один раз.
  • Сравните canonical на обычной странице, архиве и пагинации.
  • Прогоните URL через Google Search Console, если страница уже в индексе.
  • Очистите кеш плагина, сервера и CDN, если они используются.

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

curl -s https://example.com/page/ | grep -iE '<title>|meta name="description"|rel="canonical"|og:'

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

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

Оставили и SEO-плагин, и ручной вывод в теме

Это самая частая причина. Плагин уже генерирует метатеги, а тема по старой привычке печатает свои. Решение: оставить один источник и удалить второй.

Отключили title, но забыли про canonical

Иногда разработчик чинит только заголовок, а canonical остаётся дублироваться. В результате проблема в Search Console не уходит. Проверяйте весь набор SEO-разметки, а не один тег.

Скрыли проблему кешем

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

Сломали Open Graph при удалении лишнего кода

Иногда вместе с дублем удаляют и нужные соцметатеги. Если у вас есть отдельные карточки для Telegram, VK или Facebook, проверьте, что og:title, og:description и og:image остались на месте и не конфликтуют с SEO-плагином.

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

Любые правки в functions.php лучше делать через дочернюю тему или mu-plugin, а не напрямую в коммерческой теме. Так вы не потеряете изменения после обновления.

Если проблема повторяется на нескольких страницах, не добавляйте новые SEO-хуки поверх старых. Это увеличивает количество запросов к фильтрам и делает head тяжелее для поддержки. Лучше убрать лишний код один раз, чем жить с несколькими слоями «временных» правок.

Если нужен более аккуратный контроль над дублями, чисткой служебных элементов и SEO-настройками, в экосистеме WPShop есть Clearfy Pro — но использовать его имеет смысл только как инструмент для конкретной задачи, а не как замену пониманию источника конфликта. Сначала найдите, кто именно выводит лишнее, и только потом решайте, чем удобнее это отключать.

Главный критерий, что всё сделано правильно: в исходнике страницы остался один источник метатегов, а в Search Console больше не появляются новые дубли по тем же URL. Если это не так, значит конфликт ещё живёт либо в теме, либо в кеше, либо в одном из подключённых плагинов.

×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее