Если в поиске у сайта начинают повторяться одинаковые title и meta description, проблема обычно не в «плохом SEO», а в конкретной настройке: шаблон темы, SEO-плагин, архивы, пагинация, дубли записей или неправильная генерация мета-тегов для таксономий. В WordPress это чинится не догадками, а проверкой источника дубля и точечной правкой.
Что именно считать дублем и где его искать
Дубли бывают двух типов. Первый — когда у разных URL совпадает <title> или meta name="description". Второй — когда один и тот же URL отдает разные мета-теги в зависимости от шаблона, языка, пагинации или параметров. Для диагностики важно смотреть не только исходный код страницы, но и то, как мета-теги формируются в теме и плагинах.
Типовые источники проблемы
- шаблон темы выводит одинаковый title для записей, рубрик и страниц;
- SEO-плагин не настроен для архивов, тегов и пагинации;
- дубли записей доступны по нескольким URL;
- страницы с фильтрами, сортировкой или параметрами попадают в индекс;
- у кастомных типов записей не задан уникальный шаблон мета-тегов;
- в теме одновременно работают собственный вывод title и SEO-плагин.
Диагностика: как быстро понять, откуда берутся повторы
Начинать лучше с нескольких URL, где дубли видны явно: главная, одна запись, рубрика, тег, архив автора, пагинация. Сравните исходный код и проверьте, кто именно формирует title и description. Если на странице есть SEO-плагин, но в коде виден другой шаблон title, значит, тема или кастомный код вмешиваются раньше или позже нужного фильтра.
Полезно проверить и индексацию в поисковой консоли: если один и тот же title массово встречается на разных страницах, это обычно заметно в отчетах по страницам с дублирующимися метаданными. Но исправлять нужно не отчет, а генератор мета-тегов.
Мини-чек-лист перед правкой
- Откройте проблемный URL в браузере и посмотрите исходный код.
- Найдите, есть ли на сайте SEO-плагин и не дублирует ли он функции темы.
- Проверьте архивы рубрик, тегов, авторов и пагинацию.
- Сравните title у похожих страниц: записи, страницы, CPT, таксономии.
- Убедитесь, что один и тот же контент не доступен по нескольким адресам.
Как исправить дубли: рабочие варианты
Ниже — три подхода. Выбор зависит от того, где именно рождается дубль. Если сайт уже использует SEO-плагин, чаще всего достаточно настроить шаблоны и убрать конфликтующий код темы. Если плагина нет, проще задать логику через фильтры WordPress.
| Подход | Когда подходит | Компромисс |
|---|---|---|
| Настройки SEO-плагина | Нужно быстро убрать дубли в архивах и шаблонах | Меньше гибкости, зависит от плагина |
| Правка темы | Дубли генерирует тема или дочерняя тема | Нужно аккуратно обновлять код |
| Код через фильтры | Нужна точечная логика для CPT, таксономий, архивов | Требует тестирования на всех типах страниц |
Вариант 1: убрать конфликтующий вывод title из темы
Если тема до сих пор вручную печатает title в header.php, а SEO-плагин уже делает это сам, получите дубли или некорректный вывод. В современных темах title должен управляться через add_theme_support( 'title-tag' ).
<?php
// functions.php дочерней темы
add_action( 'after_setup_theme', function () {
add_theme_support( 'title-tag' );
} );
После этого в шаблоне не должно быть жестко прописанного <title>. Если он есть, удалите его из header.php и оставьте генерацию WordPress или SEO-плагину.
Вариант 2: задать уникальные meta description для архивов
Когда дубли появляются на рубриках и тегах, часто помогает фильтр SEO-плагина. Ниже пример для Yoast SEO: он позволяет подменять description для конкретных архивов. Логику можно адаптировать под свои условия — например, для пустых рубрик или служебных таксономий.
<?php
add_filter( 'wpseo_metadesc', function( $description ) {
if ( is_category() ) {
$term = get_queried_object();
if ( $term && ! empty( $term->name ) ) {
return sprintf( 'Статьи рубрики %s: новости, инструкции и практические материалы.', $term->name );
}
}
return $description;
} );
Если у вас другой SEO-плагин, принцип тот же: ищите его фильтр для мета-описания и подменяйте текст только там, где шаблон действительно повторяется. Не стоит задавать один и тот же description для всех архивов — это просто перенесет дубль в другое место.
Вариант 3: убрать дубли у записей с похожими заголовками
Иногда проблема не в шаблоне, а в контенте: несколько записей получают одинаковые title, потому что в них повторяется название рубрики, услуги или города. В таком случае title должен включать различающий признак. Например, не просто «Услуги», а «Услуги по настройке кеша» или «Услуги по аудиту индексации».
Если нужен контроль на уровне кода, можно задать шаблон title для определенного типа записей:
<?php
add_filter( 'document_title_parts', function( $parts ) {
if ( is_singular( 'post' ) ) {
$post_id = get_queried_object_id();
$category = get_the_category( $post_id );
if ( ! empty( $category ) ) {
$parts['title'] = get_the_title( $post_id ) . ' — ' . $category[0]->name;
}
}
return $parts;
} );
Этот вариант уместен только если вы понимаете структуру сайта. Для массового применения лучше сначала исправить шаблоны в SEO-плагине, а код оставить для исключений.
Проверка результата после внедрения
После правок не ограничивайтесь визуальной проверкой. Откройте несколько страниц и убедитесь, что в исходном коде title и description отличаются там, где должны отличаться. Затем проверьте, что на сайте не осталось второго источника мета-тегов.
Что именно проверить
- в исходном коде страницы только один
<title>; - description не повторяется на всех архивах подряд;
- у страниц пагинации нет копии description от первой страницы, если это не задумано;
- у записей и архивов разные, осмысленные title;
- после переобхода поисковик видит обновленные мета-теги.
Для быстрой ручной проверки удобно открыть страницу и посмотреть исходник через «Просмотр кода страницы» или инструменты разработчика. Если используете Search Console, сравните несколько URL до и после переобхода: изменения не всегда видны сразу, но повторяющийся шаблон должен исчезнуть из новых обходов.
Частые ошибки и как их исправить
SEO-плагин и тема одновременно управляют title
Это самая частая причина дублей. Решение простое: оставьте один источник. Если плагин уже генерирует title, удалите ручной вывод из темы и проверьте, не подключен ли старый код в дочерней теме или через сниппет-плагин.
Одинаковый description для всех архивов
Шаблон вида «Читайте статьи на сайте» для рубрик, тегов и автора выглядит одинаково и не помогает поиску. Лучше использовать название термина, тип контента или назначение страницы.
Игнорирование пагинации
Страницы /page/2/, /page/3/ часто наследуют title и description первой страницы без изменений. Если это мешает, задайте отдельную логику для пагинации или не выводите description вовсе там, где он не нужен.
Правка только видимого HTML без проверки генератора
Иногда разработчик меняет шаблон в одном файле, а дубли продолжают появляться из-за фильтра в плагине или функции в functions.php. Нужно найти именно источник, а не маскировать симптом.
Безопасность и производительность: что не стоит делать
Не ставьте несколько SEO-плагинов одновременно «на пробу». Они часто конфликтуют именно в части title, description и canonical. Перед изменениями сделайте резервную копию файлов темы и базы данных, а правки в коде вносите через дочернюю тему или отдельный сниппет, а не прямо в родительскую тему.
Если сайт большой, не генерируйте description тяжелой логикой на каждом запросе. Для архивов лучше использовать предсказуемые шаблоны без лишних обращений к базе. Это и быстрее, и проще отлаживается.
Когда дубли связаны с техническими страницами, иногда полезно посмотреть в сторону инструментов для чистки SEO-структуры. Например, у Clearfy Pro есть функции для удаления дублей и технической оптимизации, но применять их стоит только после проверки, какие именно URL и мета-теги реально конфликтуют: https://wpshop.ru/plugins/clearfy.
Когда код лучше не трогать вручную
Если у вас сложная структура сайта с несколькими типами записей, мультиязычностью и отдельными шаблонами для архивов, сначала проверьте настройки SEO-плагина и шаблоны темы. Ручной код полезен для точечных исключений, но при массовой правке он легко создает новые дубли вместо старых. В таких случаях безопаснее фиксировать логику в одном месте и документировать, какие URL должны получать уникальные мета-теги, а какие — шаблонные.