← Knowledge Notes
Global Growth / Knowledge note · English

Complete Overview of Structured Data (Framework + Full List of 34 Rich Result Types + JSON-LD/Microdata/RDFa Selection Guide)

Overview of the Structured Data (SD) framework and all 34 rich result types supported by Google. How to choose among the 3 formats (JSON-LD recommended / Microdata / RDFa; data-vocabulary.org is deprecated). **5 quality guidelines** (content / relevance / completeness / location / specificity) plus images + 2 patterns for multiple items on one page (nesting / linking independent items with @id). The complete type table is organized by category (e-commerce / organization / sports / recruitment / entertainment / news / dining / education) + required fields for each type / key pitfalls. **Latest deprecation**: FAQ will no longer show rich results starting 2026-05-07 (tools will be removed in 2026-06 / API will be removed in 2026-08). Generate SD with JavaScript (Google Tag Manager / custom JS) + note that crawl frequency will decrease when using GTM for Product-type SD. For image copyright metadata, use schema.org/CreativeWork (creator + creditText + copyrightNotice + license + acquireLicensePage). Speakable is limited to news + en-US/-CA/-AU/-IE/-NZ/-UK + a few sentences totaling ≤ 30 seconds. Difference between SD for paywalled content and cloaking (policy violation): you must mark isAccessibleForFree=false and use cssSelector. Carousel is only available for 4 categories: Recipe/Course/Restaurant/Movie + 4 cases for ItemList @id linking.

Source collection:Google Search and SEO · Published here:2026-09-26

SEOSearch EnginesOrganic growth

This document is gsc-structured-data-overview.md's pure Chinese version, content is generated from the original version.The original version is the single source of truth, please modify the original version for changes; this version is regenerated along with the original.Original text retained: schema.org type names (Article / Product, etc.), JSON-LD field names (headline / image etc.), Google tool names (Search Console / Rich Results Test, etc.), technical abbreviations (JSON-LD / GTM / URL, etc.).

In one sentence: Structured Data (SD for short) = adding schema.org tags to web pages,to explicitly tell Google what the content of this page is(ingredients in a recipe / article author / product price, etc.) → triggers rich results.Google supports a total of 34 types, this wiki is the entry point + key pitfalls for each type. For specific field tables, see search-gallery official documentation.

TL;DR (read in one minute) — 7 core decisions

Decision Answer
Which format to use? JSON-LD(recommended), placed in <script type="application/ld+json">, placing it in <head> or <body>both work
Can Microdata / RDFa still be used? Yes, but prone to errors, JSON-LD is the easiest to maintain
data-vocabulary.org Can still be used? No, deprecated in 2020
Will marking SD definitely show rich results? Not necessarily, marking only means "eligible to participate", whether to display is ultimately decided by Google's algorithm
Are more fields always better? No,"fewer but accurate" > "more but wrong". Complete + accurate > fully listed but broken
What to use for testing? Rich Results Test(Google-specific) / Schema Markup Validator(general schema.org validation)
Can invisible content be marked? ❌ No — it must be consistent with the visible content on the page, otherwise it will be considered spam

Part 1 — Framework: How to use structured data

1.1 Why use it

Data from some case studies:

  • Rotten Tomatoes: Adding SD to 100,000 pages → click-through rate (CTR) +25%
  • Food Network: Adding SD to 80% of pages → traffic +35%
  • Rakuten: User dwell time on pages with SD is 1.5 times, AMP+SD has3.6 times times the engagement
  • Nestlé: CTR of pages showing rich results is+82%

1.2 How to choose among the 3 formats

Format Advantages Disadvantages When to use
JSON-LD ⭐ <script> Independent block, not mixed with visible HTML / supports dynamic JS injection / easy to write even with deep nesting Decoupled from visible HTML,prone to desynchronization First choice
Microdata Tightly coupled with visible HTML Engineering-heavy / high error rate For legacy site maintenance
RDFa HTML5 extension / supports linked data Complex For experienced users

1.3 5 quality guidelines ⭐⭐⭐

