WPFAQ

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

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

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

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

Обычно сигнал приходит из одного из трёх мест: отчёт об индексировании в Google Search Console, ручная проверка исходного кода страницы или сравнение нескольких URL, которые ведут на один и тот же контент. Типичный сценарий: у записи есть адрес вида /post-name/, а ещё она открывается через архив рубрики, пагинацию, параметры сортировки или UTM-метки. Если везде выводится одинаковый canonical на себя, это нормально. Если же canonical указывает на другой URL, а иногда ещё и дублируется, поисковик начинает путаться.

Что именно искать в исходнике

Откройте страницу и посмотрите HTML в блоке <head>. Ищите:

  • несколько тегов <link rel="canonical">;
  • одинаковые meta name="description" на разных URL;
  • каноникал на главную, когда открыт пост;
  • каноникал от SEO-плагина и второй каноникал от темы;
  • описание, которое выводится и в теме, и в плагине одновременно.

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

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

Начните с простого: временно отключите SEO-плагин и проверьте исходник страницы. Если дубли исчезли, источник найден. Если нет — смотрите тему и кастомные сниппеты в functions.php или в mu-плагинах. В WordPress часто забывают, что мета-теги могут добавляться не только через плагины, но и через хук wp_head.

Полезно проверить, не выводит ли тема собственный canonical. В некоторых шаблонах это сделано напрямую через <link rel="canonical"> в header.php, а SEO-плагин добавляет свой тег поверх. Тогда в исходнике будет два одинаковых или конфликтующих элемента.

<?php
// Быстрая проверка: есть ли в теме собственный canonical.
// Ищите в файлах темы строки rel="canonical" и meta name="description".
// В консоли сервера можно использовать:

grep -Rni "rel=\"canonical\"\|meta name=\"description\"\|wp_head" wp-content/themes/your-theme

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

Пошаговое решение

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

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

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

<?php
// Пример: если тема добавляет свой canonical через wp_head.
// Имя функции здесь условное, в реальном проекте подставьте фактическое.
remove_action('wp_head', 'theme_custom_canonical', 10);
remove_action('wp_head', 'theme_custom_meta_description', 10);

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

2. Проверьте архивы, пагинацию и фильтры

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

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

3. Уберите дубли description из шаблонов

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

<?php
// Пример: выводить description только если SEO-плагин не добавил его сам.
// Используйте это только если понимаете структуру head в вашем проекте.

if (is_singular() && !has_action('wp_head', 'seo_plugin_meta_description')) {
    $desc = get_the_excerpt();
    if ($desc) {
        echo '<meta name="description" content="' . esc_attr(wp_strip_all_tags($desc)) . '">';
    }
}

В реальном проекте не стоит держать такой код без необходимости. Лучше один раз настроить единый источник мета-данных и не дублировать логику в теме.

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

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

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

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

  • в <head> только один canonical;
  • meta description не повторяется;
  • canonical указывает на тот URL, который вы считаете основным;
  • страницы с параметрами не создают отдельные канонические адреса без необходимости;
  • в Search Console после переобхода исчезают сообщения о дублирующихся страницах, если причина была именно в разметке.

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

curl -s https://example.com/post-name/ | grep -iE 'canonical|meta name="description"'

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

Оставили canonical и в теме, и в плагине

Это самая частая причина. Исправление простое: отключите один источник. Если не уверены, начните с темы, потому что SEO-плагин обычно проще контролировать из админки.

Перепутали canonical для записи и архива

Иногда разработчик копирует шаблон и забывает, что для рубрики и записи логика должна быть разной. В результате архив указывает на запись или наоборот. Проверьте шаблоны single.php, archive.php, category.php и связанные хуки.

Использовали одинаковый description для всех страниц

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

Сделали правку в родительской теме

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

Безопасность и производительность

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

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

Главный принцип здесь простой: один URL — один канонический адрес — один источник мета-данных. Если это правило соблюдено, поисковику и вам будет заметно проще разбираться с индексацией и сниппетами.

×

AI-плагин

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

SEO и мета-теги

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

Изображения

Комментарии

Подробнее