Как отладить дубли метатегов в WordPress и убрать duplicate title и description

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

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

Как понять, что дубли идут именно из WordPress

Сначала не трогайте код. Снимите факты: откройте проблемную страницу и посмотрите исходный HTML. Если в <head> есть два тега <title> или два одинаковых <meta name="description">, это уже не вопрос индексации, а вопрос генерации шаблона.

Параллельно проверьте несколько типовых URL:

  • главная страница;
  • запись;
  • страница рубрики;
  • страница пагинации /page/2/;
  • страница с параметрами, если они индексируются.

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

Что обычно вызывает проблему

На практике источников несколько:

  • тема вручную выводит <title> и meta description, а SEO-плагин делает то же самое;
  • в шаблоне подключён старый код из header.php или functions.php;
  • для архивов не настроены отдельные шаблоны title/description;
  • страницы пагинации и фильтров получают тот же description, что и первая страница;
  • кеш отдаёт старую версию head после правок.

Диагностика: где искать дубли в теме и плагинах

Если у вас есть доступ к файлам, начните с поиска по проекту. Ищите не только слово description, но и прямой вывод <title>, а также функции SEO-плагинов, если они подключались вручную.

grep -Rni --exclude-dir=node_modules --exclude-dir=vendor "<title>\|meta name=\"description\"\|wp_head\|document_title" wp-content/themes wp-content/plugins

Что важно проверить в результате:

  • в header.php нет ли ручного <title>;
  • не подключён ли старый SEO-код из дочерней темы;
  • не выводит ли тема description через wp_head;
  • не дублирует ли SEO-плагин уже существующую разметку.

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

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

Самый безопасный путь — оставить один источник правды для метатегов. Обычно это SEO-плагин или код в теме, но не оба варианта сразу.

Шаг 1. Уберите ручной вывод title из темы

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

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

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

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

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

Если нужен собственный шаблон description без плагина, используйте фильтр wp_head аккуратно и только один раз:

add_action( 'wp_head', function () {
    if ( is_singular() ) {
        $post_id = get_queried_object_id();
        $excerpt = get_the_excerpt( $post_id );

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

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

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

Для рубрик и архивов одинаковый description на всех страницах пагинации — частая причина дублей. Страница /category/news/ и /category/news/page/2/ не должны иметь один и тот же метатег, если обе индексируются.

Если вы пишете логику сами, разделяйте первую страницу и пагинацию:

add_action( 'wp_head', function () {
    if ( is_category() && ! is_paged() ) {
        $term = get_queried_object();
        if ( ! empty( $term->description ) ) {
            echo '<meta name="description" content="' . esc_attr( wp_strip_all_tags( $term->description ) ) . '">' . "\n";
        }
    }
}, 5 );

Для страниц пагинации обычно лучше не дублировать description вообще, а дать поисковику понять, что это продолжение списка, а не отдельная посадочная страница.

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

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

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

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

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

  1. Откройте исходный код страницы и убедитесь, что <title> один.
  2. Проверьте, что meta description тоже один и соответствует шаблону.
  3. Прогоните URL через инструменты проверки в Search Console или через просмотр HTML-ответа, если у вас есть доступ к логам и кэшу.

Если сайт использует кеширование, очистите не только страницу, но и серверный кеш, объектный кеш и CDN. Иначе вы будете смотреть на старую версию head и решите, что правка не сработала.

Полезно дополнительно проверить ответ сервера командой:

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

Если в ответе виден только один title и один description, значит проблема уже не в генерации HTML. Тогда смотрите каноникал, robots и параметры индексации.

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

Оставили старый код в дочерней теме

Даже если вы обновили родительскую тему, дочерняя может продолжать выводить старый meta description. Ищите код именно в активной теме, а не только в основной.

Отключили плагин, но не убрали его фильтры

Иногда плагин деактивирован, а его код остался в functions.php или в mu-plugins. В результате дубли продолжают появляться, хотя интерфейс плагина уже не виден.

Проверяли страницу без очистки кеша

Это одна из самых частых причин ложных выводов. После изменения wp_head очищайте кеш на всех уровнях, иначе старый head будет жить ещё какое-то время.

Сделали одинаковый description для всех архивов

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

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

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

Если пишете собственную логику, держите её минимальной:

  • не делайте тяжёлые запросы к базе в wp_head;
  • не собирайте description через сложные циклы по постам;
  • не выводите метатеги из AJAX или JS, если речь о SEO;
  • не смешивайте генерацию title и description в разных слоях проекта без документации.

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

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

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

Оптимизация AJAX-запросов в WordPress для мобильных устройств
12.04.2026
Как использовать WooCommerce REST API для массового обновления товаров
16.05.2026
Как сделать прогноз погоды на WordPress для мобильного сайта
01.03.2026
Оптимизация кеширования в WordPress для мобильных устройств
11.12.2025
Как исправить ошибку «Не работает корзина WooCommerce» на мобильных устройствах
07.07.2026