Schema.org в теме WordPress: как настроить разметку без дублей
Разметка Schema.org помогает поисковикам понять содержимое страницы, но сама по себе не означает, что появится расширенный сниппет. Разбираем, что можно выводить из темы WordPress, как добавить JSON-LD и проверить, что разметка не дублирует SEO-плагин.

Добавить Schema.org в тему WordPress можно за один небольшой фрагмент кода, но ошибка часто проявляется не сразу: сайт начинает отдавать две разметки одной сущности или помечает страницу данными, которых на ней нет. Для WordPress 6.x покажем, как вывести базовую разметку сайта через JSON-LD, когда тему стоит оставить в покое и что проверить до публикации. Речь о разметке сайта в целом, а не о карточках товаров, рецептах или локальном бизнесе.
Сначала найдите разметку, которая уже есть
Не начинайте с редактирования functions.php. Разметку могут добавлять SEO-плагин, тема, конструктор страниц или отдельный плагин Schema.org. Если каждый компонент выводит собственную сущность Organization или WebSite, поисковый робот увидит несколько описаний сайта. Иногда они совпадают, иногда расходятся по названию, адресу или логотипу.
Откройте главную страницу в браузере, выберите просмотр исходного кода и найдите application/ld+json, schema.org и itemtype. Первый вариант обычно указывает на JSON-LD, последний часто встречается в микроразметке Microdata. Для дополнительной проверки используйте тест расширенных результатов Google: он показывает поддерживаемые им типы и ошибки, но не проверяет все возможности Schema.org.
- Если SEO-плагин уже выводит WebSite и Organization, не добавляйте их второй раз в тему.
- Если разметки нет, сначала определите, какие типы данных действительно соответствуют содержимому сайта.
- Если найдено несколько описаний одной организации, сравните поля и решите, какой компонент будет источником данных.
Переключение темы не должно менять сведения о компании или редакции. Поэтому постоянные данные обычно лучше хранить в плагине или настройках SEO-инструмента. Тема подходит для вывода разметки, которая зависит от шаблона, но привязывать к ней всю SEO-логику рискованно: при смене оформления код исчезнет.
Хорошая разметка не добавляет сайту фактов. Она точно описывает то, что читатель уже может увидеть на странице.
Выберите тип данных по содержимому страницы
Schema.org — словарь типов и свойств для описания сущностей. Разметка не является командой поисковику показать расширенный результат: поддержка конкретного типа зависит от поисковой системы и её правил. Начинайте не с вопроса «какой тип даст больше места в выдаче», а с того, что именно опубликовано.
| Страница | Что описывать | Где особенно легко ошибиться |
|---|---|---|
| Главная сайта | WebSite; при необходимости — связанная сущность Organization | Дублировать разметку, уже добавленную плагином |
| Статья | Article или более точный тип, если он подходит содержимому | Указывать автора, дату или изображение, которых нет на странице |
| Товар | Product и только фактически опубликованные сведения о товаре | Передавать устаревшую цену или наличие |
| Локальная организация | Подходящий тип LocalBusiness, если сайт действительно описывает местный бизнес | Указывать адрес или часы работы по предположению |
Таблица — ориентир, а не готовая схема для копирования. Для каждой страницы сверяйте тип и свойства с документацией Schema.org и правилами поисковика, под который настраиваете разметку. Например, описание статьи в блоге не превращает её автоматически в новость, а слово «магазин» в названии компании не делает любую страницу Product.
Термин: JSON-LD — формат структурированных данных в отдельном блоке JSON внутри HTML. В отличие от Microdata, он не размечает каждый фрагмент текста прямо в визуальной разметке страницы, поэтому его проще поддерживать отдельно от шаблона.
Как добавить минимальный JSON-LD в WordPress
Ниже — пример для сайта, где нет SEO-плагина или темы, уже выводящих WebSite. Он берёт название и адрес из настроек WordPress и выводит объект только на главной странице. Код рассчитан на WordPress 6.x; добавьте его в файл functions.php дочерней темы, а не родительской, иначе обновление темы может стереть изменения. Если используете SEO-плагин, сначала проверьте, как отключить его дублирующий вывод: не оставляйте оба варианта активными.
function example_output_website_schema() {
if ( ! is_front_page() ) {
return;
}
$schema = array(
'@context' => 'https://schema.org',
'@type' => 'WebSite',
'name' => get_bloginfo( 'name' ),
'url' => home_url( '/' ),
);
echo '<script type="application/ld+json">';
echo wp_json_encode(
$schema,
JSON_UNESCAPED_SLASHES
| JSON_UNESCAPED_UNICODE
| JSON_HEX_TAG
| JSON_HEX_AMP
| JSON_HEX_APOS
| JSON_HEX_QUOT
);
echo '</script>';
}
add_action( 'wp_head', 'example_output_website_schema', 30 );
Это намеренно короткий пример: здесь нет Organization, логотипа и поискового действия. Добавлять свойства стоит только после проверки, что они корректны и не выводятся другим компонентом. Для названия компании, контактов и логотипа лучше использовать уже настроенный SEO-плагин или отдельные поля, а не зашивать меняющиеся значения в код темы.
После сохранения откройте исходный код главной страницы и убедитесь, что появился один блок JSON-LD с актуальными названием и URL. Затем проверьте страницу валидатором. Если WordPress показывает белый экран или ошибку PHP, верните резервную копию файла или откатите изменение через доступ к файлам сайта. Перед правкой на рабочем сайте сначала проверьте код на тестовой копии.
Сравните способы поддержки разметки
| Подход | Что выигрываете | Чем платите | Когда выбирать |
|---|---|---|---|
| SEO-плагин | Настройки и типовые схемы управляются без правки шаблонов | Нужно разобраться в настройках и проверить, что не включены дубли | Сайт регулярно публикует статьи, товары или страницы с разными типами данных |
| Код дочерней темы | Вы контролируете точный вывод для конкретного шаблона | Изменения требуют технической поддержки и привязаны к теме | Нужен простой нестандартный вывод, которого нет в используемом плагине |
| Отдельный плагин проекта | Разметка переживает смену темы и может хранить логику сайта | Появляется собственный код, который нужно тестировать и обновлять | Правила специфичны для проекта и не должны зависеть от оформления |
Практический выбор: если плагин уже покрывает нужные страницы, настройте его и не добавляйте второй слой. Если разметка зависит от конкретного шаблона — например, разные типы страниц требуют разных описаний — код можно держать в дочерней теме, но оставьте в ней только шаблонную логику. Если данные важны независимо от оформления, вынесите их из темы.
Что ломается чаще всего
Дублируются сущности
Тема выводит WebSite, а SEO-плагин делает то же самое. Само наличие двух объектов не всегда означает ошибку, но противоречащие данные мешают интерпретации. Проверьте исходный код и оставьте один согласованный источник для одинаковой сущности.
Разметка обещает больше, чем страница
В JSON-LD указана цена, дата публикации или автор, которых пользователь не видит либо которые уже устарели. Сопоставьте каждое важное свойство с видимым содержимым страницы и обновляйте его из того же источника, что и контент.
Один тип назначен всем страницам
Добавлять Article на главную, страницы контактов и карточки товаров — не универсальное решение. Выводите тип условно для подходящего шаблона и не копируйте один объект на весь сайт.
Ожидают гарантированный сниппет
Валидная разметка не гарантирует специальное оформление в результатах поиска. Поисковик сам решает, показывать ли расширенный результат; кроме того, Google поддерживает не все типы Schema.org в своих функциях выдачи.
Что делать дальше
Составьте список шаблонов сайта: главная, записи, товары, контакты. Для каждого отметьте, какие данные видны пользователю и какой компонент формирует JSON-LD. После этого проверьте по одному URL каждого типа, устраните дубли и заведите регулярную проверку после обновления темы, SEO-плагина или структуры сайта. В проде следите не только за валидностью, но и за тем, совпадают ли разметка, видимое содержимое и актуальные данные.
Смежная тема — настройка конкретных типов Product и Article; здесь разобран только выбор места для разметки и базовый WebSite.
Редактор изображений: Убрать лишнее, заменить фон, добавить объект, расширить кадр — на вашем изображении.
Спросить за 20 ₽Источники: WordPress Developer Resources: wp_json_encode, Google Search Central: структурированные данные
Частые вопросы
Нужно ли добавлять Schema.org, если на сайте уже стоит Yoast SEO или другой SEO-плагин?
Можно ли вставить JSON-LD прямо в functions.php родительской темы?
Почему валидная разметка не появилась в поисковой выдаче?
Нужно ли размечать каждую страницу сайта?
Как понять, что тема и плагин выводят дубли?
Можно ли обещать, что после настройки вырастет трафик?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.