JSON-LD vs Microdata vs RDFa, settled in 2026
Google's documentation explicitly recommends JSON-LD. Schema.org's documentation is format-agnostic. Most older WordPress themes still use Microdata. So is the debate actually over? Mostly, yes — and here is the precise reason it took until 2026 to be fully settled.
What each format is, in one paragraph each
JSON-LD is a JSON encoding of structured data, wrapped in <script type="application/ld+json">. It sits separately from the visible HTML and is parsed independently.
<script type="application/ld+json">
{ "@context": "https://schema.org", "@type": "Article", "headline": "X" }
</script>
Microdata uses HTML attributes (itemscope, itemtype, itemprop) on the visible elements themselves. The data is intermingled with the markup that's rendered.
<article itemscope itemtype="https://schema.org/Article">
<h1 itemprop="headline">X</h1>
</article>
RDFa is similar to Microdata but uses RDF vocabulary attributes (vocab, typeof, property) on the HTML. It comes from the academic semantic-web tradition.
<article vocab="https://schema.org/" typeof="Article">
<h1 property="headline">X</h1>
</article>
Google's official recommendation
Quoting Google's structured data introduction (verified 2026-05-15):
Google recommends using JSON-LD for structured data whenever possible.
All three are supported. JSON-LD is recommended. That asymmetry has been stable for years.
Why JSON-LD won
Three reasons, in order of importance:
- Separation of concerns. Schema lives in one block instead of being scattered across the markup. Easier to generate from server-side data, easier to validate, easier to debug.
- No risk of breaking the visible page. Adding
itempropto the wrong element can change how the page renders or how accessibility tools read it. JSON-LD has zero rendering impact. - It's the format dev tools target. Every modern schema generator (this one included), every CMS plugin, every framework integration — they all output JSON-LD. The ecosystem moved.
Why Microdata persists
Theme inertia. WordPress themes built between 2014 and 2018 baked Microdata into their templates because that was the dominant pattern at the time. Migrating away requires editing template files, and most theme buyers don't do that.
Functionally, the schema still works. Practically, it's harder to maintain.
Why RDFa lost
RDFa came from the W3C's semantic-web project. It was always more rigorous than schema.org needed. Google supports it but never prioritised it. Outside of academic and government publishing, it never had a foothold.
The one edge case where Microdata still makes sense
If you have a heavily templated CMS where the page content already cleanly maps to schema fields — and adding a server-rendered JSON-LD block is more work than annotating the template — Microdata can be a practical choice. The case is narrow: typically static-site generators with strict template languages where injecting JSON is awkward.
Migrating from Microdata to JSON-LD without losing rankings
The transition is straightforward and low-risk:
- Build the equivalent JSON-LD for one page type (use the builder on the homepage for the data shape).
- Add the JSON-LD
<script>to the page while keeping the Microdata in place. - Verify in the Rich Results Test that both formats parse cleanly.
- Wait two weeks; confirm rankings and impressions haven't dropped in Search Console.
- Remove the Microdata.
The temporary overlap is fine. Google deduplicates. The wait is what protects you from learning, three days later, that your JSON-LD had a subtle typo and you stripped the working Microdata.
What happens if you leave both formats on the same page
Google merges them, preferring JSON-LD when fields conflict. There's no penalty, just some parser overhead. If you have a legacy site, you can let the Microdata sit there indefinitely while shipping new content as JSON-LD.
One thing I'm not certain about
How AI Overviews ingest each format. The published Google documentation doesn't distinguish, and I have not run a controlled test. Anecdotally, JSON-LD pages seem to be cited more often in AI Overviews, but that's confounded by the fact that newer, better-maintained pages use JSON-LD.
If you're building new today, use JSON-LD. If you're maintaining a legacy WordPress site, migrate when you next touch the templates. If you're writing RDFa for SEO in 2026, please email me — I want to know why.
For your next page, generate JSON-LD with the builder on the homepage and paste into your template.