All guides
SEO Guide

Schema Markup: The Complete Guide to Structured Data

22 min readLast reviewed: September 2026Izajul HaqueIzajul Haque

Key Takeaways

  • Schema markup is the language machines speak — it tells search engines and AI engines exactly what your content is, in a format they can parse with certainty.
  • JSON-LD is the recommended format for all schema — it is the format Google prefers, it is easy to implement, and it separates data from presentation.
  • Every site needs at minimum: Organization, Service/Product, Article, FAQ, and Breadcrumb schema — these cover entity definition, commercial pages, content, Q&A, and hierarchy.
  • Schema must match visible content — marking up content that is not on the page, or mismatching schema to content, can trigger penalties and loss of rich results.
  • Validate all schema with Google's Rich Results Test and monitor the GSC Enhancements report — schema errors and warnings directly affect rich result eligibility.


What is schema markup?

Schema markup is a standardized format for describing your content to search engines. It tells Google — and AI engines — exactly what your content is: an article, a product, a FAQ, an event, a person, an organization. In a format they can parse with certainty.

Without schema, search engines guess what your content is based on HTML structure and content analysis. With schema, you tell them directly. This removes ambiguity and enables features that would not otherwise be possible.

Why schema matters in 2026

Schema matters more than ever for three reasons:

1. Rich results — schema qualifies your pages for enhanced SERP features (star ratings, FAQ accordions, breadcrumb trails, event listings) that increase visibility and click-through rate
2. AI extractability — structured data helps AI engines (ChatGPT, Perplexity, AI Overviews) parse and cite your content
3. Knowledge graph — Organization and Person schema feed Google's Knowledge Panel and entity understanding

In a world where AI engines generate answers, the sites with the clearest structured data are the ones that get understood — and cited.

Schema, structured data, and JSON-LD: understanding the terms

These terms are often used interchangeably, but they are distinct:

  • Schema (schema.org) — the vocabulary. A collaborative project by Google, Microsoft, Yahoo, and Yandex that defines types (Article, Product, Event) and properties (name, datePublished, price).
  • Structured data — the concept. Organizing data in a structured, standardized format that machines can parse.
  • JSON-LD — the format. JavaScript Object Notation for Linked Data. The specific syntax used to write structured data in your HTML.

You use the schema vocabulary, in JSON-LD format, to add structured data to your pages.

The three formats of structured data

There are three ways to add structured data to a page. Use JSON-LD.

A script tag containing a JavaScript object, placed in the head or body of the page:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "The Complete Guide to SEO",
  "author": {
    "@type": "Person",
    "name": "Jane Doe"
  },
  "datePublished": "2026-09-12"
}
</script>

Why JSON-LD is preferred:

  • Google explicitly recommends it — see Google's introduction to structured data
  • It separates data from presentation (no inline attributes in your HTML)
  • It is easier to read, write, and maintain
  • It can be injected dynamically (via CMS, tag manager, or server-side rendering)
  • It is the format Google's documentation and examples use

Microdata (legacy)

Attributes added directly to HTML elements:

<div itemscope itemtype="https://schema.org/Article">
  <h1 itemprop="headline">The Complete Guide to SEO</h1>
  <span itemprop="author" itemscope itemtype="https://schema.org/Person">
    <span itemprop="name">Jane Doe</span>
  </span>
</div>

Microdata still works but is not recommended for new implementations. It mixes data with presentation and is harder to maintain.

RDFa (legacy)

Similar to Microdata but with a different syntax. Also legacy — do not use for new implementations.

The schema types every site needs

1. Organization schema

Defines your brand as an entity. Place on the homepage.

{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Example Company",
  "url": "https://example.com",
  "logo": "https://example.com/logo.png",
  "description": "A transcription service for businesses.",
  "sameAs": [
    "https://twitter.com/example",
    "https://linkedin.com/company/example",
    "https://youtube.com/@example",
    "https://en.wikipedia.org/wiki/Example"
  ],
  "contactPoint": {
    "@type": "ContactPoint",
    "telephone": "+1-555-0100",
    "contactType": "customer service"
  }
}

Key properties:

  • name — your brand name (consistent everywhere)
  • url — your homepage URL
  • logo — your official logo (used in Knowledge Panel)
  • sameAs — links to your social profiles and Wikipedia (crucial for entity clarity)
  • contactPoint — contact information

2. Service or Product schema

Defines what you offer. Place on commercial pages.

Service:

