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

|

Дубли метаданных в WordPress обычно всплывают не сразу: сайт открывается, страницы индексируются, но в Search Console появляются одинаковые title и description, а иногда еще и конфликтующие canonical. На небольшом сайте это выглядит как косметическая проблема, но на практике такие дубли мешают поисковику понять, какая версия страницы основная.

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

Где искать дубли и почему они появляются

Перед правкой кода нужно понять, кто именно печатает метаданные. В WordPress это может быть тема, SEO-плагин, кастомный код в functions.php или отдельный плагин для микроразметки. Если на странице одновременно есть два <title>, два meta name="description" или несколько rel="canonical", поисковик обычно берет не то, что вы ожидаете.

Типовые источники проблемы

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

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

<!-- пример проверки через командную строку -->
curl -s https://example.com/stranica/ | grep -Ei '<title>|meta name="description"|rel="canonical"'

Если у вас есть доступ к серверу, можно посмотреть и шаблонные файлы темы. Ищите прямые вставки <title>, meta name="description", rel="canonical", а также хук wp_head с анонимными функциями.

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

Пошаговое решение без лишнего риска

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

Шаг 1. Оставьте один способ генерации title

Если тема поддерживает title-tag, не выводите <title> вручную в header.php. В современной теме это должен делать WordPress.

// functions.php дочерней темы или кастомный плагин
add_action('after_setup_theme', function () {
    add_theme_support('title-tag');
});

Если в header.php есть ручной <title>, удалите его. Иначе получите либо дубль, либо конфликт с тем, что формирует ядро и SEO-плагин.

Шаг 2. Уберите повторяющийся canonical

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

// пример: отключаем собственный canonical, если он был добавлен в теме
remove_action('wp_head', 'mytheme_canonical_tag');

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

Шаг 3. Сделайте description только из одного фильтра

Для description частая ошибка — собирать его в нескольких местах: в шаблоне, в SEO-плагине и в отдельном фильтре. Если у вас уже есть SEO-плагин, не дублируйте его логику собственным <meta name="description">.

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

add_action('wp_head', function () {
    if (!is_singular('post')) {
        return;
    }

    if (function_exists('get_post_meta')) {
        $description = get_post_meta(get_the_ID(), '_custom_meta_description', true);
        if ($description) {
            echo '<meta name="description" content="' . esc_attr(wp_strip_all_tags($description)) . '">' . "\n";
        }
    }
}, 1);

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

Сравнение подходов: плагин, код или ручная правка

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

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

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

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

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

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

Это самая частая причина дубля. Решение простое: удалить ручной тег и включить add_theme_support('title-tag'), если тема его еще не использует.

Поставили SEO-плагин, но не отключили старый код

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

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

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

Сломали вывод после удаления функции

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

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

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

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

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

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

WooCommerce: как программно удалять неактивные корзины и заказы
31.05.2026
Как правильно создать каскадные типовые шаблоны WordPress для сложных сайтов
03.01.2026
WooCommerce: как использовать хук woocommerce_checkout_update_order_review для динамического обновления корзины
13.07.2026
Как добавить поддержку PHP 8 в WordPress без проблем
15.04.2026
WooCommerce: как автоматически обрабатывать возвраты и отмены заказов
20.07.2026
×
Прокачай свой WordPress!

Скидка -20% на премиум темы и плагины

Воспользоваться сейчас ⋙