Structured Data Guide 2026: Schema.org Markup for SEO

Structured data (Schema.org markup) tells Google exactly what your content means — enabling rich results like star ratings, FAQ dropdowns, and product prices directly in search results. This complete guide covers JSON-LD implementation, Schema types, rich result eligibility, validation, and platform-specific instructions for 2026.

SEO Tip (2026): Google uses structured data signals as part of its understanding of page content — pages with valid, comprehensive Schema.org markup tend to receive better indexing priority and richer SERP features. After implementing structured data, use PageGuard to verify the SEO health of your pages.

Check your page's SEO & structured data health

Scan any URL to find missing meta tags, structured data errors, and technical SEO issues that prevent rich results.

Free Site Scan

1. What Is Structured Data?

Structured data is a standardized format for providing information about a page and classifying its content. While regular HTML tells a browser how to display content, structured data tells search engines what the content means.

The primary vocabulary for web structured data is Schema.org — a collaborative project founded by Google, Microsoft, Yahoo, and Yandex in 2011. Schema.org defines hundreds of "types" (Article, Product, Event, Person, etc.) and "properties" (name, price, datePublished, etc.) that form a shared language between websites and search engines.

Example: What a search engine sees without structured data:

"The Blue Widget costs $29.99 — ★★★★☆ (4.2/5, 318 reviews)"

Example: What a search engine understands with Product + AggregateRating schema:

{
  "@type": "Product",
  "name": "Blue Widget",
  "offers": { "price": "29.99", "priceCurrency": "USD" },
  "aggregateRating": { "ratingValue": "4.2", "reviewCount": "318" }
}

The machine-readable version enables Google to display price and stars directly in search results — often doubling click-through rates compared to plain text results.

2. JSON-LD vs. Microdata vs. RDFa

Three formats can express Schema.org structured data. Google recommends JSON-LD for all new implementations:

Format Where It Lives Maintenance Google Recommendation
JSON-LD <script> tag in <head> or <body> Easiest — separate from HTML ✓ Recommended
Microdata Embedded in HTML elements via attributes Hard — tied to HTML structure Supported but not preferred
RDFa Embedded in HTML via RDF attributes Complex — academic/publishing use Supported but not preferred

Use JSON-LD exclusively. It keeps your structured data separate from your HTML, making it easy to add, update, and debug without touching markup.

3. Schema Types That Generate Rich Results

Google supports rich results for specific Schema.org types. Here are the most impactful for common site types:

E-Commerce Sites

Content / Blog Sites

Local Businesses

SaaS / Software

4. JSON-LD Syntax and Structure

JSON-LD is placed inside a <script type="application/ld+json"> tag. You can place multiple JSON-LD blocks on a single page for different Schema types.

Article Schema Example

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "How to Optimize Your Website for 2026",
  "datePublished": "2026-03-04",
  "dateModified": "2026-03-04",
  "author": {
    "@type": "Person",
    "name": "Jane Smith"
  },
  "publisher": {
    "@type": "Organization",
    "name": "My Company",
    "logo": {
      "@type": "ImageObject",
      "url": "https://example.com/logo.png"
    }
  },
  "image": "https://example.com/article-image.jpg",
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://example.com/article-url"
  }
}
</script>

Product Schema Example

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Premium Widget",
  "image": "https://example.com/widget.jpg",
  "description": "High-quality widget for professionals",
  "brand": { "@type": "Brand", "name": "WidgetCo" },
  "sku": "WIDGET-001",
  "offers": {
    "@type": "Offer",
    "price": "49.99",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "url": "https://example.com/widget"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.5",
    "reviewCount": "127"
  }
}
</script>

FAQPage Schema Example

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "What does your product do?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Our product helps you monitor website health automatically."
      }
    },
    {
      "@type": "Question",
      "name": "How much does it cost?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "We offer a free plan plus paid plans starting at $9/month."
      }
    }
  ]
}
</script>

5. BreadcrumbList: The Universal Schema

BreadcrumbList should be added to every page on your site. It tells Google the hierarchical position of each page within your site structure, which appears as breadcrumb navigation below your page title in search results.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Home",
      "item": "https://example.com"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Blog",
      "item": "https://example.com/blog"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "How to Optimize Images",
      "item": "https://example.com/blog/optimize-images"
    }
  ]
}
</script>

Breadcrumb rich results replace the URL display in SERPs, making results look more organized and increasing CTR — especially for deep pages within a category structure.

6. Implementing Structured Data by Platform

WordPress