A. Content

  • Comply with the spam policy
  • Keep it up to date(Google will not display outdated information)
  • Original content(written by yourself or user-generated)
  • ❌ Do not mark invisible content(if there is a performer field in JSON-LD, it must exist in the HTML body)
  • ❌ Do not mark irrelevant / misleading content(fake reviews / content unrelated to the page topic)
  • ❌ Do not impersonate / mislead about identity / affiliation / primary purpose

B. Relevance

SD must truly represent the page:

  • ❌ A live sports site marks a broadcast as a local event
  • ❌ A woodworking site marks a tutorial as a recipe

C. Completeness

  • You must fill in required fields to be eligible to show rich results
  • The more recommended fields you fill in → the higher the quality → rich result ranking bonus(job seekers prefer job postings with marked salaries; recipes with real user reviews get a bonus)

D. Location

  • SD must be placed on the page it describes
  • Duplicate pages (http and https / www and non-www)must have the same SD marked on both versions

E. Specificity

  • Use the most specific type / property in schema.org (use NewsArticle instead of CreativeWork)
  • Check additional guidance in specific feature documentation

F. Images

  • Images must be relevant to the page(NewsArticle.image must match news content)
  • Image URLs must be crawlable and indexable

1.4 2 patterns for multiple items on one page

Pattern 1: Nesting — the main item nests sub-items, suitable for closely related scenarios:

{
  "@type": "Recipe",
  "name": "Banana Bread",
  "aggregateRating": { "@type": "AggregateRating", "ratingValue": 4.7, "ratingCount": 123 },
  "video": { "@type": "VideoObject", "name": "How To...", "contentUrl": "..." }
}

Pattern 2: Link independent items with @id to link independent items — suitable for scenarios with multiple independent items:

[
  { "@type": "Recipe", "@id": "https://example.com/banana-bread", "name": "..." },
  { "@type": "BreadcrumbList", "itemListElement": [...] }
]

⚠️ If you do not use @id to link, Google may not know that the video is about the recipe.

1.5 Unlock multiple rich results with main type + auxiliary types

Example: A recipe page:

  • Main:Recipe
  • Auxiliary:Video + Review + BreadcrumbList

→ Can be "eligible" to show recipe rich results / video search / review snippets at the same time.

1.6 5 steps for testing + deployment

1. 加上必填的属性
2. 遵守指南
3. 用 Rich Results Test 验证语法
4. 部署后用 URL Inspection 工具看 Google 渲染后的版本
5. 提交 sitemap;在 Search Console 的 Rich Results status report 里跟进

1.7 Monitoring

Search Console → Rich result status reports(Rich result status reports, one report per type). After fixing issues → submit a review.

1.8 SD spam will result in manual actions

If an issue occurs → you lose eligibility for rich results,but this does not affect your ranking in regular web search. Check in the Manual Actions report(Manual Actions report) in Search Console.


Part 2 — Complete Overview of 34 Types ⭐⭐⭐

Each entry marks required(core fields) + gotcha(common pitfalls) + search appearance(appearance in search results). For the full field table → click the type name to link to Google's official documentation.

2.1 News / Article Types

Article / NewsArticle / BlogPosting

  • Required:headline(headline) + image(three aspect ratios: 1x1 / 4x3 / 16x9) + datePublished(date published) + dateModified(date modified) + author(Person or Organization, must contain the url field; it cannot have only name)
  • gotcha:author.name must match the visible byline on the page; an organization is also acceptable as the author
  • Appearance: title link / large image / byline date / Top stories candidate

Speakable(Speakable for news)

  • Required:cssSelector or xPath, pointing to speakable passages on the page
  • Applicable: news only + en-US / en-CA / en-AU / en-IE / en-NZ / en-UK 6 regions
  • gotcha: short passages totaling ≤30 seconds, only headline and introduction

Subscription / Paywalled Content(Subscription / paywalled content)

  • Required: add NewsArticle on isAccessibleForFree: false + hasPart: { @type: "WebPageElement", isAccessibleForFree: false, cssSelector: "#paywall" }
  • gotcha: You must use structured data markup; otherwise Googlebot sees the full content but users do not = cloaking violation

FactCheck(Fact check)

  • Required:ClaimReview contains claimReviewed + reviewRating
  • gotcha: The site must clearly be a professional fact-checking site (independent third party)

2.2 E-commerce Types

