Chapter 6 of 12

Schema Markup and Structured Data

Structured data translates your content into a language that search engines and AI systems understand natively. Schema markup is the bridge between human-readable pages and machine-readable knowledge.

Schema markup and structured data - JSON-LD implementation for SEO and AI visibility
Photo by AISEOShift on AISEOShift

Every page on your website contains information that is obvious to human readers but ambiguous to machines. A human reads a recipe page and instantly understands the cook time, ingredients, and serving size. A search engine or AI system reads the same page and sees paragraphs of text that it must interpret. Schema markup eliminates that interpretation gap by providing explicit, structured data about what your content represents, who created it, and how its parts relate to each other.

In 2026, structured data has moved from an SEO bonus to a core requirement. Google uses schema markup to generate rich results, knowledge panels, and AI Overview citations. AI systems use structured data to verify facts, understand entity relationships, and determine which sources to trust. Sites without schema markup can still rank and get cited, but they are competing with one hand tied behind their back.

What Structured Data Is and Why It Matters

Structured data is a standardized format for providing explicit information about a page and its content. The Schema.org Getting Started guide explains the core vocabulary, which is used to classify content into types (Article, Product, FAQ, Person, Organization) and describe properties of each type (author, date published, price, rating).

The Problem Structured Data Solves

Consider a page about a laptop. The page mentions “starting at $999,” “4.5 stars from 2,847 reviews,” and “ships in 2-3 business days.” A human reader understands that $999 is the price, 4.5 stars is the rating, and 2-3 days is the shipping time. But without structured data, a search engine must infer these relationships from context. It might mistake the review count for a model number or the shipping time for a return window.

Schema markup removes this ambiguity. It says explicitly: this is a Product, its price is $999, its aggregate rating is 4.5 based on 2,847 reviews, and its delivery time is 2-3 business days. There is no inference required. The information is precise and unambiguous.

Google uses structured data to generate rich results, the enhanced search listings that include star ratings, prices, images, FAQ accordions, recipe cards, event dates, and other visual elements. Rich results consistently achieve higher click-through rates than standard blue links. A product listing with star ratings, price, and availability stands out visually and provides information that helps searchers decide whether to click.

Not all schema types trigger rich results. Google’s Structured Data Search Gallery shows the specific subset of Schema.org types eligible for rich results, and each type has required and optional properties. Meeting the required properties gets you eligible for the rich result; adding optional properties can improve the quality and comprehensiveness of what appears.

Benefits for AI Systems

This is where structured data becomes strategically essential in 2026. AI systems use structured data to understand content with high confidence. When an LLM retrieves your page and finds JSON-LD markup declaring the author, publication date, topic, and key facts, it can process that information as verified metadata rather than extracted text.

Structured data helps AI systems in several specific ways. It identifies the content type, so the AI knows whether it is reading a news article, a product review, a how-to guide, or a FAQ page. It establishes authorship and publication context. It provides explicit entity relationships that help the AI connect your content to its knowledge graph. And it offers structured facts (prices, ratings, dates, specifications) that the AI can cite with confidence.

For a detailed exploration of how schema markup specifically enhances AI visibility, see our guide on schema markup for AI visibility.

JSON-LD: The Preferred Format

JSON-LD (JavaScript Object Notation for Linked Data) is a method of encoding structured data as a standalone script block in your page’s HTML, separate from the visible markup. Schema markup can be implemented in three formats: JSON-LD, Microdata, and RDFa. Google explicitly recommends JSON-LD, and it is the format you should use.

Why JSON-LD Wins

JSON-LD is injected as a script block in your page’s HTML, separate from the visible content. This separation has several advantages. It does not clutter your HTML markup. It can be added or modified without changing the page’s visible structure. It can be managed through tag managers or CMS plugins. And it is easier to read, write, debug, and maintain than inline formats.

A basic JSON-LD block looks like this:

{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Technical SEO Audit Guide for 2026",
  "author": {
    "@type": "Person",
    "name": "Jane Smith"
  },
  "datePublished": "2026-03-15",
  "dateModified": "2026-05-01",
  "publisher": {
    "@type": "Organization",
    "name": "Example Company",
    "logo": {
      "@type": "ImageObject",
      "url": "https://example.com/logo.png"
    }
  }
}

