wpurok.ru wordpress WPUrok

Как найти и убрать дубли title и meta description в WordPress

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

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

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

Сначала стоит отделить реальную проблему от ложной тревоги. Один и тот же title на нескольких страницах не всегда ошибка, если это архивы с одинаковым шаблоном. Но если у вас совпадают title и meta description у разных записей, категорий или страниц пагинации, это уже повод искать источник генерации.

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

  • Откройте страницу и посмотрите исходный код через view-source: или инструменты разработчика.
  • Найдите все теги <title> и <meta name="description">.
  • Проверьте, не выводится ли один и тот же тег дважды: от темы и от SEO-плагина.
  • Сравните несколько похожих страниц: записи, рубрики, страницы автора, пагинацию.

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

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

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

// Пример старого или конфликтного кода в теме
<title><?php bloginfo('name'); ?> | <?php wp_title(''); ?></title>

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

Откуда берутся дубли title и description

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

ИсточникКак выглядитЧто делать
ТемаРучной <title> в header.phpУбрать ручной вывод и перейти на add_theme_support('title-tag')
SEO-плагинПлагин добавляет свои метатеги в wp_headОтключить дублирующий модуль или шаблон метатегов
Шаблон архиваОдинаковые title у рубрик, тегов и пагинацииНастроить шаблоны названий и описаний
Фильтры в кодеСлучайный add_filter меняет метатеги повторноНайти и убрать лишний фильтр

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

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

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

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

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

Шаг 2. Не выводите description вручную, если это уже делает плагин

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

// Пример безопасной проверки перед выводом собственного description
if ( ! defined('WPSEO_VERSION') ) {
    $description = get_bloginfo('description');
    if ( $description ) {
        echo '<meta name="description" content="' . esc_attr( $description ) . '" />' . "\n";
    }
}

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

Шаг 3. Настройте шаблоны для архивов и пагинации

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

Если вы пишете шаблон сами, ориентируйтесь на is_paged() и single_cat_title() или аналогичные функции для нужного типа архива.

add_filter('document_title_parts', function ($parts) {
    if ( is_category() ) {
        $parts['title'] = single_cat_title('', false);
        if ( is_paged() ) {
            $parts['title'] .= ' — страница ' . get_query_var('paged');
        }
    }

    return $parts;
});

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

Шаг 4. Уберите лишние фильтры и дублирующие хуки

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

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

Как проверить результат после правки

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

  1. Откройте страницу в режиме view-source:.
  2. Найдите <title> и убедитесь, что он один.
  3. Найдите meta name="description" и проверьте, что тег один.
  4. Проверьте запись, рубрику, страницу автора и пагинацию.
  5. Сравните исходный код до и после правки, если проблема была массовой.

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

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

Оставили ручной title в теме и не заметили поддержку title-tag

Это самая распространённая ошибка. Тема продолжает печатать <title>, а WordPress уже формирует его через ядро. Решение простое: убрать ручной тег из header.php и оставить add_theme_support('title-tag').

Отключили description в SEO-плагине, но забыли про тему

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

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

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

Сделали title слишком одинаковыми ради «чистоты»

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

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

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

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

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

  • В исходном коде страницы есть один title.
  • В исходном коде страницы есть один meta name="description".
  • Тема не выводит ручной <title> поверх title-tag.
  • SEO-плагин не дублирует метатеги в wp_head.
  • Архивы и пагинация имеют отдельные, но логичные шаблоны.
  • После правки проверены не только записи, но и рубрики, поиск и страницы автора.

Если после всех изменений дубли остаются, почти всегда виноват не WordPress как таковой, а конкретный шаблон темы, кастомный плагин или остаток старой SEO-настройки. В таком случае быстрее всего помогает поиск по проекту по строкам title, description, wp_head и проверка активных mu-плагинов.

×

Время действовать!

Суперцены на
WordPress!

-20%
на премиум темы

Не упусти шанс ⋙