Structured Data & Schema.org
Structured data makes a page eligible for rich results, never guaranteed. Google recommends JSON-LD. The general guidelines, supported types and their 2026 status, key JSON-LD examples, and the FAQ/HowTo deprecations you must not rely on.
Structured data (schema.org vocabulary) describes page content to search engines and makes a page eligible for rich results — never guaranteed. Google recommends JSON-LD (least error-prone) over Microdata/RDFa; JS-injected JSON-LD is fine if it renders in the DOM. data-vocabulary.org is dead.
Governance: schema.org launched 2011-06-02 (Bing/Google/Yahoo, Yandex Nov 2011); W3C Community Group stewards it since 2015; current ~v30.0 (~827 types).
General guidelines (all types — enforced; violations → manual action losing rich-result eligibility)
DO: mark up content visible to users; use the most specific type (Restaurant not LocalBusiness); prefer fewer complete accurate properties; keep markup on the page it describes; ensure images/pages are crawlable+indexable. DON'T: mark up invisible/fake/misleading content; create empty pages just for markup; impersonate; block structured-data pages via robots.txt/noindex/login.
Testing: Rich Results Test (Google eligibility + preview), Schema.org validator (generic vocabulary), URL Inspection (confirm found/rendered), Rich Result Status reports (post-deploy monitoring; allow days for recrawl).
Supported types & 2026 rich-result status
Currently earn a visual rich result: Article/NewsArticle/BlogPosting (Top Stories, no special visual), Breadcrumb, Product (snippet + merchant listing), Review snippet / AggregateRating, VideoObject, Recipe, Event, JobPosting, LocalBusiness, plus Course, Dataset (being phased out), Discussion forum, Education Q&A, Math solver, Movie, Practice problems (removed Jan 2026), Profile page, Q&A, Software app, Speakable, Subscription/paywall, Vacation rental, Image metadata, Carousel. Organization / WebSite = entity/knowledge signals.
Deprecated / retired — do NOT rely on for rich results:
| Type | Status | Date |
|---|---|---|
| FAQPage | Restricted to gov/health, then fully removed | Restricted Aug 2023; stopped showing 2026-05-07 (report/RRT support gone by mid/late 2026, API Aug 2026) |
| HowTo | Removed from Search entirely | 2023-09-14 |
| Practice Problem (Quiz) | Support removed | Jan 2026 |
Sitelinks searchbox (WebSite+SearchAction) |
Retired; markup inert | 2024-11-21/29 |
| data-vocabulary.org | No feature | — |
Google's line: leftover/unsupported markup causes no errors and no ranking harm — safe to leave (may still feed AI entity understanding), but stop investing in deprecated types for SERP gains.
Key JSON-LD examples
Article / BlogPosting (no required properties; headline ≤110 chars; images ≥1200px multiple aspect ratios; ISO-8601 dates with timezone; author.name = name only, no titles/honorifics):
{
"@context": "https://schema.org",
"@type": "NewsArticle",
"headline": "Title of a News Article",
"image": ["https://example.com/1x1.jpg","https://example.com/4x3.jpg","https://example.com/16x9.jpg"],
"datePublished": "2024-01-05T08:00:00+08:00",
"dateModified": "2024-02-05T09:20:00+08:00",
"author": [{ "@type": "Person", "name": "Jane Doe", "url": "https://example.com/profile/janedoe123" }]
}
Product (name, image required; offers.price + priceCurrency (ISO 4217) required for merchant listing; price without currency is ignored; only mark up actual product pages, not category/search pages):
{
"@context": "https://schema.org/", "@type": "Product",
"name": "Premium Running Shoe", "image": "https://example.com/shoes/model-x.jpg",
"brand": { "@type": "Brand", "name": "SportTech" },
"aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.5", "ratingCount": "328" },
"offers": { "@type": "Offer", "price": "129.99", "priceCurrency": "USD",
"availability": "https://schema.org/InStock", "priceValidUntil": "2026-12-31" }
}
BreadcrumbList (itemListElement of ListItem with 1-based position, name, item URL; item optional on last item; ≥2 items; don't include the hostname as the first crumb; represent the user path not the URL structure):
{
"@context": "https://schema.org", "@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Books", "item": "https://example.com/books" },
{ "@type": "ListItem", "position": 2, "name": "Science Fiction", "item": "https://example.com/books/sciencefiction" },
{ "@type": "ListItem", "position": 3, "name": "Award Winners" }
]
}
Review snippet — critical DON'Ts: self-serving reviews (entity controls reviews about itself: Product/LocalBusiness/Organization) are ineligible; don't aggregate scraped ratings; a single review's author must be a Person; use a dot decimal (4.4); ratings must be from real users and visible on the page. Hosts: Product, Recipe, Movie, Book, Course, Event, LocalBusiness, Organization, SoftwareApplication, etc.
Organization — place on ONE page (home or About), not every page. Recommended: name, url, logo (≥112×112, crawlable, clear on white), sameAs, address, telephone, email. VideoObject — see Chapter 8. LocalBusiness / Event / Recipe — full examples in source 01.
Note: structured data is not required for AI Overviews/AI Mode (Chapter 11), but it correlates with citation (~2.3× more often — Community) and keeps you eligible for rich results. Always ship Article + BreadcrumbList + Organization + WebSite for E-E-A-T/AI grounding.
Related on Crawlinx
Sources
Audit your own site — free
156 checks, internal PageRank, render-diff. No signup, results in ~30s.