technical-seoaudit
🧱

Schema.org markup: the advanced 2026 guide

A complete guide to structured data: every type for every page, JSON-LD vs Microdata, @id linking, testing and debugging.

·14 min read·Site Metrics Tool

Schema.org markup is a structured-data vocabulary understood by Google, Yandex, Bing and most search assistants. Correct markup unlocks SERP rich snippets — stars, prices, FAQ accordions, breadcrumb navigation, product info. Per Google, pages with rich snippets average 30% higher CTR than regular ones. This article walks through which markup types fit which pages, how to use @id to link entities, and how to test markup via Google Rich Results Test and Schema Validator.

JSON-LD vs Microdata vs RDFa

Three schema.org formats. JSON-LD — a separate `<script>` block in `<head>` or `<body>` with JSON. Doesn't mix with HTML, easy to maintain, Google-recommended. Microdata — `itemscope`, `itemtype`, `itemprop` attributes inline in HTML. Harder to maintain but easier for template-generated dynamic data. RDFa — the oldest format, syntax close to Microdata. In 2026 all three are understood by every engine, but JSON-LD is the de-facto standard. Use JSON-LD whenever you can; other formats only for legacy markup that's hard to rewrite.

Baseline set for a typical site

The minimum markup set every modern site needs. Homepage — Organization (name, logo, contacts) + WebSite (for sitelinks searchbox). Inner pages — BreadcrumbList (Google swaps URLs in SERP for crumbs). Blog posts — Article with author, datePublished, dateModified, headline. FAQ-block pages — FAQPage. Product catalogue — Product with offers (price), AggregateRating (if reviews exist). Comparison pages — Review. Author pages — Person. This set covers 90% of needs.

Linking entities via @id

The most underused trick in schema.org. Via `@id` you create a "global identifier" for an entity and reference it from different JSON-LD blocks. Example: homepage has Organization with `@id: "https://site.com/#organization"`. On an article page in Article schema you set `publisher: { "@id": "https://site.com/#organization" }` — and Google understands the publisher of the article is the same organisation as on the homepage. This builds an entity "graph" of your site that Google uses for the knowledge panel and to understand brand structure. Site Metrics Tool uses this pattern on every page — each blog post references the unified organisation @id.

Top-10 schema types by impact

Testing and debugging markup

Three tools for verification. One — Google Rich Results Test (search.google.com/test/rich-results): shows which types Google recognised and flags errors. Two — Schema Markup Validator (validator.schema.org): a stricter tester checking full schema compliance, not only Google-specific requirements. Three — GSC → Enhancements: in real SERPs shows what Google uses from your markup and any errors found during indexing. These three cover 100% of debugging tasks. Site Metrics Tool's `/tools/meta-tags-checker` also validates JSON-LD on any page — no signup.

Frequently asked

Can multiple schema types coexist on a page?

Yes and you should. Homepage — Organization + WebSite. Blog post — Article + BreadcrumbList + FAQPage (if FAQ present). Product card — Product + AggregateRating + BreadcrumbList. Key rule: each type in its own `<script>` block.

What happens if the markup has errors?

Google ignores broken markup and skips the rich snippet. No direct penalty, but you lose CTR upside. Faked markup (e.g., AggregateRating without real reviews) can trigger a manual action — much worse.

Does schema.org work for Yandex?

Yes — Yandex understands the basic types (Organization, Article, Product, FAQPage, LocalBusiness). Yandex additionally uses its own markup for expanded answers, but it respects baseline JSON-LD as well.

Share

Related articles

🌐
Aug 19, 2026 · 13 min read

Hreflang for multilingual sites: the complete 2026 guide

What hreflang is, how to set it up correctly for two or more languages, typical mistakes, and why Google and Yandex treat hreflang differently.

⚙️
Aug 3, 2026 · 13 min read

JavaScript SEO in 2026: SPA, hydration, and why your page won't index

Why JavaScript-heavy sites index poorly, how Google and Yandex render JS, SSR/SSG/CSR differences, and a fix checklist.

👯
Jul 30, 2026 · 13 min read

Duplicate pages: how to find and fix them in 30 minutes

A complete guide to finding and fixing duplicates: types, detection tools, fixes via canonical, 301 and noindex.

🦈
Jul 14, 2026 · 13 min read

Keyword cannibalization: how to find and fix it

What keyword cannibalization is, why it kills rankings, how to detect it via GSC and Webmaster, and three proven strategies to fix it.