На JournalX дубли заголовков чаще всего всплывают не на главной, а на архивных страницах: рубрики, метки, авторы, дата, страницы таксономий и иногда кастомные архивы. Проблема выглядит просто — на странице есть два H1 или title в браузере не совпадает с тем, что ожидает SEO-плагин. На практике это почти всегда следствие того, что тема и плагин оба пытаются управлять заголовками.
Если не разобраться с источником, можно получить разъезд в индексации: поисковик видит один заголовок в шаблоне, другой в метаданных, а пользователь — третий в интерфейсе. Для темы с бесконечной прокруткой это особенно заметно, потому что архивы часто используются как входные точки из поиска и соцсетей.
Где именно появляются дубли и как это проверить
Сначала нужно понять, что именно дублируется: визуальный H1, HTML title или оба элемента сразу. В JournalX это обычно связано с шаблоном архива и настройками SEO-плагина. Проверка занимает пару минут и сразу показывает, где искать правку.
Что смотреть в исходном коде
Откройте проблемную страницу архива и проверьте:
- сколько раз в HTML встречается тег
<h1>; - какой текст у первого H1 и совпадает ли он с названием архива;
- какой title отдает страница в
<head>; - не выводит ли SEO-плагин свой заголовок поверх темы;
- не добавляет ли блок в контенте еще один H1 вручную.
Если у вас есть доступ к серверу, полезно быстро проверить страницу через curl:
curl -L https://example.com/category/news/ | grep -iE '<title>|<h1|<meta name="description"'Так видно, не подменяется ли title на уровне шаблона или плагина. Если в выводе два H1, значит проблема уже в разметке темы или в контентном блоке. Если H1 один, но title не тот, тогда конфликтует SEO-логика.
Почему JournalX начинает дублировать заголовки
У темы и плагинов обычно разные зоны ответственности. JournalX может выводить заголовок архива в шаблоне, а SEO-плагин — свой title через фильтр. Если в настройках темы включен отдельный заголовок страницы, а в редакторе архива добавлен блок с H1, дубли появляются сразу.
Чаще всего причина одна из этих:
- в шаблоне архива уже есть
<h1>, а в контенте добавлен еще один; - SEO-плагин генерирует title, но тема не отключает свой вывод;
- используется кастомный шаблон архива, где заголовок вставлен дважды;
- в дочерней теме правили файл, но оставили старый вызов функции заголовка;
- на странице архива подключен блок или паттерн с повторным H1.
Пошаговое решение в JournalX
Надежный путь — сначала убрать дублирование на уровне шаблона, потом проверить SEO-метаданные. Не стоит сразу править все подряд: если отключить вывод title в теме без понимания, кто его формирует, можно потерять заголовок на части архивов.
Шаг 1. Найдите файл, который выводит H1
В JournalX это обычно шаблон архива или части шаблона, связанные с заголовком страницы. Ищите вызовы вроде the_archive_title(), single_term_title() или прямой вывод <h1>. Если используется дочерняя тема, правки делайте только там.
<?php if ( have_posts() ) : ?>
<header class="archive-header">
<?php the_archive_title( '<h1 class="archive-title">', '</h1>' ); ?>
<?php the_archive_description( '<div class="archive-description">', '</div>' ); ?>
</header>
<?php endif; ?>Если в шаблоне уже есть такой блок, а в редакторе страницы архива или в паттерне добавлен еще один H1, второй нужно убрать. Для архивов H1 должен быть один и только один.
Шаг 2. Уберите второй H1 из контента или шаблона
Если заголовок нужен только как визуальный элемент, оставьте его в шаблоне темы. Если же архив собирается через блоки, тогда H1 должен быть только в контенте, а из шаблона его нужно убрать. Смешивать оба подхода не стоит.
Пример аккуратного вывода заголовка через фильтр, если нужно изменить текст без правки шаблона:
<?php
add_filter( 'get_the_archive_title', function( $title ) {
if ( is_category() ) {
$title = single_cat_title( '', false );
}
return $title;
} );Этот вариант полезен, если вам нужно убрать стандартные слова вроде «Рубрика:» и оставить чистое название архива. Но он не решает проблему второго H1, если тот уже есть в шаблоне.
Шаг 3. Проверьте, кто формирует title
Если title в браузере не совпадает с H1, проверьте SEO-плагин и настройки темы. В JournalX важно, чтобы только один источник управлял title. Если SEO-плагин активен, тема не должна дублировать его логику через wp_title или устаревшие шаблонные функции.
Для диагностики удобно временно отключить SEO-плагин на копии сайта и посмотреть, меняется ли title. Если title остается прежним, значит его формирует тема. Если исчезает или меняется на дефолтный, источник был в плагине.
Сравнение подходов: плагин, код или настройка темы
| Подход | Когда подходит | Минус |
|---|---|---|
| Настройка SEO-плагина | Если title и description генерирует плагин | Не убирает дубли в шаблоне |
| Правка дочерней темы | Если дубли идут из шаблона JournalX | Нужна аккуратная поддержка при обновлениях |
| Фильтр в functions.php | Если нужно точечно изменить заголовок | Легко сломать логику на части архивов |
Как проверить, что исправление сработало
После правки не ограничивайтесь визуальной проверкой в браузере. Нужно убедиться, что в HTML остался один H1 и что title не конфликтует с ним.
- Откройте страницу архива в режиме просмотра исходного кода.
- Найдите
<h1>и убедитесь, что он один. - Проверьте, что title в
<head>соответствует типу архива. - Прогоните страницу через Search Console или любой валидатор HTML.
- Сравните мобильную и десктопную версии, если тема использует разные шаблоны.
Если у вас есть доступ к WP-CLI, можно быстро проверить, не осталось ли старых правок в дочерней теме:
grep -R "the_archive_title\|wp_title\|<h1" wp-content/themes/journalx-childЭто не заменяет ручную проверку, но помогает найти забытые вставки заголовков в шаблонах.
Частые ошибки и как их исправить
Оставили H1 в шаблоне и добавили его в блоках
Это самая частая причина. Исправление простое: H1 должен быть только в одном месте. Если архив собирается блоками, удалите заголовок из шаблона. Если заголовок должен идти из темы, уберите его из контента.
Правят parent theme вместо дочерней
После обновления JournalX изменения исчезнут, и дубли вернутся. Все правки шаблонов и функций делайте в дочерней теме.
Путают title и H1
Иногда разработчик видит «дубли title» и начинает править HTML, хотя проблема в метатегах. Сначала определите, что именно дублируется: заголовок страницы или HTML-элемент.
Отключают SEO-плагин на боевом сайте
Так можно случайно потерять метаданные на всем сайте. Для диагностики используйте staging-копию или хотя бы точечную проверку на одном архиве.
Что делать, если архивы в JournalX генерируются динамически
Если у вас бесконечная прокрутка и архивы подгружаются AJAX-ом, проблема может быть не только в шаблоне, но и в повторной вставке заголовка в подгружаемом фрагменте. В этом случае нужно проверить шаблон элемента, который подставляется в список, и убедиться, что там нет отдельного H1 или повторного блока с названием архива.
Для таких сценариев полезно сравнить HTML первой страницы и подгружаемой части. Если в AJAX-ответе есть заголовок страницы, его нужно убрать, оставив только карточки записей. Заголовок архива должен рендериться один раз в основном шаблоне.
Практика безопасности и поддержки
Не вносите правки прямо в файлы темы без бэкапа. Для JournalX это особенно важно, если сайт уже индексируется и получает трафик из архивов. Перед изменениями сохраните копию шаблона и проверьте правки на staging-среде. Если используете кастомный код в functions.php, держите его небольшим и документируйте, зачем он нужен.
Если задача повторяется на нескольких проектах, имеет смысл вынести часть SEO-очистки в отдельный набор настроек или использовать инструменты вроде Clearfy Pro только там, где это действительно помогает убрать дубли и лишнюю разметку. Но даже в этом случае логику H1 в JournalX лучше контролировать руками: тема и SEO-плагин не должны спорить за один и тот же заголовок.