Дублирующиеся title и meta description в WordPress обычно появляются не из-за одной ошибки, а из-за набора мелких проблем: архивы без шаблонов, одинаковые метаданные у записей, пагинация, страницы тегов и категорий, а иногда — конфликт SEO-плагина с темой или кастомным кодом. Если не разбирать источник, можно долго править отдельные страницы и не получить эффекта.
Ниже — рабочий сценарий: как быстро найти дубли, понять, откуда они берутся, и исправить их так, чтобы не сломать индексацию и не создать новые проблемы.
Когда дубли title и description действительно вредят
Сам по себе повторяющийся description не всегда критичен, но в связке с одинаковым title это уже сигнал для поисковых систем: страницы слишком похожи, а значит, одна из них может быть выбрана как менее релевантная. На практике чаще всего страдают:
- архивы категорий и тегов;
- страницы пагинации;
- записи с одинаковым шаблоном заголовка;
- страницы, где SEO-плагин не подставил шаблон и взял текст из первого абзаца;
- дубли из-за нескольких источников метаданных одновременно.
Типичные симптомы
Проблема обычно заметна не в админке, а в выдаче и крауле. Если в отчёте сканера видно десятки страниц с одинаковым title, а в HTML-коде у разных URL совпадает и description, это уже не случайность. Ещё один признак — в поиске показываются не те страницы, которые вы ожидали, или сниппеты выглядят слишком однообразно.
Диагностика: где искать источник дублей
Сначала нужно понять, кто именно формирует метаданные: SEO-плагин, тема, кастомный код или ручные поля в записи. Не стоит сразу править шаблоны — сначала проверьте фактический HTML.
1. Посмотрите исходный код проблемной страницы
Откройте страницу и найдите в исходнике строки <title> и <meta name="description". Если на разных URL они одинаковые, сравните не только контент, но и тип страницы: запись, рубрика, тег, архив автора, пагинация.
2. Сравните шаблоны SEO-плагина
Если используется Yoast SEO, Rank Math или другой SEO-плагин, проверьте шаблоны для записей, рубрик, тегов и архивов. Частая ошибка — один и тот же шаблон для всех типов страниц, например только %%title%% без контекста рубрики или сайта.
3. Проверьте, не дублирует ли тема мета-теги
Некоторые темы по-прежнему выводят <title> или meta description вручную, хотя SEO-плагин уже делает это сам. В результате в коде появляется два title или два description. Это надо исправлять в теме, а не в контенте.
4. Найдите страницы с одинаковыми метаданными через базу
Если у вас много контента, удобнее сначала найти записи с одинаковыми SEO-значениями в базе. Ниже пример запроса для случаев, когда SEO-данные хранятся в postmeta как это делает часть плагинов. Названия мета-ключей зависят от конкретного решения, поэтому запрос нужно адаптировать под ваш стек.
SELECT meta_value, COUNT(*) AS cnt, GROUP_CONCAT(post_id ORDER BY post_id) AS posts
FROM wp_postmeta
WHERE meta_key IN ('_yoast_wpseo_title', '_yoast_wpseo_metadesc')
AND meta_value <> ''
GROUP BY meta_value
HAVING cnt > 1
ORDER BY cnt DESC;Этот запрос не решает проблему сам по себе, но быстро показывает, где значения повторяются. Дальше уже можно открыть конкретные записи и понять, это нормальный шаблон или реальный дубль.
Как исправить дубли: рабочая схема
Лучше идти по порядку: сначала убрать источник повторов на уровне шаблонов, потом — точечно поправить отдельные страницы. Если начать с ручной правки десятков записей, дубли вернутся при следующем обновлении шаблона или импорте контента.
Шаг 1. Разведите шаблоны для разных типов страниц
Для записей, рубрик и тегов должны быть разные логики формирования title и description. Например, для рубрик уместно добавлять название сайта, а для записей — название статьи и, при необходимости, имя бренда. Главное — не копировать один и тот же шаблон везде.
Если вы используете SEO-плагин, настройте шаблоны в его интерфейсе. Если метаданные генерируются кодом, логика должна учитывать тип страницы:
add_filter('document_title_parts', function ($parts) {
if (is_category()) {
$parts['title'] = single_cat_title('', false) . ' — ' . get_bloginfo('name');
}
if (is_tag()) {
$parts['title'] = single_tag_title('', false) . ' — ' . get_bloginfo('name');
}
return $parts;
});Этот пример не заменяет SEO-плагин, а показывает принцип: разные типы архивов должны получать разный заголовок. Если у вас уже есть плагин, не дублируйте его работу кодом.
Шаг 2. Уберите ручной вывод title и description из темы
Если в header.php или подключаемом шаблоне есть прямой вывод <title> и meta description, это нужно убрать или отключить. В современной WordPress-теме заголовок должен формироваться через поддержку title-tag, а описание — через SEO-плагин или отдельную логику, но не через два параллельных механизма.
Проверьте, есть ли в теме:
<title><?php wp_title(); ?>— устаревший подход;- ручной
meta name="description"без условий; - дублирующийся вызов функций SEO-плагина.
Если тема старая, иногда достаточно оставить поддержку title-tag и удалить ручной вывод:
add_action('after_setup_theme', function () {
add_theme_support('title-tag');
});Шаг 3. Настройте уникальные description для архивов
Для категорий и тегов часто используют один и тот же шаблон, а потом удивляются, почему description совпадает. Лучше задать отдельный шаблон для рубрик и тегов, а если архив пустой или слишком короткий — не пытаться выжимать из него искусственный текст.
Если нужен программный вариант, можно подставлять описание термина из его поля description:
add_filter('wpseo_metadesc', function ($desc) {
if (is_category() || is_tag()) {
$term = get_queried_object();
if ($term && !is_wp_error($term) && !empty($term->description)) {
return wp_strip_all_tags($term->description);
}
}
return $desc;
});Это работает только если SEO-плагин поддерживает соответствующий фильтр. Для Yoast SEO фильтр wpseo_metadesc реалистичен; для других плагинов названия фильтров могут отличаться.
Шаг 4. Исправьте отдельные страницы с одинаковыми метаданными
Если дубли появились из-за импорта или массового копирования контента, править нужно конкретные записи. Здесь важно не просто переписать title, а сделать его осмысленным: с отличием по интенту, а не только по слову в конце.
Хороший ориентир:
- title должен отличать страницу от похожих материалов;
- description должен объяснять, что именно пользователь найдёт на странице;
- не стоит повторять один и тот же шаблон в десятках записей;
- если страница технически не нужна в поиске, лучше закрыть её от индексации, чем плодить псевдоуникальные метаданные.
Сравнение подходов: плагин, код или ручная правка
| Подход | Когда подходит | Плюсы | Минусы |
|---|---|---|---|
| SEO-плагин | Обычный сайт, много шаблонных страниц | Быстро, удобно, меньше риска сломать тему | Нужно следить за шаблонами и конфликтами |
| Код в теме или плагине | Нужна точечная логика для архивов и CPT | Гибкость, контроль над условиями | Легко задублировать работу SEO-плагина |
| Ручная правка записей | Небольшое число проблемных URL | Точно и быстро для единичных случаев | Не решает системную причину |
Проверка результата после внедрения
После правок не ограничивайтесь просмотром одной страницы в браузере. Нужно проверить именно HTML и выборку страниц в краулере.
Что проверить вручную
- у разных URL разные
titleиdescription; - в исходнике нет двух одинаковых
meta name="description"; - страницы архивов не наследуют один и тот же шаблон без условий;
- пагинация не дублирует метаданные первой страницы без необходимости;
- SEO-плагин не конфликтует с темой.
Что проверить через инструменты
Если есть доступ к краулеру, просканируйте сайт и отсортируйте страницы по одинаковым title и description. Для небольшого сайта можно обойтись даже выгрузкой URL из Search Console и ручной проверкой проблемных разделов. Важно смотреть не только на наличие дублей, но и на их тип: это технический дубль, архив, пагинация или реальная копия контента.
Частые ошибки и как их исправить
Один шаблон для всех типов страниц
Это самая частая причина. Решение простое: разделить шаблоны для записей, рубрик, тегов, архивов автора и кастомных типов записей. Для каждого типа нужен свой контекст.
Два источника мета-тегов одновременно
Когда тема и SEO-плагин оба выводят title или description, в коде появляются дубли. Оставьте только один источник. Если используете SEO-плагин, тема не должна генерировать эти теги вручную.
Псевдоуникальные description
Иногда пытаются решить проблему заменой пары слов в шаблоне. Это не помогает, если структура страниц одинаковая. Лучше изменить логику формирования метаданных или закрыть технические архивы от индексации.
Игнорирование пагинации
Страницы /page/2/, /page/3/ и дальше часто наследуют один и тот же title и description. Это не всегда ошибка, но если пагинация активно индексируется, стоит проверить, не создаёт ли она лишний шум.
Практические советы по безопасности и производительности
Если вы правите метаданные кодом, не вносите изменения прямо в родительскую тему. Используйте дочернюю тему или небольшой mu-plugin. Так обновление темы не затрёт правки.
Ещё два момента, которые часто упускают:
- не ставьте несколько SEO-плагинов одновременно;
- после изменения шаблонов очистите кеш страницы и, если есть, серверный кеш;
- проверьте, не кэшируется ли старый
headна уровне CDN; - не закрывайте от индексации всё подряд только ради устранения дублей — сначала разберитесь, какие URL реально нужны.
Если нужен более широкий аудит дублей, чистка архивов и технических страниц, можно посмотреть в сторону инструментов вроде Clearfy Pro, но только как вспомогательный слой. Он не заменяет понимание того, какие URL должны индексироваться, а какие нет.
Короткий чек-лист перед публикацией правок
- Проверил, кто генерирует
titleиdescription. - Убрал дублирующий вывод из темы.
- Развел шаблоны для записей, рубрик и тегов.
- Исправил конкретные записи с одинаковыми метаданными.
- Проверил исходный код нескольких URL.
- Очистил кеш и перепроверил страницу после обновления.
- Сканером убедился, что количество дублей снизилось, а не просто изменилось.
Если после правок дубли остаются, почти всегда проблема не в тексте мета-тегов, а в архитектуре URL: одинаковые архивы, лишние таксономии, страницы поиска, пагинация или копии контента. В таком случае сначала чинят структуру, а уже потом — шаблоны.