The @context declares the vocabulary (Schema.org). The @type identifies the content type. Every subsequent property uses Schema.org’s defined property names and expected value types.

JSON-LD Placement

Place JSON-LD script blocks in the <head> section of your page. While Google can process JSON-LD in the <body>, head placement is conventional and ensures the structured data is parsed before the content. Multiple JSON-LD blocks can appear on a single page, each describing a different entity or content element.

Common JSON-LD Mistakes

Mismatching structured data and visible content. If your JSON-LD says the price is $99 but the page shows $149, Google may penalize your structured data eligibility. Structured data must accurately reflect visible content.

Using incorrect types or properties. Schema.org has a specific hierarchy. A BlogPosting is a subtype of Article, which is a subtype of CreativeWork. Using the wrong type does not cause errors, but it can limit your rich result eligibility.

Missing required properties. Each schema type has properties that Google requires for rich result eligibility. An Article without headline and datePublished, or a Product without name, will not trigger rich results.

Marking up content that is not visible. Google requires that structured data represents content that users can see on the page. Marking up hidden content, content behind tabs or accordions (unless the content is accessible without user interaction), or content that exists only in the structured data violates Google’s guidelines.

Key Schema Markup Types for SEO

Not every Schema.org type matters equally for SEO. The following types have the most impact on search visibility and AI citation in 2026.

Article and BlogPosting

Article (and its subtype BlogPosting) markup tells search engines that a page is an editorial piece. This is foundational for any content-publishing site.

Key properties include headline, author (as a Person with name and optionally url), datePublished, dateModified, publisher (as an Organization), image, and description. The dateModified property is particularly important because it signals content freshness to both Google and AI systems.

For AI visibility, Article markup helps LLMs understand the editorial context of your content. An LLM evaluating whether to cite your page can use the author, publication date, and publisher information to assess credibility. Pages with complete Article markup are easier for AI systems to classify, evaluate, and cite.

FAQ Schema

FAQPage schema marks up pages that contain a list of questions and answers. When Google processes FAQ schema, it can display the questions and answers directly in search results as expandable accordions, significantly increasing the visual footprint of your listing.

Each question-answer pair is marked up as a Question entity with an acceptedAnswer property:

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "How long does a technical SEO audit take?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "A comprehensive technical SEO audit typically takes 2-4 weeks for a medium-sized site (1,000-10,000 pages), including analysis and documentation of findings."
      }
    }
  ]
}

FAQ schema is exceptionally valuable for AI systems because it provides pre-structured question-answer pairs. An LLM responding to a question can match the user’s query against your FAQ questions and extract the corresponding answer with high confidence. This makes FAQ markup one of the most direct paths to AI citation.

Google has tightened eligibility for FAQ rich results, now showing them primarily for authoritative government and health sites. But even when FAQ markup does not trigger a visible rich result, it still helps search engines and AI systems understand your content structure.

HowTo Schema

HowTo markup structures step-by-step instructions with explicit steps, tools, supplies, and time estimates. It is ideal for tutorial content, process documentation, and instructional pages.

Each step includes a name (the step title), text (the instruction), and optionally an image. The overall HowTo entity can include totalTime, estimatedCost, and supply or tool lists. This level of structure makes your instructional content highly extractable by AI systems, which frequently need to provide step-by-step answers.

Google can display HowTo rich results as expandable step-by-step cards in search results. Even when the rich result does not appear, the structured format helps Google understand the procedural nature of your content and match it to how-to queries.

Product Schema

Product markup provides machine-readable information about a product including name, description, brand, price (through an Offer entity), rating (through AggregateRating), review data, availability, and product identifiers like SKU, GTIN, or MPN.

For e-commerce sites, Product schema is essential. It enables rich product results with price, availability, and rating information in Google Shopping and organic results. It also provides AI systems with verified product data they can cite in response to product comparison and recommendation queries.

The Offer subtype within Product markup specifies pricing details including price, priceCurrency, availability (InStock, OutOfStock, PreOrder), and priceValidUntil. Google uses this information both for rich results and for Google Shopping feeds.

Organization Schema

Organization markup establishes your business entity in search engines’ knowledge systems. It includes your organization’s name, logo, founding date, contact information, social media profiles, and the same-as links that connect your entity across platforms.

