Schema markup is JSON-LD code that explicitly tells search engines and AI systems what type of content your page contains. Without it, Google infers your content structure from HTML patterns and context. With it, you're removing guesswork.
Not all schema types are equal. Some unlock rich results in Google Search. Some improve AI citation rates. Some are just technically correct but do nothing visible. Here are the ten types worth your time.
1. Article / BlogPosting
Best for: Blog posts, news articles, editorial content
Article schema tells Google and AI systems that your page is a piece of written content, who wrote it, and when. The most important fields for E-E-A-T: author (with sameAs linking to their About page or social profiles), datePublished, and dateModified.
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Your Article Title",
"author": {
"@type": "Person",
"name": "Jane Smith",
"sameAs": "https://yoursite.com/about-jane"
},
"datePublished": "2025-04-18",
"dateModified": "2025-04-18",
"publisher": {
"@type": "Organization",
"name": "Your Site",
"logo": { "@type": "ImageObject", "url": "https://yoursite.com/logo.png" }
}
}
2. FAQPage
Best for: Any page with a questions-and-answers section
FAQPage schema has two distinct benefits: Google rich results (expandable Q&A below your search result) and AI citation rates. In testing, FAQ-marked pages get cited by AI systems 3-4x more often than equivalent pages without it. This is the highest-ROI schema type I know of.
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [{
"@type": "Question",
"name": "What is schema markup?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Schema markup is structured data code (JSON-LD) added to web pages to help search engines understand their content."
}
}]
}
3. HowTo
Best for: Step-by-step tutorial content
HowTo schema unlocks rich results showing steps directly in Google Search, with the potential for images next to each step. It's competitive in the home improvement, cooking, and tech tutorial niches. The steps must be genuinely present in the visible page content — you can't add HowTo schema to a page that just mentions a process.
{
"@context": "https://schema.org",
"@type": "HowTo",
"name": "How to Add Schema Markup",
"step": [
{ "@type": "HowToStep", "text": "Choose your schema type from Schema.org" },
{ "@type": "HowToStep", "text": "Generate the JSON-LD code" },
{ "@type": "HowToStep", "text": "Add the script tag to your page head" },
{ "@type": "HowToStep", "text": "Validate with Google's Rich Results Test" }
]
}
4. Product
Best for: E-commerce product pages
Product schema enables price, availability, and rating information to show in Google Shopping and organic search. Google has become very strict about Product schema — incorrect or misleading data gets flagged fast. Always include offers with current price and availability.
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Product Name",
"description": "Brief description",
"offers": {
"@type": "Offer",
"price": "29.99",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.7",
"reviewCount": "234"
}
}
5. LocalBusiness
Best for: Physical businesses, service area businesses
LocalBusiness schema reinforces your Google Business Profile data and helps Google associate your website content with your local entity. Include NAP (name, address, phone), hours, and geo coordinates. The sameAs field connecting to your GBP URL and social profiles strengthens entity association.
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Business Name",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main St",
"addressLocality": "City",
"addressRegion": "State",
"postalCode": "12345"
},
"telephone": "+1-555-123-4567",
"openingHours": "Mo-Fr 09:00-17:00"
}
6. Review / AggregateRating
Best for: Reviews pages, comparison content, product reviews
Review schema enables star ratings in search results, which significantly improves CTR — studies show 5-30% CTR improvement for results with star ratings. Use AggregateRating for overall scores and Review for individual reviews. Google has strict policies: you can't use this schema for self-reviews or paid reviews.
7. BreadcrumbList
Best for: Any site with a clear hierarchy (e-commerce categories, blog categories, documentation)
BreadcrumbList schema shows your site hierarchy in Google search results (Home > Category > Page). This replaces the URL in the snippet, which is often more readable and descriptive. It also helps Google understand your site structure.
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://yoursite.com/" },
{ "@type": "ListItem", "position": 2, "name": "Blog", "item": "https://yoursite.com/blog/" },
{ "@type": "ListItem", "position": 3, "name": "Article Title", "item": "https://yoursite.com/blog/article/" }
]
}
8. Event
Best for: Online and in-person events, webinars, conferences
Event schema enables rich results with event dates, locations, and ticket information. Required fields: name, startDate, location. Google shows event rich results prominently for event-related searches. Include eventStatus and eventAttendanceMode to distinguish online from in-person events.
9. VideoObject
Best for: Pages with embedded videos
VideoObject schema enables video rich results in Google Search and video carousels. At minimum include: name, description, thumbnailUrl, uploadDate. The duration field (in ISO 8601 format, like PT5M30S for 5 minutes 30 seconds) helps Google display video length in results.
10. SoftwareApplication
Best for: Web apps, SaaS tools, downloadable software
SoftwareApplication schema enables software-specific rich results including price, operating system, and rating. For SaaS tools with free tiers, set offers with a price of "0" and add the paid tier in a second offer. Include applicationCategory (e.g., "WebApplication") and operatingSystem ("Web browser").
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "Tool Name",
"applicationCategory": "WebApplication",
"operatingSystem": "Web browser",
"offers": { "@type": "Offer", "price": "0", "priceCurrency": "USD" },
"aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.8", "ratingCount": "150" }
}
Implementation Notes
A few things I've learned the hard way:
- Always use JSON-LD format, not Microdata. Google prefers it and it's easier to maintain.
- You can have multiple schema types on one page — just use separate script tags or an array within one
- Schema data must match visible page content. Don't add Review schema to a page with no reviews.
- Validate everything with Google's Rich Results Test before publishing
- Monitor the Enhancements section in Search Console for errors after deploying
Use our Schema Markup Generator to create any of these types without manually editing JSON.