What Is Structured Data? A Complete Guide to Schema Markup
Structured data is a standardised way of providing explicit information about a web page so that search engines can understand its content precisely, without relying on inference. Instead of making Google guess that your page is about a recipe, a product, or a local business, structured data tells it directly — using a shared vocabulary that every major search engine understands. The result is richer search listings, better indexing, and an increasing number of AI-driven features that surface your content in new ways.
If you have ever searched for a recipe and seen cooking times, star ratings, and ingredient counts appear directly in the search results — without clicking the link — that is structured data at work. The same mechanism powers star ratings on product listings, FAQ dropdowns, event dates, breadcrumb trails, and the knowledge panels that appear when you search for a well-known brand.
This guide covers everything you need to know: what structured data is, how it works, every major schema markup type with real code examples, how to implement it step by step, validation tools, and how structured data now feeds into AI Overviews and voice search. Whether you are an SEO professional or a site owner just starting out, this is the definitive reference.
The Full Definition: What Is Structured Data in SEO?
In the context of on-page SEO, structured data refers specifically to markup added to HTML pages that conforms to the Schema.org vocabulary. Schema.org is a collaborative project founded by Google, Microsoft, Yahoo, and Yandex in 2011. It provides a shared catalogue of types — Article, Product, Person, Place, Event, and hundreds more — each with defined properties that describe the characteristics of that type.
When you add structured data to a page, you are not changing what the page looks like to visitors. You are adding a machine-readable layer on top of your existing content. A product page might say "Buy the X200 Widget for £49.99" in its visible text. Structured data turns that into a formal statement: this page is a Product, its name is "X200 Widget", its price is 49.99, its priceCurrency is GBP, and its availability is InStock. Search engines store and use that information to power enhanced features.
Structured data is one of the three pillars of structured data SEO: helping search engines index content accurately, enabling rich result features, and feeding the machine learning systems that now power AI-generated answers.
JSON-LD vs Microdata vs RDFa: Which Format Should You Use?
There are three formats for implementing structured data on the web. They achieve the same goal but differ significantly in how they are written and maintained.
JSON-LD
JSON-LD (JavaScript Object Notation for Linked Data) is a block of JSON embedded in a <script type="application/ld+json"> tag. It is completely separate from the visible HTML of the page. Google recommends JSON-LD for all use cases because it is the easiest to add, update, and test — you do not need to touch your page's display markup at all. You can inject it from a CMS, a tag manager, or server-side code without touching the template. The examples throughout this guide use JSON-LD.
Microdata
Microdata is markup embedded directly into your HTML elements using attributes like itemscope, itemtype, and itemprop. It was the original recommended approach and is still supported, but it makes templates significantly harder to read and maintain. Changing a schema type requires editing every relevant HTML element, not just a single script block. Microdata is best avoided for new implementations.
RDFa
RDFa (Resource Description Framework in Attributes) is similar to Microdata in that it annotates HTML elements directly, using attributes like vocab, typeof, and property. It is used in some government and academic publishing contexts and is still valid, but like Microdata it is harder to maintain than JSON-LD for most websites.
| Format | Where It Lives | Ease of Maintenance | Google Preference |
|---|---|---|---|
| JSON-LD | Separate <script> block | High — edit one block | Recommended |
| Microdata | Inline HTML attributes | Low — touches all elements | Supported |
| RDFa | Inline HTML attributes | Low — touches all elements | Supported |
For virtually all website owners, JSON-LD is the right choice. The rest of this guide assumes you are using JSON-LD.
How Structured Data Works With Google
When Googlebot crawls a page, it parses any application/ld+json script blocks it finds, extracts the structured data, and validates it against the Schema.org vocabulary and Google's own guidelines. Valid, relevant structured data becomes eligible for rich result features. Google then runs additional checks — the page content must actually support the structured data claims, the page must not be spammy, and the schema type must be one that Google has chosen to surface as a rich result.
Not every valid schema type produces a visual rich result in the SERP. Google chooses which types to support. As of early 2026, the types with official rich result support include: Article, Breadcrumb, Carousel, Course, Dataset, Event, FAQ, HowTo, Image License, Job Posting, Local Business, Movie, Practice Problem, Product, Q&A, Recipe, Review Snippet, Sitelinks Searchbox, Software App, Speakable, and Video.
Types like Organization, Person, and ItemList do not always produce visible rich results on their own, but they contribute to Google's knowledge graph and can influence how your brand appears in knowledge panels and entity-based searches.
All Major Schema Types: Code Examples
The following sections cover every major schema type used in SEO, with complete JSON-LD code examples you can adapt for your own pages. Use the RankNibbler Schema Generator to build these automatically.
Article Schema
Use Article (or its subtypes NewsArticle and BlogPosting) for editorial content pages. Article schema is required for Google News inclusion and the Top Stories carousel, but it also helps Google understand the freshness and authorship of any content page.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "What Is Structured Data? A Complete Guide",
"description": "Everything you need to know about schema markup and JSON-LD for SEO.",
"url": "https://www.example.com/what-is-structured-data",
"datePublished": "2026-03-01",
"dateModified": "2026-04-01",
"author": {
"@type": "Person",
"name": "Jane Smith",
"url": "https://www.example.com/authors/jane-smith"
},
"publisher": {
"@type": "Organization",
"name": "Example Site",
"logo": {
"@type": "ImageObject",
"url": "https://www.example.com/logo.png"
}
},
"image": {
"@type": "ImageObject",
"url": "https://www.example.com/images/structured-data-guide.jpg",
"width": 1200,
"height": 630
}
}
</script>
Product Schema
Product schema is one of the highest-value schema types for e-commerce. It enables price, availability, and star rating data to appear directly in search results, and feeds into Google's Shopping surfaces. Always include offers for price information and aggregateRating if you have genuine customer reviews.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "X200 Wireless Headphones",
"image": "https://www.example.com/images/x200.jpg",
"description": "Noise-cancelling wireless headphones with 30-hour battery life.",
"sku": "X200-BLK",
"brand": {
"@type": "Brand",
"name": "AudioMax"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.7",
"reviewCount": "348"
},
"offers": {
"@type": "Offer",
"url": "https://www.example.com/products/x200",
"priceCurrency": "GBP",
"price": "149.99",
"availability": "https://schema.org/InStock",
"priceValidUntil": "2026-12-31"
}
}
</script>
FAQ Schema
FAQ schema produces expandable question-and-answer dropdowns directly in the SERP, giving your result significantly more vertical space and interactive elements. It is one of the most widely used schema types for informational pages. See our dedicated guide on how to create FAQ schema for a full walkthrough.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What is structured data in SEO?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Structured data is code added to web pages using the Schema.org vocabulary to help search engines understand page content and display rich results."
}
},
{
"@type": "Question",
"name": "Does structured data directly improve rankings?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Structured data does not directly change your ranking position, but rich results from schema markup typically improve click-through rates, which can lead to indirect ranking benefits."
}
}
]
}
</script>
LocalBusiness Schema
LocalBusiness schema (and its many subtypes like Restaurant, MedicalBusiness, LegalService) helps search engines connect your website to your physical location. It contributes to local pack rankings and ensures your hours, address, and phone number are accurately represented in knowledge panels.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "City Centre Dental Practice",
"image": "https://www.example.com/images/dental.jpg",
"telephone": "+44-20-7946-0100",
"email": "[email protected]",
"address": {
"@type": "PostalAddress",
"streetAddress": "12 High Street",
"addressLocality": "London",
"postalCode": "EC1A 1BB",
"addressCountry": "GB"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 51.5194,
"longitude": -0.0953
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
"opens": "09:00",
"closes": "17:30"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "09:00",
"closes": "13:00"
}
],
"url": "https://www.example.com",
"priceRange": "££"
}
</script>
Organization Schema
Organization schema helps establish your brand's entity in Google's knowledge graph. It connects your website to your social profiles, official name, logo, and contact points — helping Google build a complete picture of who you are. This is especially important for branded searches and knowledge panel accuracy.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Example Company Ltd",
"url": "https://www.example.com",
"logo": "https://www.example.com/logo.png",
"foundingDate": "2015",
"description": "A leading provider of digital marketing tools.",
"contactPoint": {
"@type": "ContactPoint",
"telephone": "+44-800-123-456",
"contactType": "customer support",
"availableLanguage": "English"
},
"sameAs": [
"https://www.linkedin.com/company/example",
"https://twitter.com/example",
"https://www.facebook.com/example"
]
}
</script>
BreadcrumbList Schema
Breadcrumb schema replaces the raw URL in search results with a readable breadcrumb trail (e.g. Home > Blog > SEO Guides > Structured Data). This makes results more scannable and tells users where the page sits in your site hierarchy before they click.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://www.example.com"
},
{
"@type": "ListItem",
"position": 2,
"name": "SEO Guides",
"item": "https://www.example.com/seo-guides"
},
{
"@type": "ListItem",
"position": 3,
"name": "What Is Structured Data",
"item": "https://www.example.com/what-is-structured-data"
}
]
}
</script>
HowTo Schema
HowTo schema describes step-by-step instructions and can produce a rich result that shows individual steps directly in the SERP. It is ideal for tutorial pages, guides, and any content that walks users through a process. Include estimated time, required tools, and clear step descriptions for the best results.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "HowTo",
"name": "How to Add Structured Data to Your Website",
"totalTime": "PT30M",
"step": [
{
"@type": "HowToStep",
"position": "1",
"name": "Choose your schema type",
"text": "Identify the most relevant Schema.org type for the page — Article, Product, FAQ, etc."
},
{
"@type": "HowToStep",
"position": "2",
"name": "Write the JSON-LD",
"text": "Create a script block with type application/ld+json and write the schema properties."
},
{
"@type": "HowToStep",
"position": "3",
"name": "Add to your page",
"text": "Paste the JSON-LD script into the <head> section of your HTML."
},
{
"@type": "HowToStep",
"position": "4",
"name": "Validate and test",
"text": "Run the page through Google's Rich Results Test and the RankNibbler structured data checker."
}
]
}
</script>
Recipe Schema
Recipe schema is one of the richest result types available. A well-structured Recipe can show a featured image, star rating, cook time, prep time, calorie count, and ingredient summary directly in Google Search and Google Images. The recipe carousel is a prominent feature for food content.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Recipe",
"name": "Classic Spaghetti Carbonara",
"image": "https://www.example.com/images/carbonara.jpg",
"author": {"@type": "Person", "name": "Maria Rossi"},
"datePublished": "2026-01-10",
"description": "A traditional Roman spaghetti carbonara with eggs, guanciale, and Pecorino Romano.",
"prepTime": "PT10M",
"cookTime": "PT20M",
"totalTime": "PT30M",
"recipeYield": "2 servings",
"recipeCategory": "Pasta",
"recipeCuisine": "Italian",
"nutrition": {
"@type": "NutritionInformation",
"calories": "580 calories"
},
"recipeIngredient": [
"200g spaghetti",
"100g guanciale",
"2 large eggs",
"50g Pecorino Romano",
"Black pepper to taste"
],
"recipeInstructions": [
{
"@type": "HowToStep",
"text": "Cook spaghetti in salted boiling water until al dente."
},
{
"@type": "HowToStep",
"text": "Fry guanciale in a pan over medium heat until crispy."
},
{
"@type": "HowToStep",
"text": "Whisk eggs with grated Pecorino. Combine with pasta off the heat, tossing quickly."
}
],
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.9",
"ratingCount": "212"
}
}
</script>
Event Schema
Event schema powers rich results that display event name, date, location, and ticket availability. It also feeds into Google's dedicated event search experience. If your event is virtual, use eventAttendanceMode set to OnlineEventAttendanceMode.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Event",
"name": "London SEO Summit 2026",
"startDate": "2026-09-15T09:00",
"endDate": "2026-09-15T18:00",
"eventStatus": "https://schema.org/EventScheduled",
"eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
"location": {
"@type": "Place",
"name": "ExCeL London",
"address": {
"@type": "PostalAddress",
"streetAddress": "1 Western Gateway",
"addressLocality": "London",
"postalCode": "E16 1XL",
"addressCountry": "GB"
}
},
"image": "https://www.example.com/images/seo-summit.jpg",
"description": "A one-day conference covering the latest in SEO strategy, structured data, and AI search.",
"organizer": {
"@type": "Organization",
"name": "SEO Events Ltd",
"url": "https://www.example.com"
},
"offers": {
"@type": "Offer",
"url": "https://www.example.com/events/london-seo-summit",
"price": "299",
"priceCurrency": "GBP",
"availability": "https://schema.org/InStock"
}
}
</script>
VideoObject Schema
VideoObject schema helps your videos appear in Google's video rich results and the video carousel in SERPs. It also provides data for the video tab in Google Search. The thumbnailUrl and uploadDate fields are required; duration uses ISO 8601 duration format.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "How to Add JSON-LD Structured Data in 5 Minutes",
"description": "A step-by-step video tutorial showing how to add JSON-LD schema markup to any website.",
"thumbnailUrl": "https://www.example.com/images/video-thumb.jpg",
"uploadDate": "2026-02-20",
"duration": "PT5M30S",
"contentUrl": "https://www.example.com/videos/json-ld-tutorial.mp4",
"embedUrl": "https://www.youtube.com/embed/abc123",
"publisher": {
"@type": "Organization",
"name": "Example Site",
"logo": {
"@type": "ImageObject",
"url": "https://www.example.com/logo.png"
}
}
}
</script>
Review Schema
The Review type marks up an individual review, while AggregateRating marks up an average rating from multiple reviews. Neither should be used in isolation on a page that does not actually contain review content — Google will penalise sites that mark up reviews on pages that do not display them. Review schema is commonly nested inside Product, LocalBusiness, Recipe, and similar types.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "UltraBlend Pro Blender",
"review": {
"@type": "Review",
"reviewRating": {
"@type": "Rating",
"ratingValue": "5",
"bestRating": "5"
},
"author": {
"@type": "Person",
"name": "Sarah T."
},
"reviewBody": "Absolutely brilliant blender. Makes the smoothest smoothies I have ever had. Worth every penny."
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.6",
"reviewCount": "94"
}
}
</script>
SoftwareApplication Schema
SoftwareApplication schema is ideal for app landing pages, SaaS tools, and browser extensions. It can produce a rich result showing the app's star rating, operating system compatibility, and price category directly in search results.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "RankNibbler SEO Checker",
"operatingSystem": "Web",
"applicationCategory": "BusinessApplication",
"url": "https://www.ranknibbler.com",
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "GBP"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.8",
"ratingCount": "520"
},
"description": "Free on-page SEO checker and website audit tool."
}
</script>
Rich Results: What Structured Data Can Win You in the SERP
| Schema Type | Rich Result Appearance | CTR Impact | Best For |
|---|---|---|---|
| Article / BlogPosting | Top Stories carousel, article image, date | High for news | Blog posts, news, guides |
| Product | Price, availability, star rating badge | High | E-commerce product pages |
| FAQ | Expandable Q&A dropdowns below result | High — doubles result height | FAQ pages, informational content |
| HowTo | Numbered step list in SERP | Medium–High | Tutorial and how-to pages |
| Recipe | Image, cook time, calories, rating | Very high for food content | Recipe and food blogs |
| LocalBusiness | Map pack, hours, phone, reviews | High for local queries | Physical business websites |
| Event | Date, location, ticket link | Medium–High | Event and ticketing pages |
| VideoObject | Video carousel thumbnail | High for video queries | Pages with embedded video |
| BreadcrumbList | Breadcrumb trail instead of URL | Low–Medium | Any structured website |
| SoftwareApplication | Star rating, OS, price | Medium | App and SaaS landing pages |
| Review | Star rating snippet | Medium–High | Review and comparison pages |
| Organization | Knowledge panel, logo, social links | Indirect (entity signals) | Brand homepages |
How to Implement Structured Data: Step-by-Step
Implementing structured data SEO correctly from the start saves time and avoids errors. Follow these steps for any page.
Step 1 — Audit Your Page Type
Decide what the page is primarily about. Is it a product? An article? A local business? A how-to guide? Start with the single most relevant schema type. It is valid and often beneficial to include multiple schema types on one page — for example, a blog post can have both Article and BreadcrumbList — but do not try to add every type at once. Use our site audit tool to see which pages currently have structured data and which do not.
Step 2 — Choose Your Properties
Visit schema.org and look up your chosen type. Every type has required properties, recommended properties, and optional properties. Google's developer documentation lists specifically which properties are required for each rich result type. Always include at minimum the required properties; recommended properties improve your eligibility for rich results.
Step 3 — Write the JSON-LD
Use the RankNibbler Schema Generator to produce the JSON-LD automatically, or write it by hand. Make sure the content of your structured data accurately reflects the visible content on the page — Google cross-references the two. A mismatch is grounds for manual action.
Step 4 — Add It to Your Page
Paste the JSON-LD <script> block into the <head> section of your HTML. It can technically go in the <body> and Google will still read it, but <head> is best practice and avoids any CMS or template conflicts.
Step 5 — Validate the Markup
Run the page through Google's Rich Results Test (search.google.com/test/rich-results) and the RankNibbler Structured Data Checker. Look for any errors or warnings. Errors prevent rich result eligibility; warnings suggest improvements but do not block them.
Step 6 — Monitor in Google Search Console
After deploying structured data, check Google Search Console under Enhancements. Google will flag any schema it has detected and whether each type has errors, warnings, or valid items. If you see errors, fix them and request re-validation.
Step 7 — Track Rich Result Performance
In Google Search Console, use the Performance report and filter by Search Appearance to see impressions and clicks from rich results separately. If rich results are appearing but CTR is low, your page title and description may need improvement.
Validation Tools for Structured Data
Validating your structured data before and after deployment is not optional — errors in schema markup can prevent rich results entirely. Use these tools:
Google Rich Results Test
The official tool from Google. Enter a URL or paste HTML and it shows which rich result types Google detected and whether there are errors or warnings. Available at search.google.com/test/rich-results.
Schema.org Validator
The official Schema.org validator (validator.schema.org) checks your markup against the Schema.org specification rather than Google's specific guidelines. Useful for catching vocabulary errors that the Google tool might not surface.
RankNibbler Structured Data Checker
The RankNibbler Structured Data Checker extracts and displays all JSON-LD from any URL, highlights errors, and shows a human-readable breakdown of every property. It is particularly useful for auditing competitor structured data or checking CMS-generated markup you did not write yourself.
Google Search Console
Search Console's Enhancements section shows live production data — which pages Google has detected structured data on, and which have errors. This is the only tool that shows you data at scale across your whole site rather than page by page.
Structured Data and AI Overviews
Google's AI Overviews (the AI-generated summaries that appear above organic results for many queries) rely heavily on structured data to understand and attribute content. When Google generates an AI Overview that cites a source, structured data helps it accurately identify who wrote the content, when it was published, and what entity it belongs to.
Pages with well-implemented Article schema — including clear author, dateModified, and publisher properties — are better positioned to be cited as sources in AI Overviews. FAQ schema, in particular, maps closely to the question-and-answer format that AI Overviews use to address specific user queries. If your FAQ schema answers a question that matches a common search query, that content may be surfaced in an AI Overview even if your organic result is not position one.
For more on how to optimise for this feature, see our guide on AI Overviews SEO. The key principles are: use structured data to establish clear entity relationships, keep your content factually accurate, and ensure dateModified is current so Google knows your information is fresh.
Structured Data and Voice Search
Voice assistants — Google Assistant, Siri, Alexa, and Cortana — rely on structured data to deliver fast, confident answers to spoken queries. When someone asks "What time does [business] close?" or "How do I make carbonara?", the assistant looks for structured, machine-readable answers it can speak aloud without needing to interpret unstructured prose.
LocalBusiness schema with complete openingHoursSpecification data is critical for local voice queries. FAQPage schema directly feeds voice answers because the question-answer format maps one-to-one to how voice responses are delivered. Speakable schema (a Google-specific extension) lets you mark specific sections of a page as suitable for text-to-speech delivery — it is currently used in Google News content.
As voice search continues to grow for local and informational queries, implementing structured data is one of the highest-leverage things you can do to be the source that voice assistants quote. Voice results are typically drawn from position zero (featured snippets), and structured data increases your eligibility for those featured snippets by clarifying content structure to Google.
Structured Data Best Practices
Following these best practices ensures your structured data works effectively and complies with Google's quality guidelines.
- Only mark up content that is visible on the page. Never add schema for content that users cannot see. Google requires that structured data describe content that exists in the page's main content area, not hidden fields or off-screen elements.
- Keep structured data accurate and up to date. A product marked as InStock when it is out of stock, or a price that does not match the displayed price, will trigger a manual action. Set reminders to audit structured data whenever product or business information changes.
- Use specific types rather than generic ones. Use
BlogPostinginstead ofArticlewhere appropriate, orRestaurantinstead ofLocalBusiness. More specific types provide more context to search engines. - Include as many recommended properties as possible. Required properties just keep you from getting errors. Recommended properties increase rich result eligibility and the quality of data Google can extract.
- Nest related schema types. A Product can contain an AggregateRating, multiple Review objects, and an Offer. Nesting creates a richer, more complete description than standalone types.
- Use absolute URLs. Always use full URLs (https://www.example.com/page) rather than relative ones (/page) for
url,image, andsameAsproperties. - Do not duplicate content from Microdata or RDFa if you switch to JSON-LD. Having two conflicting structured data implementations for the same page can confuse parsers. Remove old inline markup when you add a JSON-LD equivalent.
- Validate before deploying. Always test with Google's Rich Results Test before pushing structured data to production. A syntax error in JSON — a missing comma, an extra bracket — will make the entire block unreadable.
- Do not use schema to manipulate rankings fraudulently. Adding Review schema to a page with manufactured five-star ratings, or marking up competitor content as your own, violates Google's guidelines and can result in a manual action affecting your whole site.
Common Structured Data Mistakes
Even experienced SEOs make these errors. Check your implementation against this list to avoid common pitfalls.
Invalid JSON Syntax
JSON is strict about syntax. A single missing comma, an unclosed bracket, or an unescaped character will make the entire script block invalid. Use a JSON validator (jsonlint.com) to check syntax before testing for schema validity.
Missing Required Properties
Every schema type that produces a rich result has required fields. For Product, Google requires name. For Recipe, it requires name, image, and recipeIngredient. Check Google's developer documentation for the specific requirements of each type you implement.
Mismatched Content
The structured data must match the visible page content. If your Product schema says the price is £29.99 but the page shows £39.99, that is a policy violation. If your Article schema says dateModified is today but the content was written two years ago, that misleads users and search engines about freshness.
Using Deprecated Properties
Schema.org evolves. Properties get deprecated and replaced. For example, streetAddress is preferred over older address formats in PostalAddress. Check schema.org directly for the current property names rather than copying old tutorials verbatim.
Marking Up Off-Page Content
You cannot use structured data to claim things that are not on your page. You cannot add Review schema with five-star ratings if your page does not display those reviews. You cannot add Event schema for events that are not described on the page.
Not Monitoring Search Console
Structured data can break when a CMS is updated, when templates change, or when plugins conflict. Search Console's Enhancements section will flag these issues — but only if you check it. Build regular structured data audits into your SEO workflow.
One Schema Type Per Page Thinking
A single page can and often should have multiple schema types. An article page might have Article, BreadcrumbList, and FAQPage all at once. A product page might have Product, BreadcrumbList, and Organisation. Each type serves a different purpose and there is no penalty for combining them correctly.
Platform Guides: Implementing Schema Markup in WordPress and Shopify
Structured Data in WordPress
WordPress has the widest range of structured data tools of any CMS platform. The main options are:
- Yoast SEO: Automatically generates Article, BreadcrumbList, Organization/Person, WebSite, and WebPage schema for all pages. The premium version adds more granular control. Schema output is JSON-LD in the page head.
- Rank Math: One of the most schema-capable WordPress plugins available. Supports over 20 schema types with GUI-based editors, including FAQ (with individual question entry), HowTo, Recipe, Product, Event, and more. Free tier includes most schema types.
- Schema Pro: A dedicated schema plugin rather than a full SEO suite. Supports a large range of types and can auto-populate fields from post meta, ACF fields, and WooCommerce data.
- Manual implementation: Add JSON-LD directly to a page via a Custom HTML block in the Block Editor, or via a theme's header.php or a child theme functions.php using
wp_headhooks. This gives maximum control but requires technical knowledge.
For WooCommerce stores, Rank Math and Yoast both pull product data (price, availability, SKU) automatically from the product post type, significantly reducing manual effort. Always validate output with the Structured Data Checker after plugin installation or major updates.
Structured Data in Shopify
Shopify themes include basic Product schema by default in most modern themes, but the implementation is often incomplete — missing aggregateRating, limited offers data, and no support for BreadcrumbList or Organisation schema. Improvement strategies include:
- Edit theme Liquid files directly: Product schema is typically in
snippets/product-schema.liquidor similar. You can add missing properties by editing the Liquid template to pull data from Shopify's product object. - Use a schema app: Apps like JSON-LD for SEO (a paid Shopify app) automatically generate comprehensive structured data for products, collections, blog posts, and businesses, handling edge cases that manual Liquid editing can miss.
- Add global schema via theme.liquid: For Organisation, WebSite (with SearchAction for Sitelinks Searchbox), and BreadcrumbList, add JSON-LD directly to the
<head>section oftheme.liquid.
Shopify's default product schema often uses Microdata rather than JSON-LD. If you are adding JSON-LD separately, remove or disable the old Microdata implementation to avoid duplication conflicts.
Structured Data and the Broader SEO Picture
Structured data is one component of a well-rounded SEO strategy, not a silver bullet. It works best when combined with strong on-page SEO fundamentals — well-optimised title tags, clear heading structure, fast page load times, and high-quality content that genuinely answers user queries.
Rich results from schema markup improve click-through rates, which means more traffic from the same rankings. But structured data does not directly change where a page ranks in organic results. The relationship is indirect: better CTR signals to Google that users find your result relevant, which can positively influence ranking over time. More importantly, for many query types — particularly informational and local queries — rich results are so visually prominent that being in position three with an FAQ expansion can outperform position one without.
Structured data also feeds entity-based ranking signals. When Google can clearly identify your site as a specific Organisation entity, with consistent name, URL, logo, and social profile links across all your schema, it builds stronger entity confidence. This contributes to branded search performance, knowledge panel accuracy, and authority in topical areas you consistently cover.
For a complete audit of your site's SEO signals including structured data, use the RankNibbler Site Audit.
Frequently Asked Questions About Structured Data
For more on structured data questions, see our dedicated FAQ Schema guide and the RankNibbler SEO Glossary.
Does structured data directly improve search rankings?
Not directly. Structured data does not change your position in organic search results. However, it enables rich results that improve click-through rates, and higher CTR can have an indirect positive effect on rankings over time. The primary benefit is the visual enhancement and additional real estate rich results provide.
How long does it take for structured data to appear in Google?
After adding or correcting structured data, Google typically detects and processes it within a few days to two weeks, depending on how frequently Googlebot crawls your site. You can speed this up by submitting the URL in Google Search Console's URL Inspection tool and requesting indexing.
Can I add multiple schema types to one page?
Yes, and in many cases you should. A product page can include Product, BreadcrumbList, and Organisation schema simultaneously. A blog post page can include Article, BreadcrumbList, and FAQPage. Simply include multiple separate <script type="application/ld+json"> blocks, one for each type.
What is the difference between Schema.org and structured data?
Schema.org is the vocabulary — the shared dictionary of types and properties that search engines understand. Structured data is the broader practice of marking up page content in a machine-readable format. JSON-LD, Microdata, and RDFa are the formats you use to express Schema.org vocabulary as structured data.
Is structured data a Google ranking factor?
Google has confirmed that structured data is not a direct ranking factor in the sense that adding it will not move you from position five to position one. However, it influences the appearance of your results (rich results), which affects CTR, and it contributes to entity understanding, which affects topical authority signals.
What happens if my structured data has errors?
Errors in structured data typically prevent the affected schema type from qualifying for rich results. Other schema types on the same page may still work. Google Search Console will flag the specific errors. Fix them and either wait for Google to re-crawl or use the URL Inspection tool to request re-validation.
Can I use structured data on a JavaScript-rendered site?
Yes. Google can execute JavaScript and read JSON-LD injected by JavaScript. However, server-side rendered or statically rendered structured data is more reliable and faster for Google to process. If you are using a JavaScript framework like React or Next.js, use a library that server-side renders your JSON-LD in the document head.
Does structured data help with voice search?
Yes, significantly. LocalBusiness schema with opening hours helps voice assistants answer "what time does X close" queries. FAQPage schema provides ready-made spoken answers. SpeakableSpecification schema explicitly marks content for voice delivery in Google News. Voice search is one of the strongest arguments for comprehensive structured data implementation.
Should I add FAQ schema to every page?
Only if the page genuinely contains multiple question-and-answer pairs. Adding FAQ schema to a page that does not have actual Q&A content violates Google's guidelines. But if you have a page with a genuine FAQ section — even just two or three questions — adding FAQPage schema is almost always worthwhile given how significantly it expands your SERP footprint. See our guide on how to create FAQ schema.
How does structured data relate to AI Overviews?
Structured data helps Google's AI understand content provenance, freshness, authorship, and entity relationships — all signals that feed into which sources are cited in AI Overviews. Pages with complete Article schema (especially current dateModified and clear authorship), FAQ schema, and strong entity markup are better positioned to be cited in AI-generated answers. See our guide on AI Overviews SEO for a full breakdown.
Is structured data the same as Open Graph markup?
No. Open Graph markup (og: meta tags) controls how your pages appear when shared on social media platforms like Facebook and LinkedIn. Structured data (Schema.org JSON-LD) is for search engines. They serve different purposes and you should implement both independently. The RankNibbler homepage checks both in its SEO audit.
How do I check if my site already has structured data?
Use the RankNibbler Structured Data Checker — paste any URL and it will extract, display, and validate all structured data on the page. Alternatively, view the page source (Ctrl+U) and search for application/ld+json to find any existing JSON-LD blocks manually.
Last updated: April 2026