Install Yoast SEO (premium) or RankMath (free) for automatic Article, BreadcrumbList, Organization, and WebPage schemas. For Product schema on WooCommerce, both plugins add basic Product markup. For advanced control, use the Schema & Structured Data for WP & AMP plugin. For custom JSON-LD blocks, add code via your theme's wp_head hook or a custom plugin.

Shopify

Shopify themes automatically include basic Product, BreadcrumbList, and Organization JSON-LD. Customize in your theme's product.liquid or article.liquid files. Use the JSON-LD for SEO app for comprehensive Schema implementation without code editing. Verify with Google's Rich Results Test after any theme changes.

Next.js / React

Add JSON-LD via the next-seo package or directly using a <Script type="application/ld+json"> component in your layout or page files. For dynamic pages, generate schema server-side using your data fetching (getServerSideProps or server components) so it's included in the initial HTML. Avoid client-side only rendering of structured data as Google may not execute JavaScript during some crawls.

Webflow / Squarespace / Wix

These platforms have limited built-in Schema support. Webflow and Squarespace allow custom code injection in page settings — add your JSON-LD in the Head section. Wix has a SEO Settings panel with some structured data options. For advanced schemas, use the Wix Developer Center with custom code or third-party SEO apps from their App Market.

Static Sites (Hugo, Jekyll, Eleventy)

Add JSON-LD to your base layout template using template variables to dynamically populate schema properties. Hugo has partial templates for SEO; Jekyll uses Liquid tags; Eleventy uses Nunjucks or Liquid. Use front matter to define page-specific schema properties (headline, datePublished, author) that get injected into your JSON-LD template.

7. Organization and WebSite Schema

Add these two schemas to your homepage to establish brand identity and enable the Sitelinks Searchbox in Google results:

Organization Schema

{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Your Company",
  "url": "https://example.com",
  "logo": "https://example.com/logo.png",
  "sameAs": [
    "https://twitter.com/yourcompany",
    "https://linkedin.com/company/yourcompany",
    "https://github.com/yourcompany"
  ],
  "contactPoint": {
    "@type": "ContactPoint",
    "contactType": "customer support",
    "email": "support@example.com"
  }
}

WebSite Schema (Sitelinks Searchbox)

{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": "Your Site Name",
  "url": "https://example.com",
  "potentialAction": {
    "@type": "SearchAction",
    "target": {
      "@type": "EntryPoint",
      "urlTemplate": "https://example.com/search?q={search_term_string}"
    },
    "query-input": "required name=search_term_string"
  }
}

The WebSite schema can enable a Sitelinks Searchbox in your brand's Google Knowledge Panel — but only for sites with sufficient authority and search volume for brand queries.

8. LocalBusiness Schema for Service Businesses

If you have a physical location or serve local customers, LocalBusiness schema is essential for local SEO and Google Business Profile integration:

{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "Your Business Name",
  "image": "https://example.com/storefront.jpg",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "123 Main St",
    "addressLocality": "San Francisco",
    "addressRegion": "CA",
    "postalCode": "94102",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 37.7749,
    "longitude": -122.4194
  },
  "telephone": "+1-415-555-0100",
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
      "opens": "09:00",
      "closes": "18:00"
    }
  ],
  "priceRange": "$$",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "reviewCount": "89"
  }
}

Use the most specific subtype of LocalBusiness that applies to your business (Restaurant, MedicalClinic, LegalService, etc.) for the most relevant rich results.

9. How to Validate Structured Data

Always validate structured data after adding or changing it. Use these tools in sequence:

  1. 1

    Google Rich Results Test

    Visit search.google.com/test/rich-results and enter your URL or paste your JSON-LD code. This shows which rich result features your page qualifies for and lists any errors or warnings. Test every unique page template in your site.

  2. 2

    Schema Markup Validator

    Visit validator.schema.org for a comprehensive Schema.org specification check. This catches issues that Google's tool may not flag — such as using deprecated properties or incorrect value types.

  3. 3

    Google Search Console Rich Results Report

    After deploying, monitor the Rich Results report under Experience in Google Search Console. It shows aggregate data on valid and invalid structured data across your site, with affected URL counts and specific error descriptions.

  4. 4

    PageGuard SEO Scan

    Use PageGuard's free scan to verify the overall technical SEO health of pages with structured data — checking canonical URLs, meta tags, and other signals alongside your Schema implementation.

10. Common Structured Data Mistakes

❌ Marking up content that isn't visible to users

Google requires that structured data accurately reflects visible page content. Don't mark up content that exists only in JSON-LD but isn't displayed to users. For example, don't add a 5-star AggregateRating unless reviews are visible on the page.

