Microdata is part of the HTML Living Standard. It adds attributes to existing elements so the visible content doubles as structured data. An element with itemscope starts an item, itemtype names its Schema.org type, and itemprop marks child elements as properties. Google still supports it, but most new implementations use JSON-LD instead.
How the attributes fit together
Microdata wraps the content it describes. The outer element declares the item and type, and each property sits on the element that holds the value. Nested items are created by adding itemscope to an element that is itself an itemprop of the parent.
<div itemscope itemtype="https://schema.org/Product">
<h1 itemprop="name">Larkspan Analytics</h1>
<div itemprop="offers" itemscope itemtype="https://schema.org/Offer">
<span itemprop="price">49.00</span>
<meta itemprop="priceCurrency" content="USD">
</div>
</div>Strengths and weaknesses
The upside is that markup and content cannot drift apart easily, because the property sits on the text users read. The downside is fragility. A redesign that moves or removes elements can silently break the markup, and complex nesting makes templates hard to read. It is also awkward to express values that are not visible, which pushes people toward meta tags inside the body.
Many older ecommerce themes and CMS plugins still output Microdata, so it is common to find it on existing sites, sometimes alongside a JSON-LD block that says something different.
Mixing formats
Google can read Microdata, RDFa and JSON-LD on the same page. Problems arise when two formats describe the same entity with conflicting values, or when duplicate Product or Organization items appear. If you migrate to JSON-LD, remove the old attributes rather than leaving both.
Example
A theme leftover
A SaaS company, Brindlecove, moves its pricing page to a new template that outputs JSON-LD. The old theme's footer still carries Microdata for an Organization with a former company name. The Schema Markup Validator shows two Organization items. Removing the footer attributes leaves one consistent entity.
Common mistakes
Leaving duplicate markup after a migration
Switching to JSON-LD without removing Microdata attributes produces two versions of the same entity, often with different values.
Breaking markup in a redesign
Front-end changes that strip attributes or reorder nesting can invalidate Microdata without anyone noticing. Add validation to release checks.
Questions
Google says it supports both. JSON-LD is recommended for ease of maintenance, not because Microdata is ranked or parsed less favorably.