Structured data is machine-readable code that helps search engines understand the content of your web pages at a deeper level than plain HTML allows. By adding structured data markup, you explicitly tell Google what your page is about — whether it's an article, a product, an FAQ, a recipe, or a local business — enabling richer, more informative search results that drive higher click-through rates.
What Is Structured Data?
At its core, structured data adds context to your content. HTML tells a browser how to display text; structured data tells search engines what that text means. A price inside a paragraph is just text to Google — but a price wrapped in Product schema becomes a data point that can appear in rich results with star ratings, pricing, and availability information.
Structured data uses vocabularies defined by Schema.org, a collaborative project between Google, Bing, Yahoo, and Yandex that standardizes markup across all major search engines.
JSON-LD vs Microdata vs RDFa
There are three formats for implementing structured data. Here's how they compare:
| Format | Implementation | Pros | Cons |
|---|---|---|---|
| JSON-LD | Separate <script> block in <head> or <body> | Easy to add/remove, doesn't touch HTML, Google's recommended format | Data can drift from visible content if not maintained |
| Microdata | HTML attributes (itemscope, itemprop) on existing elements | Tightly bound to visible content | Clutters HTML, harder to maintain, breaks with template changes |
| RDFa | HTML attributes (typeof, property) on elements | Powerful for complex ontologies | Verbose, rarely used for SEO, steep learning curve |
Use JSON-LD. Google explicitly recommends it, the developer experience is vastly better, and it separates your data layer from your presentation layer. Every example in this guide uses JSON-LD.
Common Schema Types
Schema.org defines hundreds of types, but a focused set is responsible for the vast majority of SEO benefits:
Article
Use for blog posts, news articles, and editorial content. Required properties include headline, author, datePublished, and image. The Article schema enables rich results with headline, thumbnail, and date in search results.
Product
For e-commerce product pages. Include name, image, description, offers (with price, priceCurrency, availability), and aggregateRating. Product schema powers the product panels in Google Shopping and organic results with pricing, ratings, and stock status.
FAQPage
For pages with a list of questions and answers. Each question requires name (the question text) and acceptedAnswer with text (the answer). FAQ rich results can dramatically increase your SERP real estate by displaying expandable Q&A directly in search results.
HowTo
For instructional content with sequential steps. Each step needs name and text; optional image and url per step. HowTo schema generates step-by-step rich results, especially powerful for "how to" queries.
Organization & LocalBusiness
Organization schema establishes your brand identity — logo, social profiles, contact info. LocalBusiness extends Organization for physical locations with address, openingHours, geo coordinates, and telephone. Essential for local SEO and Knowledge Panel appearances.
BreadcrumbList
Defines the navigation path to a page. Google uses this to display breadcrumb trails in search results instead of raw URLs, which improves both appearance and click-through rates. Always implement this on sites with hierarchical navigation.
WebApplication
For web-based tools and apps. Include name, url, applicationCategory, operatingSystem, and offers. Useful for SaaS products and online tools to appear in app-related searches.
Rich Results Eligibility
Not all schema types trigger rich results. Google supports a specific subset and has strict requirements for each:
- Content must match. The structured data must accurately reflect the visible page content. Adding FAQ schema to a page without visible Q&A is a policy violation.
- Required properties must be present. Each schema type has mandatory fields. Missing even one disqualifies the page from rich results.
- Page quality matters. Pages with thin content, excessive ads, or spam signals won't receive rich results regardless of schema quality.
- No guarantees. Even valid, high-quality schema doesn't guarantee display — Google's algorithms make the final decision based on query context, user intent, and device.
Testing & Validation
Always validate your structured data before and after deployment:
- Google Rich Results Test — validates whether your page qualifies for Google-specific rich results. Test live URLs or paste code directly.
- Schema.org Validator — checks general schema.org compliance against the full vocabulary specification.
- Google Search Console — the Enhancements section shows structured data errors, warnings, and valid items detected across your entire site. Monitor this regularly.
- Structured Data Linter — a more technical tool for complex schemas with nested types.
Implementation Best Practices
- One schema per script block. Keep each schema type in its own
<script type="application/ld+json">block for clarity and easier debugging. - Match visible content. Never add data to schema that isn't reflected on the page — Google considers this spammy structured data and may issue manual actions.
- Use absolute URLs. All URL properties (
url,image,mainEntityOfPage) should be full, absolute URLs starting withhttps://. - Keep it updated. Structured data with outdated prices, incorrect availability, or old dates erodes trust and can trigger rich result removal.
- Don't mark up hidden content. Schema must represent content visible to users. Hidden elements marked up with schema violate Google's guidelines.
- Start with high-impact types. Prioritize Article, FAQ, BreadcrumbList, and Product/LocalBusiness based on your site type. These deliver the most visible search result enhancements.
Common Mistakes
- Missing required properties — skipping
imageon Article orpriceon Product makes the entire schema ineligible. - Self-referencing reviews — marking up reviews for your own organization on your own site violates Google's policy.
- Invalid JSON syntax — trailing commas, unescaped quotes, or missing brackets silently break the entire block. Always validate JSON syntax.
- Stacking too many types on irrelevant pages — adding Recipe schema to a non-recipe page hoping for rich results is a policy violation.
- Using Microdata and JSON-LD for the same entity — this can cause duplicate or conflicting signals. Pick one format and use it consistently.
Try It Yourself
Generate valid JSON-LD structured data for Article, FAQ, Product, HowTo, Organization, and more — with all required and recommended properties pre-filled.
Schema Generator →