JSON-LD vs Microdata vs RDFa: Which Should You Actually Use?
All three formats validate identically. The real difference is which one survives your next template redesign without silently breaking.
No fluff — the same audits and fixes I run for clients, written up as I do the work.
All three formats validate identically. The real difference is which one survives your next template redesign without silently breaking.

Schema markup doesn't earn a citation on its own — it removes friction in the retrieval process that decides which pages are confident enough to cite.
Organization schema is the entity everything else on your site references. Get it right once, and every other type inherits a stable identity to point back to.
A byline is just a text string until Person schema connects it to a verifiable identity a search engine or AI system can independently check.
Schema.org's Article type defines dozens of properties. Google's own rich-result documentation checks a much shorter list. Here's the difference that matters.
The FAQ rich-result dropdown is gone for most sites since 2023. A lot of guidance hasn't caught up — here's what FAQ schema actually does now.
The step-by-step SERP card most guides still promise is gone for most sites since 2023. Here's what HowTo schema actually does now.
Rich-result eligibility and schema.org compliance are two different questions. Most testing sessions bounce between two or three tools, not one.
A schema markup validator can show valid output while the JSON-LD never reaches what a crawler actually processes. Here's why, and how to fix it.
Most schema problems aren't invalid syntax — a validator catches that instantly. The mistakes that actually cost you are structural and semantic.
B2B structured data is genuinely underserved. Here's the priority order — starting with Organization and Person, not Product and Review.
Conflating three different timelines — recrawl, rich-result visibility, and entity disambiguation — is where most schema frustration comes from.
Schema has no visible fallback — a template rebuild can silently drop or disconnect JSON-LD without a single visible rendering issue.
Rich snippets get the attention, but entity disambiguation is the bigger reason schema markup matters — especially as AI Overviews take a growing share of search.
Google says it treats subdomains and subfolders the same. Crawl data from real migrations says otherwise. Here's a practical decision matrix for which to use.
"Google renders JS, so it's fine" misses two things: two-wave indexing, and AI crawlers that don't render JS at all. Here's where hydration actually breaks.
Traditional SSR solves the blank-page problem but still ships a full JS bundle to hydrate. RSC changes that calculation — here's what actually improves.
Prerendering for Googlebot used to be a viable patch for client-side apps. It doesn't cover the crawlers that matter most now.
INP measures total interaction time, not just when the browser started responding. On heavy JS frameworks, hydration is usually the hidden cost.
"Our tech stack won't allow a subfolder" is usually solvable with a reverse proxy at the edge, not a platform change.
The structure change is the easy part. The redirects, canonicals, and GSC property setup are where migrations actually go wrong.
International expansion is one of the few legitimate reasons to reach for a subdomain or ccTLD instead of a subfolder. Here's how to actually choose.
GSC gives you aggregates. Log files are the only record of what actually happened, request by request.
Crawl budget is capacity times demand. On large sites, most of the waste comes from a handful of repeatable structural mistakes.
Passive sitemaps aren't enough for high-velocity publishing. Here's how the two push-based indexing protocols actually differ.
A growing share of discovery is shifting to AI answer engines. Your log files already show whether they can see your site at all.
Deploying schema through a legacy CMS often means a developer ticket queue. Injecting it at the edge skips that entirely.
Search engines evaluate connected entities now, not keyword strings. Disambiguation is how you tell them precisely which entity you mean.
Basic Product schema works until variants, currencies, and stock status enter the picture. Here's the pattern that avoids the validation errors.
A single user journey across a subdomain or third-party checkout can silently split into separate sessions if domain measurement isn't configured.
Consent granted on the root domain needs to hold on every subdomain a user visits next — that only happens with correct cookie-domain configuration.
Ranking and traffic reports don't settle the ROI conversation anymore. Stakeholders want to see organic search connected to closed-won revenue.