Как найти и убрать дублирующиеся метатеги в WordPress

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

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

Как понять, что на странице действительно есть дубли

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

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

Если у вас подключён SEO-плагин, а в теме есть собственная SEO-разметка, дубли почти гарантированы. Частый сценарий: тема выводит базовые метатеги через wp_head, а плагин добавляет свои поверх них.

Быстрая диагностика через исходник

<!-- Пример того, что искать в исходном коде -->
<title>Страница 1</title>
<meta name="description" content="Описание страницы 1">
<link rel="canonical" href="https://example.com/page/">

<title>Страница 1 — сайт</title>
<meta name="description" content="Другое описание">
<link rel="canonical" href="https://example.com/page/">

Если видите два одинаковых блока, дальше нужно понять, кто именно их печатает: тема, плагин или кастомный код в functions.php.

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

В WordPress метатеги чаще всего добавляются в одном из трёх мест:

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

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

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

  • Не выводит ли тема <title> вручную в header.php.
  • Не подключён ли SEO-плагин, который уже берёт title на себя.
  • Нет ли в functions.php самописных функций с add_action('wp_head', ...).
  • Не вставлены ли метатеги через конструктор шаблонов, блоки шапки или сторонний плагин для вставки кода.

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

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

Вариант 1. Убрать ручной вывод из темы

Если в header.php есть прямой вывод title или description, удалите его и оставьте стандартный механизм WordPress. Для title в современных темах достаточно поддержки через add_theme_support('title-tag').

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

После этого WordPress и совместимый SEO-плагин будут управлять заголовком страницы без ручного дублирования в шаблоне.

Вариант 2. Отключить лишний вывод в wp_head

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

// functions.php или мини-плагин
add_action('after_setup_theme', function () {
    remove_action('wp_head', 'mytheme_print_meta_tags');
});

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

Вариант 3. Оставить SEO-плагин единственным источником

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

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

Пошаговая схема исправления

  1. Откройте исходный код проблемной страницы и выпишите все повторяющиеся метатеги.
  2. Определите источник каждого блока: тема, SEO-плагин, кастомный код.
  3. Отключите один из источников, а не пытайтесь «переписать» оба сразу.
  4. Очистите кэш страницы, если он есть: серверный, плагина и CDN.
  5. Снова проверьте исходник и убедитесь, что тег остался в единственном экземпляре.

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

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

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

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

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

Мини-чек-лист после правки

  • Исходный код обновлённой страницы содержит один набор метатегов.
  • Кэш очищен на уровне плагина и сервера.
  • SEO-плагин не конфликтует с темой.
  • На страницах архива и записи одинаковая логика не дублируется дважды.
  • В консоли браузера и в HTML нет следов старого шаблона.

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

Удалили не тот callback

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

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

Иногда разработчик убирает только <title>, а canonical и description продолжают дублироваться. Проверяйте весь набор метатегов, а не один тег. Поисковику важна целостная разметка страницы.

Не очистили кэш

После правки исходника старый HTML может продолжать отдаваться из кэша. Это особенно заметно на сайтах с серверным кэшированием или CDN. Если проверяете результат сразу после изменения, очищайте все уровни кэша, иначе будете смотреть на старую версию страницы.

Смешали ручную и автоматическую SEO-разметку

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

Что делать, если дубли появляются только на отдельных типах страниц

Если проблема есть только на рубриках, тегах или страницах пагинации, не спешите править всё подряд. Сначала сравните шаблон одиночной записи и шаблон архива. Часто в архиве тема уже выводит заголовок страницы, а SEO-плагин добавляет свой вариант через wp_head.

Для таких случаев полезно проверить:

  • шаблон archive.php;
  • шаблон category.php или tag.php;
  • фильтры SEO-плагина для архивов;
  • кастомные функции, которые меняют title на основе типа страницы.

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

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

Если у вас много ручных правок в SEO-разметке, имеет смысл вынести их в отдельный файл или плагин. Это проще сопровождать, чем искать по шаблонам разрозненные куски wp_head. Для сайтов, где нужно регулярно чистить дубли и лишние элементы разметки, иногда удобнее использовать специализированные инструменты вроде Clearfy Pro, но только если он действительно закрывает вашу задачу без лишних модулей.

Главная идея простая: один тип метатега — один источник. Как только это правило нарушается, дубли появляются снова, даже если вы один раз их уже убрали.

Как закрыть дубли страниц от пагинации в WordPress без потери индексации
17.09.2026