Place Organization markup on your homepage (or a dedicated about page) to help search engines build your knowledge panel. Proper implementation depends on the technical SEO foundations covered earlier in this guide. The sameAs property is particularly important: listing your official profiles on LinkedIn, Twitter, Wikipedia, Crunchbase, and other platforms helps search engines and AI systems verify your entity and connect information about you across the web.

For AI systems, Organization markup provides the entity-level context that influences trust assessments. When an LLM encounters your content and checks the publisher’s Organization markup, it gains structured information about who you are, how long you have existed, and where else you are referenced online. This context contributes to the authority evaluation that determines whether your content gets cited.

BreadcrumbList markup provides an explicit representation of your page’s position within your site hierarchy. It tells search engines exactly how the page relates to parent categories and the homepage.

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

Google displays breadcrumb-structured URLs in search results, replacing the raw URL with a readable path. More importantly, BreadcrumbList markup helps AI systems understand your site’s topical architecture. It tells the AI that this page on schema markup exists within the context of a broader SEO guide, which exists as a top-level section of your site. This hierarchical context can influence how an AI system evaluates the page’s scope and authority.

Schema for AI Visibility

Beyond the individual schema types, several structured data strategies specifically enhance how AI systems interact with your content. As the AI SEO shift makes machine-readable data more important than ever, these strategies deserve particular attention.

Entity Disambiguation

AI systems need to distinguish between entities that share names. “Apple” could be a fruit, a technology company, or a record label. Schema markup with explicit type declarations and sameAs links to authoritative sources (Wikipedia, Wikidata) helps AI systems correctly identify which entity your content discusses.

For people, using Person schema with identifiers like ORCID, social profiles, or links to authoritative biographies helps AI systems connect your author entities to their broader knowledge base. This contributes to the expertise assessment that influences citation decisions.

Fact Markup and Claims

Schema.org includes types like Claim, ClaimReview, and StatisticalPopulation that let you explicitly mark up factual assertions and their sources. While these types are not widely used for traditional SEO rich results, they provide high-value signals to AI systems that need to evaluate the factual reliability of your content.

Marking up statistics with their source, date, and methodology gives AI systems the metadata they need to assess whether your data is current, credible, and citable. Combined with the strategies in our AI search optimization chapter, structured fact markup can significantly increase your citation rate.

Author Authority Markup

Connecting your content to identifiable, credible authors through Person schema is one of the strongest structured data signals for AI visibility. Include the author’s name, job title, employer, credentials, and links to their authoritative profiles. When an AI system evaluates whether to cite your content, the author’s credentials can be a deciding factor.

This aligns with Google’s E-E-A-T framework, explored in our E-E-A-T chapter. Google’s quality guidelines emphasize that content on YMYL (Your Money or Your Life) topics should be created by people with relevant expertise. Schema markup makes that expertise machine-readable.

Testing and Validation

Schema markup testing is the process of verifying that your structured data is syntactically correct, semantically valid, and eligible to trigger rich results. Structured data must be syntactically correct and semantically valid to deliver its benefits. Several tools help ensure your markup meets the required standards.

Google’s Rich Results Test

Google’s Rich Results Test checks whether your structured data is eligible to trigger rich results in Google Search. It parses your page’s structured data, validates it against Google’s requirements for each type, and shows a preview of what the rich result would look like. This is the definitive test for Google-specific rich result eligibility.

Schema.org Validator

The Schema.org validator checks your markup against the full Schema.org vocabulary, not just the subset Google uses for rich results. This is useful for ensuring comprehensive correctness, especially for schema types that benefit AI systems but do not trigger Google rich results.

Google Search Console Enhancements Report

Search Console provides ongoing monitoring of your structured data performance. The Enhancements section shows how many pages have valid markup, how many have errors, and how many have warnings for each schema type. Monitor this report regularly to catch issues before they affect your rich result eligibility.

Structured Data Testing Workflow

Before deploying new structured data, follow a testing sequence. First, validate the JSON-LD syntax (a JSON linter catches brackets, commas, and quotation mark issues). Second, test with the Schema.org validator for vocabulary correctness. Third, test with Google’s Rich Results Test for eligibility. Fourth, deploy and monitor in Search Console for 48 to 72 hours to confirm that Google processes the markup correctly.

Schema Stacking: Combining Multiple Types