{
  "@context": "https://schema.org",
  "@type": "Service",
  "serviceType": "Transcription",
  "provider": {
    "@type": "Organization",
    "name": "Example Company"
  },
  "areaServed": "Worldwide",
  "description": "AI-powered transcription with 99% accuracy."
}

Product:

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Pro Transcription Plan",
  "description": "Unlimited AI transcription with human review.",
  "brand": {
    "@type": "Brand",
    "name": "Example Company"
  },
  "offers": {
    "@type": "Offer",
    "price": "29.00",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock"
  }
}

3. Article schema

Defines blog posts and articles. Place on every content page.

{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "The Complete Guide to SEO in 2026",
  "author": {
    "@type": "Person",
    "name": "Jane Doe",
    "url": "https://example.com/authors/jane-doe"
  },
  "publisher": {
    "@type": "Organization",
    "name": "Example Company",
    "logo": {
      "@type": "ImageObject",
      "url": "https://example.com/logo.png"
    }
  },
  "datePublished": "2026-09-12",
  "dateModified": "2026-09-12",
  "image": "https://example.com/images/guide-hero.jpg",
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://example.com/guides/complete-guide-to-seo"
  }
}

Key properties:

  • headline — the article title (must match the visible H1)
  • author — defined as a Person entity (with their own author page)
  • datePublished and dateModified — must be accurate
  • image — the article's hero image
  • mainEntityOfPage — the canonical URL of the article

4. FAQ schema

Marks up question-answer pairs. Place on Q&A pages.

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "What is SEO?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "SEO is the practice of increasing visibility in search engines through technical health, content, and links."
      }
    },
    {
      "@type": "Question",
      "name": "How long does SEO take?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Most sites see meaningful results in 3–6 months and significant results in 6–12 months."
      }
    }
  ]
}

Rules:

  • Only mark up questions and answers that are visible on the page
  • Do not use FAQ schema for advertising or promotional content
  • Each question must have a visible answer on the page
  • Do not use FAQ schema on every page — only pages that are genuinely Q&A format

5. Breadcrumb schema

Defines the page's position in the site hierarchy. Place on all inner pages.

{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Home",
      "item": "https://example.com"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Guides",
      "item": "https://example.com/guides"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "Complete Guide to SEO",
      "item": "https://example.com/guides/complete-guide-to-seo"
    }
  ]
}

6. HowTo schema

Marks up step-by-step instructions. Place on instructional content.

{
  "@context": "https://schema.org",
  "@type": "HowTo",
  "name": "How to optimize a page for featured snippets",
  "step": [
    {
      "@type": "HowToStep",
      "name": "Identify the question",
      "text": "Find the question your audience is asking."
    },
    {
      "@type": "HowToStep",
      "name": "Structure the answer",
      "text": "Write a concise 40–60 word answer in a clear question-answer pattern."
    },
    {
      "@type": "HowToStep",
      "name": "Implement schema",
      "text": "Add FAQ or HowTo schema to make the content machine-readable."
    }
  ]
}

Implementation best practices

Match schema to visible content

This is the most important rule. The content described in your schema must be visible on the page. Do not:

  • Mark up questions that are not displayed on the page
  • Include prices or ratings that are not visible
  • Mark up content that requires user action to reveal (collapsed accordions, tabbed content)
  • Use schema types that do not match your content (e.g., Review schema on a non-review page)

Google can detect mismatches and may issue manual actions.

Use the correct types

Choose the schema type that matches your content:

  • Blog post → Article (or BlogPosting, a subtype of Article)
  • Product page → Product with Offer
  • Service page → Service
  • Q&A page → FAQPage
  • Step-by-step guide → HowTo
  • Event page → Event
  • Recipe → Recipe
  • Video → VideoObject

Include all required properties

Each schema type has required properties. If you omit them, the schema will not validate and will not generate rich results. Check the schema.org documentation for required properties for each type.

Keep schema updated

Update your schema when content changes:

  • dateModified should reflect the actual last modified date
  • Author changes should be reflected in the schema
  • Price and availability changes should update Product schema
  • Removed content should have its schema removed

Do not duplicate schema

Each piece of content should be described once. Do not:

  • Add the same schema type twice on one page
  • Use both JSON-LD and Microdata for the same content
  • Include Organization schema on every page (put it on the homepage, reference it from other pages via publisher)

Validating and testing schema

Google Rich Results Test

The primary tool for testing schema:

1. Go to search.google.com/test/rich-results
2. Enter your URL or paste your schema code
3. Review the detected schema types and any errors or warnings

Errors must be fixed — they prevent rich results. Warnings should be reviewed — they do not prevent rich results but indicate missing recommended properties.

Schema.org validator

