Микроданные (Microdata) — один из форматов реализации структурированных данных на веб-страницах, наряду с JSON-LD и RDFa. В отличие от JSON-LD, который размещается в отдельном блоке <script>, Microdata встраивается непосредственно в HTML-разметку страницы с помощью специальных атрибутов: itemscope, itemtype, itemprop.
Разработан в рамках HTML5 и первоначально был основным рекомендованным форматом для Schema.org. Сегодня Google рекомендует JSON-LD как предпочтительный формат, хотя Microdata по-прежнему полностью поддерживается.
Атрибуты Microdata
- itemscope — отмечает элемент как контейнер с описанием объекта. Не имеет значения — просто флаг.
- itemtype — указывает URL типа из Schema.org (например, https://schema.org/Product).
- itemprop — свойство объекта. Значение берётся из содержимого тега или атрибута.
- itemid — уникальный идентификатор объекта (URL или URN).
Пример Microdata vs JSON-LD
Microdata (встроено в HTML):
<div itemscope itemtype="https://schema.org/Product"> <span itemprop="name">Ноутбук Lenovo</span> <span itemprop="description">Ноутбук для работы</span> </div>
JSON-LD (в блоке script, отдельно от контента):
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"Product","name":"Ноутбук Lenovo"}
</script>
Microdata или JSON-LD: что выбрать
- JSON-LD — рекомендован Google. Проще поддерживать, не зависит от HTML-структуры. Подходит для нового проекта.
- Microdata — подходит, если структура страницы уже выстроена под него. Нет смысла переходить, если оно работает.
Часто задаваемые вопросы
Можно ли использовать Microdata и JSON-LD одновременно?
Технически да, но не для одного и того же объекта. Можно использовать JSON-LD для FAQPage и Microdata для BreadcrumbList — они не конфликтуют. Однако смешивание форматов для одного объекта может привести к дублированию данных. Лучший подход: выберите один формат для всего сайта. Если уже используется Microdata — добавляйте новые типы через Microdata. Для нового сайта — JSON-LD.
Почему Microdata считается устаревшим?
Microdata не устарел — он поддерживается. Но с 2016 года Google явно стал рекомендовать JSON-LD как предпочтительный формат. Причины: JSON-LD проще поддерживать, легче добавлять через CMS/плагины, не зависит от HTML-вёрстки. При редизайне сайта Microdata нужно обновлять вместе с HTML, а JSON-LD обновляется отдельно. Microdata продолжает корректно работать на миллионах сайтов — смысл перехода есть только при значительном рефакторинге.
Как Microdata работает с динамическим контентом (React, Vue)?
Для SPA (Single Page Applications) предпочтителен JSON-LD, так как он может генерироваться серверно и не зависит от клиентского рендеринга. Microdata, встроенные в JSX/Vue-шаблоны, работают корректно при серверном рендеринге (SSR/SSG). При клиентском рендеринге Googlebot может не дождаться данных. Правило: для Next.js, Nuxt — размещайте JSON-LD в <Head> через SSR-генерацию.
Что делать, если страница содержит несколько объектов Microdata?
Несколько itemscope на одной странице — норма. Например, страница статьи может содержать: Article (основная статья), BreadcrumbList (хлебные крошки), Person (автор), FAQPage (блок FAQ). Каждый itemscope описывает отдельный объект — они не конфликтуют. Важно: не путайте вложенность. BreadcrumbList с ListItem внутри — корректная вложенность. Article с Product внутри — некорректная, если на странице не продаётся товар.