Один и тот же товар в двух форматах
Возьмём простую карточку: товар с названием и ценой. В формате JSON-LD данные собираются в отдельный блок, который не зависит от расположения элементов на странице:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Диван «Альфа»",
"offers": {
"@type": "Offer",
"price": "45900",
"priceCurrency": "RUB"
}
}
</script>
В формате микроданных те же сведения записываются атрибутами прямо в тегах, которые выводят содержимое страницы:
<div itemscope itemtype="https://schema.org/Product">
<h1 itemprop="name">Диван «Альфа»</h1>
<div itemprop="offers" itemscope itemtype="https://schema.org/Offer">
<span itemprop="price" content="45900">45 900 ₽</span>
<meta itemprop="priceCurrency" content="RUB">
</div>
</div>
Принципиальная разница в устройстве
Сравнение по практическим критериям
| Критерий | JSON-LD | Микроданные |
|---|---|---|
| Связь с вёрсткой | Независим от вёрстки | Встроены в HTML-теги |
| Сопровождение | Правится в одном блоке | Правится по всему шаблону |
| Риск рассинхронизации с видимым текстом | Выше: данные хранятся отдельно | Ниже: данные берутся из видимых элементов |
| Генерация программой | Проста: собирается из данных записи | Сложнее: нужна правка шаблонов |
| Рекомендация Google | Основной рекомендуемый формат | Поддерживается |
Что выбрать на практике
- Для нового сайта и большинства проектов — JSON-LD: проще внедрять, проверять и обновлять.
- Для готового шаблона, где нужные данные уже выводятся элементами страницы, допустимы микроданные.
- Не смешивайте оба формата для одной и той же сущности: дубли путают проверку и усложняют сопровождение.
Совет: при выборе JSON-LD формируйте блок программно из тех же данных, которые выводятся на страницу. Так цена и наличие в разметке не разойдутся с видимыми.
Как перейти с микроданных на JSON-LD
Если сайт уже размечен микроданными и вы хотите упростить сопровождение, переход делают поэтапно. Каждый атрибут вёрстки превращается в свойство блока JSON-LD.
| Микроданные | JSON-LD |
|---|---|
itemscope itemtype="…/Product" | "@type": "Product" |
itemprop="name" | "name": "…" |
Вложенный itemscope | Вложенный объект { … } |
content="45900" | Значение свойства без оформления |
- Составьте список всех типов и свойств, которые сейчас размечены.
- Соберите из тех же данных блок JSON-LD и добавьте его на страницу.
- Убедитесь, что результаты проверки совпадают с прежними.
- Только после этого удалите атрибуты микроданных из шаблона.
Как убедиться, что робот видит разметку
Откройте исходный код страницы, а не то, что показывают инструменты разработчика после загрузки, и найдите блок application/ld+json. Если разметка появляется только после выполнения скриптов, она может дойти до робота с задержкой. Надёжнее, когда блок присутствует в HTML уже в ответе сервера — подробнее об этом принципе в статье про проверку страницы глазами робота.
Частые вопросы
Какой формат лучше — JSON-LD или микроданные?
Для большинства проектов подходит JSON-LD: он не зависит от вёрстки и проще в сопровождении, а микроданные оправданы в готовых шаблонах.
Понимают ли оба формата Яндекс и Google?
Да, обе системы работают с JSON-LD и микроданными, поэтому выбор определяется удобством сопровождения, а не поддержкой.
Можно ли использовать оба формата на одной странице?
Технически можно для разных сущностей, но описывать одну и ту же сущность двумя способами не стоит: это создаёт дубли.
Готовый адрес можно собрать прямо сейчас: откройте генератор ЧПУ — он транслитерирует фразу по таблице Яндекса, уберёт служебные слова и покажет длину адреса.