Schema.org в теме WordPress: сравниваем способы внедрения
Разметку Schema.org в WordPress можно добавить в тему, SEO-плагин или отдельный модуль. Сравниваем эти варианты по риску дублей, переносимости и контролю — и выбираем подход для разных типов сайта.

Разметка Schema.org в WordPress может появиться сразу из двух мест: SEO-плагина и темы. Тогда на одной странице оказываются дублирующие описания сайта, статьи или хлебных крошек — и управлять ими становится сложнее. Сравним три подхода: оставить разметку плагину, встроить её в тему или вынести в собственный небольшой плагин.
Сначала выясните, кто уже выводит разметку
Не начинайте с добавления JSON-LD. Сначала откройте исходный код страницы и найдите в нём application/ld+json. Это типичный способ разместить структурированные данные в формате JSON-LD. Проверьте главную, страницу записи и страницу товара, если магазин работает на WooCommerce: набор разметки может отличаться.
Затем запустите страницы в [инструменте проверки расширенных результатов Google](https://search.google.com/test/rich-results) и в [Schema Markup Validator](https://validator.schema.org/). Первая проверка ориентирована на поддерживаемые Google расширенные результаты, вторая — на синтаксис и словарь Schema.org. Успешная проверка не означает, что Google обязательно покажет расширенный сниппет.
- Посмотрите, сколько блоков JSON-LD выводится и какие у них типы: например,
Organization,WebSite,ArticleилиProduct. - Проверьте, не описывают ли два блока одну и ту же сущность разными данными.
- Сверьте значения с видимым содержимым: название, автор, дата, цена и наличие должны соответствовать странице.
WordPress 6.x предоставляет для вывода в заголовке страницы хук wp_head, но сам по себе он не решает, какая именно разметка нужна сайту. Выбор словаря, типов и данных остаётся за темой, плагином и вашей конфигурацией.
Три способа добавить Schema.org
Оставить разметку SEO-плагину
Подходит, если плагин уже установлен, поддерживает нужные типы страниц и позволяет настроить основные сущности сайта. Обычно это самый простой вариант для блога или небольшого корпоративного сайта: разметка связана с записями, страницами и настройками SEO-инструмента, а не с шаблонами темы.
Цена удобства — зависимость от конкретного плагина и его логики. Плагин может формировать граф из нескольких связанных объектов, а тема или второй SEO-инструмент — добавить собственный блок. Не ставьте второй плагин «для Schema», пока не проверили, что именно уже выводит первый.
Добавить разметку в тему
Этот путь оправдан, когда разметка тесно связана с шаблоном и не должна пережить смену темы. Например, тема выводит уникальный тип контента и его поля. Но при смене темы разметка исчезнет или потребует переноса. Изменять файлы родительской темы напрямую рискованно: обновление может затереть правки. Дочерняя тема снижает этот риск, но не делает разметку независимой от оформления.
Вынести логику в собственный плагин
Собственный небольшой плагин — более переносимый вариант, если разметка относится к бизнес-логике сайта и должна работать при смене темы. Он требует сопровождения: нужно контролировать совместимость с SEO-плагинами, типами записей и обновлениями WordPress. Не создавайте его ради одного поля, которое уже корректно выводит установленный инструмент.
| Подход | Сильная сторона | Цена и риск | Когда выбирать |
|---|---|---|---|
| SEO-плагин | Настройки и данные сайта в одном инструменте | Зависимость от плагина; возможны дубли | Типовые статьи, страницы и товары |
| Тема | Тесная связь с конкретными шаблонами | Разметка привязана к теме; обновления требуют осторожности | Данные действительно зависят от шаблона |
| Собственный плагин | Переносимость между темами и контроль логики | Код и совместимость нужно поддерживать | Нужная логика отсутствует в готовых инструментах |
Хорошая разметка описывает то, что пользователь действительно видит на странице. Она не компенсирует отсутствующую цену, автора или дату публикации.
Если добавляете код: изолируйте его от темы
Для небольшого сайта, которому нужно добавить только описание организации, можно создать собственный плагин. Пример рассчитан на WordPress 6.x и выводит один глобальный объект. Перед использованием проверьте, не формирует ли такой же объект ваш SEO-плагин. Значения названия и URL берутся из настроек сайта; адрес логотипа нужно заменить на реальный URL изображения.
<?php
/**
* Plugin Name: Site Organization Schema
*/
add_action( 'wp_head', 'site_organization_schema' );
function site_organization_schema() {
$schema = array(
'@context' => 'https://schema.org',
'@type' => 'Organization',
'@id' => home_url( '/#organization' ),
'name' => get_bloginfo( 'name' ),
'url' => home_url( '/' ),
'logo' => array(
'@type' => 'ImageObject',
'url' => 'https://example.com/path/to/logo.png',
),
);
echo "\n<script type=\"application/ld+json\">";
echo wp_json_encode(
$schema,
JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE
);
echo '</script>' . "\n";
}
Замените URL логотипа на файл, доступный без авторизации, и установите плагин как обычный плагин WordPress. Не копируйте этот пример поверх существующей схемы Organization: сначала устраните дублирование или настройте один источник разметки. Если у организации нет логотипа, не оставляйте фиктивный адрес — удалите поле.
Когда какой вариант выбирать
- Оставьте SEO-плагин, если он уже выдаёт нужные типы и позволяет управлять данными без кода. Это разумный выбор для стандартного блога и большинства небольших сайтов.
- Используйте тему, если данные описывают именно шаблон или специфический тип контента темы и вы принимаете привязку к ней. Для изменений используйте дочернюю тему, а не правьте файлы родительской.
- Выносите логику в отдельный плагин, если она должна сохраняться при смене оформления или зависит от данных, которые тема не должна контролировать.
Не выбирайте вариант по принципу «чем больше разметки, тем лучше». Выбирайте один ответственный источник для каждой сущности. Например, информацию об организации может выводить SEO-плагин, а отдельные дополнительные типы — собственный код, если они не повторяют уже созданные объекты.
Что чаще всего ломается
Дубли и несогласованные сведения
Самая частая проблема — два компонента выводят один тип данных. Ищите не только одинаковый @type, но и повторное описание одной организации или статьи. У связанных объектов идентификаторы могут быть разными, поэтому важен смысл графа, а не только число блоков.
Разметка не совпадает со страницей
Если в JSON-LD указана цена, которой не видно покупателю, или автор, которого нет в статье, данные расходятся с содержимым. Исправьте источник или уберите поле. Не размечайте несуществующие рейтинги и отзывы.
Проверяется только синтаксис
Валидный JSON ещё не гарантирует корректную разметку. Проверьте обязательные свойства для конкретного типа и соответствие документации Google, если рассчитываете на расширенный результат. Google может не показывать его даже при отсутствии ошибок: показ зависит от собственных систем и условий поиска.
Граф знаний — набор связанных описаний сущностей и отношений между ними. В JSON-LD такие описания могут быть представлены несколькими объектами, которые ссылаются друг на друга через идентификаторы.
Что делать дальше
Составьте короткую карту: какие типы разметки нужны на главной, записи и товаре, и какой компонент отвечает за каждый из них. После изменения проверяйте исходный код и обе разновидности валидатора на тестовых страницах, затем повторяйте проверку после обновления темы или SEO-плагина. В продакшене следите за тем, чтобы цены, наличие и даты в разметке оставались синхронны с тем, что видит посетитель.
Разметка товаров и требования к расширенным результатам WooCommerce — отдельная тема; здесь разобраны способы выбрать место для Schema.org в WordPress.
Проверка рекламы на риски: Что в макете вызовет вопросы ФАС: превосходные степени, сравнения, обещания результата, маркировка.
Спросить за 40 ₽Источники: WordPress Developer Resources: wp_head, Google Search Central: структурированные данные
Частые вопросы
Нужно ли добавлять Schema.org, если уже установлен SEO-плагин?
Что лучше: JSON-LD в теме или отдельный плагин?
Будет ли сайт выше в поиске после добавления Schema.org?
Можно ли оставить два блока JSON-LD на одной странице?
Как проверить, что разметка работает?
Нужно ли менять код примера под другую версию WordPress?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.