Product + ProductGroup

  • 2 major categories:
    • Product snippet — Review pages (cannot purchase directly)
    • Merchant listing — Product pages available for purchase (supports size / shipping / return)
  • Overlap: The required product information for Merchant listings usually automatically also "qualifies" for Product snippets
  • Variants → use ProductGroup + child Product

Product Snippet(Review / comparison pages)

  • Emphasize pros(pros) + cons(cons)
  • Rich review information

Merchant Listing(Purchasable)

  • size / shipping / return / availability, etc.

Product Variants(Product variants)

  • ProductGroup parent + multiple Product children (one independent URL per variant)
  • Helps Google understand which items are "the same product in different sizes/colors"

Review Snippet(Review snippet)

  • Applies to:Book / Recipe / Movie / Product / SoftwareApp / LocalBusiness
  • Required:reviewRating + author + itemReviewed
  • ⚠️ Ratings must come from real users;fake 5-star ratings → manual action

Return Policy(Return policy, attached to Organization)

  • Nested inside Organization in
  • Unlocks result enhancements, displays return policy in search results

Shipping Policy(Shipping policy, attached to Organization)

  • Nested inside Organization in
  • Displays shipping cost / free shipping / delivery time

Loyalty Program(Loyalty points policy, attached to Organization)

  • Nested inside Organization in
  • Displays points / membership program

2.3 Organization Types

Organization

  • Required:name(organization name) + url + logo(image)
  • Optional:contactPoint / sameAs / legalName / taxID / iso6523Code / address
  • Appearance: Knowledge Panel

LocalBusiness(Local business)

  • Subtypes:Restaurant(Restaurant) / Hotel(Hotel) / Store(Store), etc.
  • Required:name + image + address(PostalAddress) + priceRange(price range) + usually also openingHoursSpecification(opening hours)
  • Appearance: Displays opening hours / ratings / directions / reservation/order buttons in the Knowledge Panel

2.4 Job Posting Types

JobPosting(Job posting)

  • Required:title(job title) + description(full HTML description) + datePosted + hiringOrganization + jobLocation or applicantLocationRequirements
  • Strongly recommended:baseSalary(Job postings with marked salary get a ranking boost)
  • gotcha:validThrough(valid through) must be set; after expiration it will be automatically removed from job search; failing to remove expired postings will trigger a manual action; the site must have real, open positions to apply for, no spam allowed

Employer Aggregate Rating(Employer aggregate rating)

  • Nested under Organization to represent employer rating
  • Data requires reviews from multiple users

2.5 Entertainment Types

Movie(Movie)

  • Required:name + image + dateCreated(release date)
  • Single page / carousel
  • Nested aggregateRating / director / actor

Event(Event, enriched search!)

  • Required:name + startDate + location
  • Offline events:location.@type = Place + address
  • Online events:location.@type = VirtualLocation + url
  • Mixed type: use an array
  • eventStatus(event status):EventScheduled(scheduled) / EventRescheduled(rescheduled) / EventCancelled(cancelled) / EventPostponed(postponed) / EventMovedOnline(moved online)
  • gotcha: Must be a leaf page (a page for a single event); listing pages are invalid

Carousel(Carousel, used in combination)

  • It is not an independent type;it must be combined with one of the following: 4 types: Recipe / Course / Restaurant / Movie
  • Use ItemList + itemListElement
  • Multiple items from the same site displayed as one carousel

Carousels Beta(New feature carousel)

  • Multi-site carousel (from sites other than a single site)
  • Still in beta (testing) phase

Vacation Rental(Vacation rental)

  • Required:name + image + address + containsPlace + latitude/longitude + numberOfRooms etc.
  • gotcha: Access has application requirements; you must first apply to join the program

2.6 Food & Beverage Category

Recipe(Recipe, enriched search!)

  • Required:name + image + recipeIngredient(Ingredients) + recipeInstructions(Step-by-step instructions)
  • Strongly recommended:nutrition(Nutrition) + aggregateRating + video + prepTime/cookTime/totalTime(In ISO 8601 format, e.g. PT1H30M)
  • Single page / same-site carousel
  • Enriched: Users can search by calories/time

2.7 Education & Science Category

Course + Course List

  • For a single course use Course
  • For a carousel of multiple courses use ItemList contains Course child
  • Required:name + description + provider

Education Q&A(Educational Q&A)

  • Education card format (for student learning)
  • Required:QAPage or Quiz + complete Q&A content

Math Solvers(Math solver)

  • Helps students find step-by-step solutions to math problems
  • Required:MathSolver contains mathExpression + subjectOf(Solution walkthrough)

Dataset(Dataset)

2.8 Q&A / Forum / General Category

FAQPage ⚠️ Major change

⚠️ Starting 2026-05-07, FAQ rich results will no longer be displayed. Tool will be removed in 2026-06. Search Console API support will be removed in 2026-08. New sites do not need to add it, existing sites may keep it.

  • History: Only government / authoritative medical sites were eligible for rich results (scope already restricted since 2023)
  • Alternative: Use QAPage(Single question with multiple user answers)

QAPage(Q&A page)

  • 1 question + multiple user answers (forum / Stack Overflow / Quora style)
  • Required:Question + at least 1 Answer(can be acceptedAnswer accepted or suggestedAnswer recommended)
  • gotcha:Must have real user questions + real answers, auto-generated FAQs are not allowed

Discussion Forum(Forum discussion)

  • Short-form UGC (user-generated content, forum posts) + threaded or non-threaded discussions
  • Required:DiscussionForumPosting contains headline + text + author + datePublished
  • gotcha: For comments use Comment nesting

Profile Page(Personal / organization profile page)

  • Pages about a single person / organization (associated with the site)
  • Required:ProfilePage + includes mainEntity is Person or Organization
  • gotcha: Used for filters such as Perspectives

2.9 General / Cross-domain Category

  • Required:itemListElement array, each ListItem contains position + name + item(URL, the last item may omit the item)
  • Display format: Breadcrumbs are shown in search results instead of the URL
  • Multiple breadcrumb paths: The same page may have multiple BreadcrumbList(when there is more than one display path)

Video(Video,VideoObject)

Book(Book)

  • For a single book use Book or for a series use BookSeries
  • Required:name + author + workExample(one per edition/format Book)
  • Suitable for book review sites / publishers

Software App(Software application)

  • Required:name + applicationCategory + operatingSystem + offers or aggregateRating

Image License Metadata(Image copyright metadata)

  • Add image metadata to help Google Images display author / usage license / credit information
  • Required(added on ImageObject ):creator + creditText + copyrightNotice + license(URL pointing to the license page) + acquireLicensePage(URL pointing to the purchase/obtain license page)

Only 4 types can be used for single-site carousels (wrapped with ItemList ):

  1. Recipe(Recipe) carousel
  2. Course(Course) carousel
  3. Restaurant(LocalBusiness subclass, restaurant) carousel
  4. Movie(Movie) carousel

Format:

{
  "@context": "https://schema.org",
  "@type": "ItemList",
  "itemListElement": [
    { "@type": "ListItem", "position": 1, "url": "https://example.com/recipe-1" },
    { "@type": "ListItem", "position": 2, "url": "https://example.com/recipe-2" }
  ]
}

Each listItem's URL must point to an independent leaf page(with complete SD on that page).


Part 3 — Generating SD with JavaScript

3.1 Two approaches

A. Google Tag Manager(GTM):

  1. Install GTM
  2. Add a Custom HTML tag → paste in JSON-LD
  3. Publish the container
  4. Use GTM variables to extract data from the page (to prevent SD from being out of sync with page content)
    function() { return document.title; }
    

B. Custom JS:

3.2 ⚠️ Special pitfalls for Product-type SD + JS

Shopping crawl frequency will decrease + reliability will worsen, which is a problem for rapidly changing content (inventory / price).

Fix:

  • Prioritize server-side rendering(server-side render) Product-type SD
  • The server must have sufficient capacity to handle increased crawl from Google

3.3 Testing

Use the URL Inspection tool to check post-render HTML to confirm SD is actually present.


Part 4 — Image License Metadata Explained

4.1 Purpose

Lets Google Images display:

  • image author,
  • license,and credit
  • How to use(free / paid)
  • Attribution(credit)
  • URL of the page to obtain a license

4.2 5 required / recommended fields (added on ImageObject )

