Overview
schema.org has hundreds of types; Google supports about thirty for rich results. This card lists the ones worth shipping, the fields each one needs, and the rich result it can earn. Ship JSON-LD in a <script type="application/ld+json"> block; Google prefers it over Microdata or RDFa. For the broader rules, see structured-data.
Top-level types
The types most pages need.
| Type | Use for | Rich result enabled |
|---|---|---|
Article / NewsArticle / BlogPosting | Editorial content. | Article carousel, Top Stories. |
Product | E-commerce product page. | Product snippet, Merchant listings. |
LocalBusiness | Storefront with an address. | Knowledge panel, Maps placement. |
Organization | Company-level entity. | Sitelinks, knowledge panel. |
Person | Individual contributor or public figure. | Knowledge panel. |
Recipe | Cooking recipe. | Recipe rich result. |
Event | Concert, conference, meetup. | Event listing. |
FAQPage | Page of question-and-answer pairs. | Once shown as expandable; now mostly retired by Google. |
HowTo | Step-by-step tutorial. | HowTo rich result (mostly retired in 2023 except for some queries). |
VideoObject | Hosted video. | Video carousel, key moments. |
BreadcrumbList | Site hierarchy for the page. | Breadcrumbs in search snippet. |
WebSite | Site-level metadata. | Sitelinks search box. |
JobPosting | Open role. | Google Jobs. |
Course | Educational offering. | Course list. |
SoftwareApplication | App or game listing. | App rich result. |
Review / AggregateRating | Standalone review or ratings summary. | Star ratings (limited; must be on a host type). |
FAQPage and HowTo still validate but have lost most of their rich-result impact. Ship them only if they help structure the content for AI summarizers.
Article
For editorial pages: blog post, news story, magazine feature.
| Field | Required | Notes |
|---|---|---|
@type | yes | Article, NewsArticle, or BlogPosting. |
headline | yes | Maximum 110 characters. |
image | yes | At least one; high-res preferred (1200x675 16:9). |
datePublished | yes | ISO 8601. |
dateModified | recommended | ISO 8601; powers freshness signals. |
author | required | Person or Organization; include url. |
publisher | recommended | Organization with name and logo.url. |
mainEntityOfPage | recommended | Canonical URL of the page. |
author as a string still validates; Google prefers a full Person with url and sameAs.
Product
For commerce. Pair Product with one of Offer, AggregateOffer, or a review subgraph.
| Field | Required | Notes |
|---|---|---|
@type | yes | Product. |
name | yes | Product name. |
image | yes | At least one URL. |
description | recommended | One paragraph. |
sku / gtin / mpn | strongly recommended | One unique identifier; required for Merchant listings. |
brand | recommended | Brand or Organization. |
offers | required for snippet | Offer with price, priceCurrency, availability, url. |
aggregateRating | optional | Drives stars in SERP. |
review | optional | Individual Review items. |
Offer.availability uses https://schema.org/InStock, OutOfStock, PreOrder, or Discontinued. The full URL is required, not the short token.
LocalBusiness
For brick-and-mortar businesses. Use a more specific subtype when one fits: Restaurant, Dentist, AutoRepair, etc.
| Field | Required | Notes |
|---|---|---|
@type | yes | LocalBusiness or a subtype. |
name | yes | Business name. |
address | yes | PostalAddress with all fields. |
telephone | recommended | E.164 format preferred. |
geo | recommended | GeoCoordinates with latitude, longitude. |
openingHoursSpecification | recommended | Array of OpeningHoursSpecification. |
priceRange | recommended | $, $$, etc. |
image | required for some panels | Storefront or logo. |
url | yes | Canonical URL. |
A LocalBusiness block on every location page is the strongest signal for local pack placement.
Organization
Site-wide entity. Place once on the home page; reference it elsewhere by @id.
| Field | Required | Notes |
|---|---|---|
@type | yes | Organization or Corporation. |
name | yes | Legal or operating name. |
url | yes | Canonical home URL. |
logo | recommended | Square or near-square; minimum 112x112. |
sameAs | recommended | Array of social profile URLs (LinkedIn, X, Wikipedia). |
contactPoint | recommended | ContactPoint with telephone and contactType. |
sameAs populates the knowledge panel; ship every official profile.
VideoObject
For hosted video. Most rich results require a thumbnail and upload date.
| Field | Required | Notes |
|---|---|---|
@type | yes | VideoObject. |
name | yes | Title. |
description | yes | Maximum 5000 characters. |
thumbnailUrl | yes | At least one; multiple aspect ratios help. |
uploadDate | yes | ISO 8601. |
contentUrl | recommended | Direct file URL. |
embedUrl | recommended | Embeddable player URL. |
duration | recommended | ISO 8601 duration: PT2M30S. |
hasPart | optional | Clip items for key moments. |
hasPart with timed Clip entries unlocks “key moments” navigation in the SERP.
BreadcrumbList
Cheap to add; usually shows up in the SERP.
| Field | Required | Notes |
|---|---|---|
@type | yes | BreadcrumbList. |
itemListElement | yes | Array of ListItem. |
ListItem.position | yes | 1-based. |
ListItem.name | yes | Display label. |
ListItem.item | yes | Canonical URL of the level. |
Position numbers must be contiguous starting at 1; gaps invalidate the markup.
Common gotchas
- Pages must show what the markup claims. If a
Productblock lists a price the page does not show, Google flags it as misleading. ReviewandAggregateRatingneed a host type (Product,LocalBusiness, etc.); free-floating reviews do not earn stars.- Use Google’s Rich Results Test, not just the schema.org validator. The latter accepts more than the former rewards.
FAQPageandHowTomostly stopped earning rich results in 2023. They still help LLM summarizers parse the page.- Use full schema URLs for enumerated values:
https://schema.org/InStock, notInStock. - Place
@idon theOrganizationblock and reference it frompublisherandauthor.worksForto avoid duplicating entity data. - Use
JSON-LDover Microdata. It is easier to maintain, easier to template, and the preferred format.