Schema stacking is the practice of applying multiple complementary schema types to a single page to give search engines and AI systems a complete, machine-readable description. The most effective structured data implementations do not use a single schema type per page. They stack multiple complementary types to provide a comprehensive machine-readable description of the page.

How Schema Stacking Works

A blog post about the best CRM software might include Article markup (describing the editorial content), FAQPage markup (for a FAQ section at the bottom), Organization markup (identifying the publisher), BreadcrumbList markup (establishing the page’s position in the site hierarchy), and ItemList markup (structuring the list of recommended CRMs).

Each schema type adds a layer of machine-readable context. Together, they give search engines and AI systems a complete understanding of what the page is, who published it, where it sits in the site, what questions it answers, and what products it covers.

Nesting vs. Separate Blocks

Schema types can be nested within each other or declared as separate JSON-LD blocks. Nesting is appropriate when there is a clear parent-child relationship: the author (Person) nested within the Article, or the offer (Offer) nested within the Product. Separate blocks are appropriate for independent entities that co-exist on the same page: the Article and the BreadcrumbList, or the FAQPage and the Organization.

Both approaches are valid. Choose whichever makes your code more readable and maintainable. Google processes both equally.

Avoid Over-Markup

Schema stacking is powerful, but marking up content that does not exist on the page violates Google’s guidelines and can result in manual actions. Every schema property should correspond to visible content. Do not add FAQ markup for questions that are not on the page. Do not add rating markup for products you have not reviewed. Do not add HowTo markup for content that is not actually a step-by-step guide.

The goal is accurate, comprehensive representation, not markup inflation. Quality structured data that precisely describes your actual content is always more valuable than excessive markup that stretches or misrepresents what is on the page.

Implementation Strategies

How you implement schema markup depends on your technical setup and the scale of your site.

CMS Plugins

WordPress users can use plugins like Yoast SEO, Rank Math, or Schema Pro to generate JSON-LD automatically. These plugins handle Article, Organization, BreadcrumbList, and other common types based on your content and settings. For most WordPress sites, a well-configured schema plugin handles 80 percent of your structured data needs.

The remaining 20 percent, types like FAQ, HowTo, and custom Product markup, may require manual JSON-LD blocks added through custom fields or direct template editing.

Template-Level Implementation

For custom-built sites or headless CMS setups, implement schema markup at the template level. Create JSON-LD templates for each content type (article, product, FAQ, how-to) that dynamically populate properties from your CMS data. This ensures every page of a given type gets consistent, accurate structured data.

Manual Implementation

For one-off pages or small sites, manual JSON-LD is straightforward. Write the JSON-LD block directly in the page’s HTML. This gives you complete control but does not scale well. Use manual implementation for your homepage Organization markup, high-priority landing pages, or pages with unique schema requirements.

Programmatic Validation

At scale, automated testing catches schema issues before they reach production. Integrate schema validation into your deployment pipeline by running JSON-LD through a validator during the build process. This catches syntax errors, missing required properties, and type mismatches before they affect your live site.

Frequently asked questions

What is schema markup?

Schema markup is code you add to your web pages that provides search engines and AI systems with explicit, structured information about your content. It uses the Schema.org vocabulary to classify content into types like Article, Product, FAQ, and Organization, and to describe specific properties of each type. Schema markup helps machines understand the meaning of your content rather than just reading it as unstructured text.

Does schema markup help SEO?

Schema markup does not directly boost rankings, but it enables rich results in Google Search — enhanced listings with star ratings, prices, FAQ accordions, and other visual elements that significantly increase click-through rates. It also helps AI systems understand and cite your content with higher confidence, making it an increasingly important factor for visibility in both traditional and AI-powered search.

What is JSON-LD?

JSON-LD (JavaScript Object Notation for Linked Data) is the structured data format that Google explicitly recommends for implementing schema markup. It is added as a self-contained script block in your page’s HTML head section, separate from your visible content, which makes it easier to add, modify, and maintain than inline formats like Microdata or RDFa.

How do I test schema markup?

Use Google’s Rich Results Test (search.google.com/test/rich-results) to check whether your markup qualifies for rich results, and the Schema.org Validator to verify correctness against the full vocabulary. After deploying, monitor Google Search Console’s Enhancements report for 48 to 72 hours to confirm that Google processes your markup without errors or warnings.

Go Deeper

This blog post explores the topics covered in this chapter in more detail: