После смены темы SEO-поля в редакторе остались заполненными, но description и canonical исчезли из опубликованной страницы. В таком случае повторно вводить тексты во все записи рано: проблема может быть в том, как тема собирает HTML-документ.
Эта инструкция касается прежде всего классических и собственных PHP-тем WordPress. У блочных тем устройство шаблонов другое; копировать в них header.php из случайной инструкции не нужно. Сначала установите, какой тип темы используется и на каких страницах исчезли теги.
Description — описание страницы для поисковых систем, canonical — указание её основного адреса. Они находятся в служебной части HTML, поэтому при обычном просмотре страницы их исчезновение может остаться незаметным.
Как отделить потерю данных от ошибки вывода
Выберите страницу с заранее известным ручным description и canonical. Откройте запись в редакторе и сохраните текущие значения SEO-плагина. Затем откройте исходный HTML публичной страницы без входа в WordPress и найдите соответствующие теги.
Если данные есть в редакторе, но отсутствуют в HTML, это ошибка или особенность вывода. Если исчезли и данные, исследуйте операцию переноса базы, импорт либо смену плагина. Смена внешнего оформления сама по себе не объясняет потерю полей. Нужна связь между изменением и конкретным источником значения.
Проверьте несколько шаблонов: главную, обычную страницу, запись блога и товар. Если проблема только у услуги с собственным шаблоном, сравнение с работающей записью быстро сузит поиск. Если теги исчезли везде, обратите внимание на общую шапку, активный SEO-плагин и общий кеш HTML.
Зачем классической теме wp_head
Функция wp_head() запускает одноимённый hook: через него ядро и плагины выводят данные в head документа. В классической теме её обычно вызывают перед закрывающим head. Сам вызов не задаёт description или canonical; он даёт подключённым обработчикам выполнить свою работу.
Разработчик должен проверить файл шапки, реально используемый проблемным шаблоном, и путь его подключения. В собственной теме это не всегда стандартный header.php. Иногда отдельная посадочная страница создаёт документ вручную и обходится без общей шапки, поэтому обычные записи работают, а услуга — нет.
Минимальный фрагмент ниже показывает место вызова, а не готовую тему. Его добавление требует проверки действующего шаблона: повторный вызов тоже может создавать дубли.
<head>
<meta charset="<?php bloginfo('charset'); ?>">
<?php wp_head(); ?>
</head>Связь функции и обработчиков описана в справке WordPress по hook wp_head. Если вызов уже есть, переходите к проверке обработчиков и условий их запуска, а не вставляйте второй.
Учебный пример с отдельным шаблоном услуги
Представим сайт, где обычные страницы используют общую шапку, а услуга /services/cleaning/ получила специальную посадочную страницу. Это иллюстративный пример. В SEO-плагине у услуги сохранено описание, но новая шапка вручную выводит только charset и title. Вызова wp_head в ней нет.
Разработчик возвращает штатное подключение общей шапки либо добавляет необходимый вызов в собственный шаблон. После этого проверяет весь документ: description появился, canonical один, заголовок title не продублирован. Одна новая строка может исправить пропуск и одновременно проявить ранее скрытое ручное дублирование.
Второй контрольный адрес — обычная статья. Её результат должен остаться корректным, поскольку изменение общей шапки затрагивает другие страницы. Проверка только посадочной страницы недостаточна: задача относится к шаблону, а не к одному URL.
Какие ещё причины проверить
Убедитесь, что SEO-плагин активен и его вывод не отключён специальным кодом темы или расширением. Проверьте, не добавляет ли тема собственные robots и canonical. Два источника могут выводить разные правила, даже когда каждый отдельно выглядит правильно.
Устаревший публичный ответ подробно разобран в инструкции по проверке кеша HTML. Если недавно меняли сам плагин, отдельно проверьте перенос Yoast в Rank Math.
Сравните ответ для обычного посетителя с ответом администратора. Если данные отличаются, выясните, как работает кеш страниц и CDN. Очистка релевантного кеша помогает проверить новую версию HTML, но не доказывает, что шаблон исправлен. Не стирайте все кеши каждый раз, пока не понятен слой с устаревшим документом.
Отдельно проверьте, не остался ли title только потому, что его вручную добавили в шапку. Его наличие не подтверждает работу wp_head. Нужны фактические теги, ожидаемые от плагина, и отсутствие лишних копий. Настройки редактора и опубликованный документ должны быть связаны проверенным результатом.
Если исходный HTML содержит правильный canonical, а браузерный DOM показывает другой, ищите клиентское изменение после загрузки. В таком случае причина уже не только в PHP-шапке. Сохраните обе версии с URL и временем, чтобы разработчик мог воспроизвести расхождение.
Что передать разработчику
В задаче укажите тему, её версию, тип проблемного шаблона и два контрольных URL: сломанный и работающий. Приложите значения из редактора и фрагмент исходного HTML. Формулировка «SEO пропало» хуже, чем «На услуге поле description заполнено, но meta description отсутствует в публичном ответе».
Ожидаемый результат: тема выводит данные установленного SEO-плагина штатным способом, без второй независимой системы тегов. Если исполнителю нужен отдельный title для посадочной страницы, он должен описать его источник и взаимодействие с плагином, а не просто вставить строку поверх существующего механизма.
Исправление сначала проверьте на копии сайта. Для дочерней темы уточните, какой файл изменяется и почему обновление родительской темы не затрёт правку. Для блочной темы попросите решение, соответствующее её устройству. Универсального файла для всех тем не существует.
Как проверить обновление темы после правки
Сохраните название изменённого файла и объяснение его подключения. На копии сайта выполните предусмотренное обновление родительской темы и повторите контрольную услугу. Если исправление исчезло, способ хранения правки нужно изменить до следующего рабочего обновления. Это отдельная проверка устойчивости решения: правильный HTML сразу после ручной правки ещё не показывает, что её сохранит обычное обслуживание WordPress.
Как принять исправление после выпуска
Откройте контрольные страницы заново без авторизации. На каждой проверьте title, description, canonical и robots в исходном HTML. Запишите конкретные значения, а не только наличие тегов. Canonical на главную при странице услуги — неправильный результат, даже если тег теперь появился.
Проверьте отображение и основные действия страницы: шапку, меню, форму и переходы. Возврат hook может подключить не только SEO-данные, поэтому визуальная и функциональная проверка тоже относится к задаче. Затем повторите выборку на соседних шаблонах.
Для общего обзора опубликованных страниц можно использовать технический аудит сайта; дальнейшие разборы собраны в блоге. Работа принята, когда поля редактора правильно попадают в публичный документ, шаблоны не создают дубли и основные действия сайта продолжают работать. Состояние индекса Google и Яндекса после этого проверяется отдельно: оно не обновляется по факту сохранения PHP-файла.