Field Meaning
creator Person or Organization, with name
creditText displayed attribution (may differ from creator)
copyrightNotice © Brand Name 2024 copyright notice in the form of a
license URL pointing to the license page
acquireLicensePage URL pointing to the purchase / obtain license page

4.3 Implementation examples

{
  "@context": "https://schema.org/",
  "@type": "ImageObject",
  "contentUrl": "https://example.com/image.jpg",
  "license": "https://example.com/license",
  "acquireLicensePage": "https://example.com/how-to-license",
  "creditText": "Labrador by Andy Wong",
  "creator": { "@type": "Person", "name": "Andy Wong" },
  "copyrightNotice": "© 2024 Andy Wong"
}

Part 5 — Collection of Anti-patterns (Common Mistakes)

# Anti-pattern Consequence
1 Marking invisible content (JSON states there is a performer / HTML does not) Triggers manual penalty, loses rich result eligibility
2 Marking misleading / irrelevant content (fake reviews) Same as above
3 Use data-vocabulary.org Completely invalid(deprecated in 2020)
4 Microdata / RDFa / JSON-LD Mixing the same type Google gets confused and only selects the most complete one
5 Only filling required fields, leaving all recommended fields empty Low rich result ranking
6 Filling all recommended fields but inaccurate / incomplete Worse than filling fewer fields
7 Placing SD on irrelevant pages(e.g. BreadcrumbList describing a different page) Invalid
8 Duplicate pages (http and https / www and non-www)must have the same SD marked on both versions; do not add SD only on the canonical page and not on duplicate pages Both versions must have the same SD added
9 Using broad CreativeWork instead of specific NewsArticle Loss of specificity
10 Multiple reviews / FAQs but only marking a subset Misleading, triggers manual penalty
11 Still expecting FAQ rich results (discontinued 2026-05-07) Wasted effort — use QAPage / change to Article instead
12 Expecting Speakable to support all languages Limited to 6 English regions (en-US/CA/AU/IE/NZ/UK)
13 JobPosting does not set validThrough Expired positions still displayed → manual penalty
14 Product-type SD generated with JS but not SSR Shopping crawl frequency drops, inventory / prices inaccurate
15 Paywalled content not marked with SD Treated as cloaking spam
16 Vacation Rental SD added without applying to join the program Invalid
17 Marked Image License but no real license exists Triggers manual penalty

Part 6 — Complete Type Index (34 types)

Type Link Category
Article / NewsArticle / BlogPosting docs News / Sports
Book docs Entertainment
Breadcrumb docs General
Carousel docs Used in combination with Recipe / Course / Movie / Restaurant
Carousels Beta docs Beta
Course / Course List docs Education
Dataset docs Education
Discussion Forum docs UGC
Education Q&A docs Education
Employer Aggregate Rating docs Recruitment
Event docs Entertainment
FactCheck docs News
FAQPage ⚠️ Discontinued (2026-05-07) docs (Discontinued)
Image License Metadata docs General
Job Posting docs Recruitment
Local Business docs Organization
Loyalty Program docs E-commerce
Math Solvers docs Education
Merchant Listing docs E-commerce
Movie docs Entertainment
Organization docs Organization
Paywalled Content docs News
Product docs E-commerce
Product Snippet docs E-commerce
Product Variants docs E-commerce
Profile Page docs General
Q&A Page docs UGC
Recipe docs Food & Beverage
Return Policy docs E-commerce
Review Snippet docs E-commerce / Reviews
Shipping Policy docs E-commerce
Software App docs General
Speakable docs News (limited to 6 English regions)
Vacation Rental docs Application required
Video docs General

Part 7 — Tools

Tool Purpose
Rich Results Test Google-specific validation + preview
Schema Markup Validator General schema.org validation (excludes Google-specific warnings)
Search Console Rich result status reports Monitor errors for a specific type after deployment
Search Console URL Inspection Check what Google actually received for a single URL

⚠️ Structured Data Testing Tool has migrated to Schema Markup Validator (migrated 2020-12).


Part 8 — Related Wiki

Last updated

2026-05-17 — Compiled based on 40 articles in Google Search Central's appearance/structured-data series (latest from 2024-10 to 2026-05).Major change: FAQ rich results will be discontinued starting 2026-05-07.

Sources and related materials