Validates schema against the full schema.org vocabulary (not just Google's supported types). Use the Schema.org validator for types Google does not support but that other search engines or AI models might use.

Google Search Console Enhancements report

Monitors schema across your entire site:

  • Shows schema types Google has detected
  • Reports errors and warnings by page
  • Alerts you to new issues
  • Tracks fix status over time

Check this report weekly for new schema issues.

Schema and AI engines

Schema is increasingly important for AI engines (ChatGPT, Perplexity, AI Overviews). These engines use schema to:

  • Parse content — schema helps LLMs understand what a page is about
  • Extract answers — FAQ and HowTo schema make content directly extractable
  • Identify entities — Organization and Person schema define entities the knowledge graph understands
  • Determine authority — author credentials and publisher information signal authority

For GEO (Generative Engine Optimization), schema is the foundation of AI extractability. Read our GEO Explained Guide for more.

Sources & Further Reading

  • Schema.org — About Schema.org

Official documentation explaining Schema.org as a collaborative project by Google, Microsoft, Yahoo, and Yandex.
schema.org/docs/about.html

  • Google Search Central — Introduction to structured data

Official guide to structured data formats, including Google's recommendation to use JSON-LD.
developers.google.com/search/docs/appearance/structured-data/intro-structured-data

  • Google Search Central — Search Gallery

The canonical list of Google-supported structured data types and their rich result features.
developers.google.com/search/docs/appearance/structured-data/search-gallery

  • Google Rich Results Test

Official tool for validating structured data and checking rich result eligibility.
search.google.com/test/rich-results

  • Schema.org Validator

Official validator for testing schema against the full Schema.org vocabulary.
validator.schema.org

Common schema mistakes

  • Missing schema entirely — the most common mistake; many sites have no structured data
  • Invalid schema — syntax errors, missing required properties, incorrect types
  • Schema-content mismatch — marking up content that is not on the page
  • Duplicate schema — the same schema type added multiple times
  • Outdated schema — schema that does not reflect current content
  • Wrong format — using Microdata or RDFa instead of JSON-LD
  • No validation — deploying schema without testing in Rich Results Test
  • Spammy schema — using schema types that do not match content (e.g., Review schema on non-review pages)

The bottom line

Schema is the language machines speak. In a world where AI engines generate answers, the sites with the clearest, most comprehensive structured data are the ones that get understood — and cited.

It is not optional anymore. It is the price of admission. Implement the essential schema types, validate them, keep them updated, and monitor for errors. The sites that do this are the ones that appear in rich results, knowledge panels, and AI-generated answers. The sites that do not are invisible.

Izajul Haque

Izajul Haque

SEO, AEO & GEO consultant. I help businesses get discovered, understood, and cited across Google, AI Overviews, ChatGPT, and Perplexity. More about Izajul →

Frequently Asked Questions

Schema markup is a form of structured data (usually JSON-LD) that you add to your web pages to describe your content to search engines in a standardized format. It tells Google exactly what your content is — an article, a product, a FAQ, an event — so the search engine can understand it with certainty and display it in rich results.

Schema (schema.org) is the vocabulary — the defined types and properties. Structured data is the concept of organizing data in a structured format. JSON-LD is the format — the specific syntax (JavaScript Object Notation for Linked Data) used to write structured data in your HTML. You use the schema vocabulary, in JSON-LD format, to add structured data to your pages.

Schema is not a direct ranking factor, but it enables rich results (star ratings, FAQ accordions, breadcrumbs) that increase click-through rate, and it helps Google and AI engines understand your content — which indirectly improves rankings. It is essential for AI citation visibility and knowledge graph presence.

Use JSON-LD. Google explicitly recommends it. It is easier to implement (a script tag in the head or body), it separates data from presentation, it is easier to maintain, and it is the format Google's documentation and examples use. Microdata and RDFa are legacy formats that still work but are not recommended for new implementations.

Use Google's Rich Results Test (search.google.com/test/rich-results) to validate schema and check for rich result eligibility. Use the Schema.org validator for full schema validation. Monitor the Enhancements report in Google Search Console for schema errors and warnings across your site.

Yes, if implemented incorrectly. Marking up content that is not visible on the page, using schema that does not match your content type, or spamming schema types can trigger manual actions and loss of rich results. Always match schema to visible content and validate before deploying.

Let's talk

Your next customer might not click a blue link — they'll ask an AI. Be the answer.

Book a free strategy call and I'll audit your visibility across Google, AI Overviews, ChatGPT, and Perplexity — then map out exactly what it takes to be found and cited.