Дубли title и description в WordPress обычно появляются не из-за одной ошибки, а из-за комбинации шаблона, SEO-плагина, архивов, пагинации и таксономий. На небольшом сайте это долго не заметно, но в индексе быстро всплывают страницы с одинаковыми метаданными: главная, рубрики, теги, архивы автора, страницы пагинации и иногда служебные URL.
Если задача не в «косметике», а в нормальной индексации, сначала нужно понять, где именно рождаются дубли, а уже потом решать: закрывать страницу от индексации, задавать уникальный шаблон или отключать генерацию мета-тегов на уровне темы/плагина.
Как понять, что проблема именно в дублях title и description
Проверка начинается не с кода, а с поиска повторов. Удобнее всего смотреть сразу три источника: исходный HTML, отчёт краулера и поисковую выдачу по сайту. Если у нескольких URL совпадает <title> или <meta name="description">, это уже рабочий сигнал.
Что обычно дублируется
- страницы рубрик и тегов с шаблонным описанием;
- архивы автора, если у всех один и тот же текст;
- страницы пагинации вида
/page/2/,/page/3/; - главная и статическая страница блога, если тема выводит один и тот же шаблон;
- кастомные типы записей без отдельной SEO-настройки.
Если у вас установлен SEO-плагин, проверьте, не генерирует ли он одинаковые шаблоны для нескольких типов страниц. Если плагина нет, дубли часто приходят прямо из темы: разработчик вставил один и тот же title и description в header.php или использует слишком общий шаблон.
Быстрая диагностика через браузер и консоль
Откройте несколько проблемных URL и сравните мета-теги в исходнике страницы. Для быстрой проверки можно использовать curl:
curl -s https://example.com/ | grep -iE '<title>|meta name="description"'Если нужно сравнить несколько страниц, удобнее выгрузить HTML и посмотреть, совпадает ли содержимое. Важно не путать одинаковый текст на странице и одинаковые мета-теги: для SEO критичны именно теги в <head>.
Откуда берутся дубли в WordPress
В WordPress одна и та же проблема может иметь разные причины. Это важно, потому что решение для рубрик не подходит для пагинации, а для темы — не всегда подходит для SEO-плагина.
| Источник дубля | Как выглядит | Что делать |
|---|---|---|
| Тема | Одинаковый title на всех страницах | Перенести генерацию в wp_head или убрать ручную вставку |
| SEO-плагин | Шаблон мета-тегов одинаков для рубрик и тегов | Настроить шаблоны для таксономий |
| Архивы | Пагинация повторяет основной title | Добавить номер страницы или закрыть пагинацию от индексации |
| Таксономии | Пустые или однотипные description | Заполнить уникальные описания или отключить вывод |
Пошаговое решение: сначала шаблон, потом индексация
Лучше идти от источника к следствию. Если страница не должна индексироваться, не пытайтесь «лечить» её уникальным description — это не решит задачу. Если страница должна индексироваться, но у неё нет уникального title, исправляйте шаблон.
Шаг 1. Уберите ручную генерацию title из темы
Если в теме есть жёстко прописанный <title> в header.php, это частая причина дублей. В современных темах нужно использовать поддержку title-tag, а WordPress сам сформирует заголовок через ядро и SEO-плагин.
// functions.php темы или дочерней темы
add_action('after_setup_theme', function () {
add_theme_support('title-tag');
});После этого проверьте, что в header.php нет старого ручного блока <title>...</title>. Если он остался, WordPress может выводить два заголовка или конфликтовать с плагином.
Шаг 2. Настройте уникальные шаблоны для архивов
Для рубрик, тегов и архивов автора лучше использовать шаблоны, которые подставляют название термина и, при необходимости, номер страницы. Если SEO-плагин это умеет, настройте через него. Если нет — можно добавить фильтр на стороне темы или небольшого плагина.
add_filter('document_title_parts', function ($parts) {
if (is_category() || is_tag() || is_tax()) {
$term = get_queried_object();
if ($term && !is_wp_error($term) && !empty($term->name)) {
$parts['title'] = $term->name . ' — ' . get_bloginfo('name');
}
}
if (is_paged()) {
$parts['title'] .= ' — страница ' . max(1, get_query_var('paged'));
}
return $parts;
});Этот вариант не заменяет SEO-плагин, но помогает, если тема или кастомная сборка не умеют нормально формировать title для архивов.
Шаг 3. Не индексируйте страницы, которые не несут самостоятельной ценности
Пагинация рубрик, внутренние поисковые страницы, служебные архивы и некоторые теги часто не нужны в индексе. Если они не дают уникального контента, проще закрыть их от индексации, чем пытаться придумать уникальные мета-теги для пустых страниц.
В SEO-плагине это обычно делается через настройки таксономий и архивов. Если работаете кодом, можно добавить noindex на конкретные типы страниц через wp_head:
add_action('wp_head', function () {
if (is_paged() || is_search()) {
echo '<meta name="robots" content="noindex,follow">' . "\n";
}
});Этот подход нужно использовать аккуратно: не ставьте noindex на всё подряд. Сначала проверьте, что страница действительно не должна ранжироваться.
Как исправить дубли через SEO-плагин и когда код лучше
Если сайт уже живёт на SEO-плагине, не стоит дублировать его логику в теме. Это типичная ошибка: плагин выводит один набор мета-тегов, тема — второй, и в итоге в HTML появляется конфликт. В такой ситуации сначала отключают ручную генерацию в теме, а потом настраивают шаблоны в одном месте.
| Подход | Плюсы | Минусы |
|---|---|---|
| SEO-плагин | Удобно менять шаблоны без кода | Зависимость от настроек и лишний функционал |
| Код в теме | Точный контроль над логикой | Нужно сопровождать при обновлениях |
| Отдельный мини-плагин | Не зависит от темы | Нужно один раз настроить структуру |
Если задача точечная — например, убрать дубли только на архиве автора или на пагинации — мини-плагин часто практичнее, чем правка темы. Тогда логика не пропадёт после смены шаблона.
Проверка результата после внедрения
После правок не ограничивайтесь просмотром страницы в браузере. Нужно убедиться, что в HTML реально изменились теги и что поисковый робот увидит именно их.
- откройте исходный код страницы и проверьте один
<title>и одинdescription; - пройдитесь по нескольким типам страниц: запись, рубрика, тег, пагинация, главная;
- проверьте, что у страниц, которые должны индексироваться, title стал уникальным;
- убедитесь, что на закрытых страницах стоит
noindexили они исключены из индексации другим способом; - после переобхода посмотрите отчёт в Search Console или аналогичном инструменте.
Если у вас есть доступ к краулеру, сравните старую и новую версию сайта. Важный критерий — не просто отсутствие дублей, а отсутствие одинаковых шаблонов там, где они не нужны.
Частые ошибки и как их исправить
В теме и плагине одновременно генерируется title
Это самая неприятная ситуация: в коде два источника правды. Решение одно — оставить только один. Обычно правильнее оставить SEO-плагин или ядро WordPress с title-tag, а ручной вывод убрать.
description одинаковый на всех страницах рубрик
Так бывает, если в шаблоне подставлен общий текст вроде «Читайте последние новости сайта». Для рубрик лучше либо заполнить описание термина вручную, либо не выводить description, если нормального текста нет.
Пагинация копирует title первой страницы
Если /page/2/ и /page/3/ выглядят одинаково, поисковик может считать их почти дублями. Добавляйте номер страницы в title или закрывайте пагинацию от индексации, если она не нужна в выдаче.
После правок остался старый кэш
Очень частая причина ложной проверки. Очистите кэш плагина, серверный кэш и CDN, если он есть. Иначе вы будете смотреть на старый HTML и думать, что изменения не сработали.
Практические советы по безопасности и производительности
Если вы правите мета-теги кодом, не вносите изменения прямо в родительскую тему. Используйте дочернюю тему или отдельный мини-плагин. Так проще откатить правку и не потерять её после обновления.
Не лепите тяжёлую логику в wp_head: там не должно быть запросов в базу на каждый рендер без необходимости. Для title и description достаточно стандартных функций WordPress и условий is_category(), is_tag(), is_paged(), is_search().
Если на сайте много дублей из-за технических архивов, иногда выгоднее не «улучшать» каждую страницу, а сократить количество индексируемых URL. Это обычно чище и безопаснее для сайта, чем пытаться поддерживать сотни однотипных мета-шаблонов.
Если нужен более системный подход к чистке дублей и SEO-настройкам, можно посмотреть на инструменты вроде Clearfy Pro, но только как на способ упростить рутину, а не заменить диагностику. Сначала нужно понять, где именно рождается дубль, и только потом автоматизировать исправление.