❌ Missing required properties

Each Schema type has required properties for rich results eligibility. Product requires name + offers with price and priceCurrency. AggregateRating requires ratingValue and reviewCount. Article requires headline and datePublished. Check Google's developer documentation for each type's required vs. recommended properties.

❌ Using incorrect data types

Schema.org properties have specific expected data types. Prices must be strings ("29.99"), not numbers (29.99). Dates must use ISO 8601 format (YYYY-MM-DD). Boolean values must be actual booleans (true/false), not strings ("true"/"false"). Type mismatches cause validation errors.

❌ Adding the same schema to every page regardless of content

Avoid adding Product schema to blog posts or Article schema to product pages. Match your Schema type to the actual content type. Google may penalize sites that use structured data in misleading ways (e.g., adding AggregateRating to a page with no reviews).

❌ Broken JSON syntax

A single missing comma, unclosed bracket, or unescaped special character breaks the entire JSON-LD block and prevents Google from parsing it. Always use a JSON validator (jsonlint.com) after writing or modifying JSON-LD code. Be especially careful with apostrophes in text content.

❌ Using relative URLs instead of absolute URLs

All URLs in structured data must be absolute (including https://). The "image" property, "url" property, "item" in BreadcrumbList, and "mainEntityOfPage" @id all require full absolute URLs. Relative URLs like "/images/photo.jpg" cause validation errors.

11. Structured Data for Rich Results: What to Expect

Adding structured data doesn't guarantee rich results — Google decides whether to show them based on content quality, search relevance, and policy compliance. Here's what each Schema type typically achieves:

Schema Type Rich Result Typical CTR Lift
Product + AggregateRating Star ratings + price in SERP +15–30%
FAQPage Expandable Q&A below result +20–30%
HowTo Numbered steps with images +10–20%
Recipe Image, time, rating in SERP +25–40%
BreadcrumbList Navigation path instead of URL +5–10%
Article Top Stories, date display Varies by news eligibility
Event Date, location, price in SERP +15–25%

Rich result display can vary by device, search query, and Google's algorithm. Even if rich results aren't shown, structured data still helps Google understand your content — improving indexing quality and relevance signals.

12. Verify Your Structured Data Implementation with PageGuard

After implementing Schema.org markup, verify that the surrounding page technical health is also strong — Google uses multiple signals together when deciding rich result eligibility and indexing priority.

PageGuard scans your pages for SEO health signals including canonical URL correctness, meta tag completeness, Core Web Vitals, and best practices compliance — all of which work together with your structured data to maximize search visibility.

Check if your pages are rich result–ready

Scan any URL to verify SEO health, canonical URL, meta tags, and page quality signals alongside your structured data implementation.

Frequently Asked Questions

What is structured data and why does it matter for SEO?

Structured data is machine-readable Schema.org markup (usually JSON-LD) that tells search engines exactly what your content means. It enables rich results — star ratings, FAQ dropdowns, product prices, and event dates directly in search results — which typically increase click-through rates 15–30%. While not a direct ranking factor, the engagement signals from better CTRs indirectly improve rankings.

What's the difference between JSON-LD, Microdata, and RDFa?

All three express Schema.org vocabulary. JSON-LD lives in a separate script tag, is easiest to implement and maintain, and is Google's recommended format. Microdata and RDFa embed attributes directly into HTML elements, making them harder to maintain as your HTML changes. Use JSON-LD for all new implementations.

How do I test if my structured data is valid?

Use three tools: (1) Google's Rich Results Test (search.google.com/test/rich-results) — checks rich result eligibility and errors; (2) Schema Markup Validator (validator.schema.org) — validates against the full Schema.org specification; (3) Google Search Console's Rich Results report — monitors your site's structured data health over time. Test every page template, not just individual pages.

Which Schema types generate rich results in Google?

Google supports rich results for: Article, Breadcrumb, Course, Dataset, Event, FAQPage, HowTo, JobPosting, LocalBusiness, Product (with Offer and AggregateRating), Q&A Page, Recipe, Review Snippet, SoftwareApplication, and Video. Focus on the types most relevant to your content type — e-commerce sites should prioritize Product + AggregateRating; content sites benefit most from Article + FAQPage.

Do I need structured data on every page?

Not every page benefits equally. Prioritize: product pages (Product + AggregateRating), blog posts (Article + BreadcrumbList), FAQ sections (FAQPage), local business pages (LocalBusiness), and your homepage (Organization + WebSite). Add BreadcrumbList to every page sitewide. Pages like login, admin, or confirmation pages don't benefit from structured data.

Related SEO Guides