Structured Data & Rich Results
Structured data (schema markup) helps search engines understand the content and context of your pages. It enables rich results in SERPs — enhanced displays that can improve CTR and visibility.
After this lesson you can implement and validate Organization, Article, Product, Breadcrumb, FAQ, and LocalBusiness schema, then verify rich result eligibility in Google Search Console.
This lesson covers the eight schema areas (leaves 3.8.1–3.8.8): Organization schema, Article schema, Product schema, Breadcrumb schema, FAQ schema, LocalBusiness schema, schema validation, and rich result eligibility review.
Why This Matters
- Rich results (review stars, FAQ accordions, product prices, breadcrumbs, events) stand out in SERPs, improving visibility and CTR.
- Structured data helps search engines understand your content more accurately, which may improve relevance signals (not a direct ranking factor, but supports entity understanding). Structured data enables rich results and entity recognition but does not directly improve rankings.
- Schema markup enables eligibility for emerging features (Google AI Overviews may use structured data for citations).
Organization Schema
Organization schema provides Google with structured information about your business entity.
Properties marked as Required are mandated by Schema.org specification. Properties marked as Google-required are needed for specific rich result eligibility. Properties marked as Recommended are optional but improve completeness.
Required properties:
| Property | Description | Example |
|---|---|---|
name | Organization name | "Acme Corporation" |
url | Official website URL | "https://www.acme.com" |
logo | URL to the organization's logo | "https://www.acme.com/logo.png" |
Recommended properties:
| Property | Purpose |
|---|---|
sameAs | Links to official social profiles (Facebook, LinkedIn, Twitter/X, Instagram, YouTube, Wikipedia) |
description | Brief description of the organization |
contactPoint | Contact information (phone, email) |
address | Physical address (for businesses with a physical location) |
foundingDate | Year founded |
numberOfEmployees | Employee count (for larger organizations) |
Organization schema implementation:
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Example Corp",
"url": "https://www.example.com",
"logo": "https://www.example.com/logo.png",
"sameAs": [
"https://www.facebook.com/examplecorp",
"https://www.linkedin.com/company/examplecorp",
"https://twitter.com/examplecorp"
],
"contactPoint": {
"@type": "ContactPoint",
"telephone": "+1-800-555-0199",
"contactType": "customer service"
}
}
Article Schema
Article schema (and its subtypes NewsArticle, BlogPosting) provides structured information about article content.
Properties marked as Schema.org are mandated by specification. Properties marked as Google are required for Article rich result eligibility (Top Stories, AMP). Properties marked as Recommended are optional.
Required properties:
| Property | Requirement | Description |
|---|---|---|
headline | Schema.org | The article title |
datePublished | Schema.org | Publication date in ISO 8601 format |
author | Schema.org (at minimum author.name) | Author information (Person or Organization) |
image | Google (for rich results) | Article featured image URL — required for Top Stories and AMP article rich results |
dateModified | Google (for rich results) | Last modification date in ISO 8601 |
publisher | Google (for AMP/Top Stories) | Publishing organization with name and logo — required for certain rich result types |
Recommended properties:
| Property | Purpose |
|---|---|
description | Article excerpt or description |
mainEntityOfPage | Canonical URL of the article |
wordCount | Article word count |
Article schema note for AMP: If using AMP with Article schema, ensure properties follow AMP requirements. For standard pages, JSON-LD format is sufficient.
Product Schema
Product schema provides detailed product information for rich results and Google Shopping.
Properties marked as Schema.org are mandated by specification. Properties marked as Google are required for Product rich result eligibility (product snippets in SERPs). Properties marked as Recommended are optional.
Required properties:
| Property | Requirement | Description |
|---|---|---|
name | Schema.org | Product name |
offers | Schema.org | Offer details including price and availability |
Offer sub-properties (within offers):
| Property | Requirement | Description |
|---|---|---|
price | Schema.org + Google | Product price — required by both Schema.org spec and Google for rich results |
priceCurrency | Schema.org + Google | Currency code (ISO 4217) — required by both |
availability | Schema.org + Google | https://schema.org/InStock or https://schema.org/OutOfStock — required by both |
url | Google (recommended) | Direct product URL |
itemCondition | Google (recommended) | NewCondition, UsedCondition, RefurbishedCondition |
Recommended properties:
| Property | Purpose |
|---|---|
description | Product description |
image | Product image URL (multiple allowed) |
brand | Brand name |
aggregateRating | Product rating (if reviews available) |
review | Product review |
sku | Stock keeping unit |
gtin | Global Trade Item Number (GTIN-8, GTIN-12, GTIN-13, GTIN-14) |
mpn | Manufacturer part number |
Product schema implementation:
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Widget Pro 2000",
"description": "A high-quality widget for professional use.",
"image": "https://www.example.com/widget-pro-2000.jpg",
"brand": {"@type": "Brand", "name": "ExampleBrand"},
"offers": {
"@type": "Offer",
"price": "199.99",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"url": "https://www.example.com/widget-pro-2000"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.5",
"reviewCount": "120"
}
}
Breadcrumb Schema
BreadcrumbList schema generates breadcrumb rich results in SERPs, showing users where a page sits in the site hierarchy.
Implementation:
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://www.example.com"
},
{
"@type": "ListItem",
"position": 2,
"name": "Products",
"item": "https://www.example.com/products"
},
{
"@type": "ListItem",
"position": 3,
"name": "Widgets",
"item": "https://www.example.com/products/widgets"
}
]
}
Breadcrumb schema notes:
itemis optional for the last breadcrumb (the current page).- Use absolute URLs for
item. - Maintain breadcrumb order from homepage to current page.
- Breadcrumb schema works independently of UI breadcrumbs — but they should match.
FAQ Schema
Important — As of 2024, Google has significantly restricted FAQ rich results. They now primarily appear only for well-known, authoritative government and health websites. For most sites, FAQ schema will not produce rich results. Implement it only if your site qualifies and you want to provide structured content understanding to search engines.
FAQ schema provides structured Q&A markup for pages with frequently asked questions.
Requirements:
| Requirement | Description |
|---|---|
| Minimum questions | When FAQ rich results were widely available, Google required at least 2 Q&A pairs. As of 2024, FAQ rich results are heavily restricted to authoritative government/health sites only. |
| Content visible | Questions and answers must be visible to users on the page |
| One FAQPage per page | Do not combine multiple FAQPage sections on one page |
| No FAQ within FAQ | Nesting is not supported |
| Answer can include basic HTML | Text, lists, images are acceptable |
Implementation:
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What is your return policy?",
"acceptedAnswer": {
"@type": "Answer",
"text": "We accept returns within 30 days of delivery."
}
},
{
"@type": "Question",
"name": "Do you ship internationally?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes, we ship to over 50 countries worldwide."
}
}
]
}
When to use FAQ schema:
- Your site qualifies as a well-known, authoritative government or health website (primary FAQ rich result eligibility as of 2024).
- On qualifying sites: service pages, product pages, help center pages.
- For most sites, FAQ rich results are heavily restricted and unlikely to appear.
LocalBusiness Schema
LocalBusiness schema (and subtypes: Restaurant, Dentist, Store, etc.) provides location-specific business information.
Properties marked as Schema.org are mandated by specification. Properties marked as Google are required for Local Business rich result eligibility. Properties marked as Recommended are optional.
Required properties:
| Property | Requirement | Description |
|---|---|---|
name | Schema.org | Business name |
address | Schema.org + Google | Physical address (PostalAddress) — required by both |
telephone | Schema.org + Google | Business phone number — required by both |
Recommended properties:
| Property | Purpose |
|---|---|
geo | Latitude and longitude coordinates |
openingHoursSpecification | Business hours |
priceRange | Price indicator ($, $$, $$$) |
image | Business photos |
url | Business website |
aggregateRating | Customer rating |
sameAs | Social profiles |
| Property | Purpose |
|---|---|
geo | Latitude and longitude coordinates |
openingHoursSpecification | Business hours |
priceRange | Price indicator ($, $$, $$$) |
image | Business photos |
url | Business website |
aggregateRating | Customer rating |
sameAs | Social profiles |
Multi-location implementation:
For businesses with multiple locations, each location gets its own LocalBusiness schema. Use a parentOrganization property or Organization schema as a wrapper.
Schema Validation
Schema validation ensures your markup is syntactically correct, complete with required properties, and eligible for rich results.
Validation tools:
| Tool | Purpose | Best For |
|---|---|---|
| Google Rich Results Test | Tests if a page is eligible for rich results | Rich result eligibility check |
| Schema Markup Validator (formerly Structured Data Testing Tool) | Validates schema syntax and property correctness | Full schema validation |
| GSC Enhancements reports | Shows schema validation status for indexed pages | Ongoing monitoring |
| Schema.org validator | Validates against schema.org vocabulary | Technical schema validation |
Validation workflow:
- Test a sample page in the Rich Results Test.
- Check for errors (required properties missing, incorrect types) and warnings (recommended properties missing).
- Fix errors and re-test.
- Deploy to production.
- Monitor GSC Enhancements reports for validation issues.
Common validation errors:
| Error | Cause | Fix |
|---|---|---|
| Missing required property | Required field not present | Add the required property |
| Incorrect property type | Value format does not match expected type | Check schema.org definition for correct type |
| Unrecognized property | Property name is misspelled or not part of the schema type | Use correct vocabulary from schema.org |
| Missing or invalid URL | URL is relative, malformed, or returns 4xx | Use absolute URL, verify URL is valid |
| Item not reviewed | Google has not yet reviewed the markup | Wait for recrawl, or submit updated sitemap |
Rich Result Eligibility Review
Not all schema types produce rich results. Eligibility review identifies which pages can qualify for enhanced SERP display.
Rich result types and schema requirements:
| Rich Result Type | Schema Type | GSC Enhancement Report |
|---|---|---|
| Review snippet | Review, AggregateRating | Review Snippet |
| Recipe card | Recipe | N/A |
| Product | Product | Product |
| FAQ | FAQPage | FAQ (restricted to authoritative government/health sites as of 2024) |
| How-To | HowTo | How-to |
| Event | Event | Event |
| Job posting | JobPosting | Job Posting |
| Local business | LocalBusiness | Local Business |
| Breadcrumb | BreadcrumbList | Breadcrumbs |
| Sitelinks search box | WebSite (with potentialAction) | Sitelinks Search Box |
Eligibility checklist:
| Check | Question |
|---|---|
| Schema type matches Google's rich result documentation | Is the schema type listed in Google's rich result gallery? |
| All required properties are present | Does the schema include all required properties for the rich result type? |
| Content is visible to users | Is the marked-up content visibly displayed on the page? |
| Page content matches schema | Does the text content on the page match the values in the schema? |
| No prohibited practices | Is there any cloaking, invisible content, or misleading schema? |
Workflow
- Identify schema opportunities: For each page type, determine which schema types are applicable (Product for product pages, FAQ for qualifying authoritative government/health sites, etc.).
- Implement schema: Add JSON-LD to the
<head>or body of each page. - Validate: Test with Rich Results Test before deployment.
- Deploy: Roll out schema changes to production.
- Monitor: Check GSC Enhancements reports regularly for validation issues.
- Iterate: Add new schema types as content types evolve.
Common Mistakes
Adding schema markup for content not visible to users: This violates Google guidelines and can result in manual action.
- Using schema types that do not match the page content: A blog post should not have Product schema; a product page should not have Article schema.
- Missing required properties for rich result eligibility: Adding Product schema without price and availability will not produce product rich results.
- Combining multiple schema types incorrectly: Use
@graphor nested types properly; avoid conflicting properties. - Not monitoring GSC Enhancement reports: Schema errors can persist for months if not monitored.
Checklist
- Organization schema is implemented with name, URL, logo, and sameAs.
- Article schema is on all article/blog pages with headline, datePublished, author.
- Product schema is on all product pages with name, price, availability, brand.
- BreadcrumbList schema is on all relevant pages.
- FAQPage schema is on pages with FAQ content (minimum 2 Q&A), noting that FAQ rich results are restricted to authoritative government/health sites as of 2024.
- LocalBusiness schema is on location/city pages.
- Schema validates in Rich Results Test with no errors.
- GSC Enhancements reports show no errors or warnings.
- Schema content matches visible page content.
- Schema is consistently implemented across all relevant pages.