Schema Markup Guide | Discoverability Co

Resources / Schema Markup Guide

Schema Markup Guide

How to use schema markup to improve SEO and AI search visibility. JSON-LD, schema types with code examples, and how structured data affects AI Overviews.

Schema markup is structured data you add to your website to help search engines and AI systems understand your content. It uses the schema.org vocabulary, an open standard maintained by Google, Microsoft, Yahoo, and Yandex, to describe things on the web in a format machines can parse: businesses, products, articles, events, people, and hundreds of other types.

In 2026, structured data does more than generate star ratings in Google results. It serves as a primary machine-readable signal that helps AI search engines like Google AI Overviews, Perplexity, and ChatGPT decide whether to cite your content.

800+ Schema types in the vocabulary You need a handful, matched to your business
3 Types every page needs Organization or LocalBusiness, WebSite, BreadcrumbList
5 Types that cover most businesses LocalBusiness, FAQPage, Review, plus Article and Product
65% U.S. adults who have used AI search or chat tools Pew Research, March 2025
Every figure above is sourced in the sections and FAQs below
Schema typeWhere it goesWhat it unlocks
Organization / LocalBusinessHomepage, every siteEntity identity: name, address, logo, social profiles. The foundation for Knowledge Graph eligibility
WebSite + BreadcrumbListEvery pageSite hierarchy, breadcrumb trails in results, and the sitelinks search box
ArticleBlog posts and written contentAuthor and date signals for Google News, Discover, and AI citations
FAQPageQ&A and service pagesFAQ accordions in Google; answers AI systems can extract and cite directly
Product / Service / ReviewEcommerce and service pagesPrice, availability, and star ratings directly in search results
PersonAbout pages and personal brandsEntity recognition for individuals: job title, credentials, sameAs profiles
The decision matrix, condensed. Full code examples for each type below

What is schema markup?

Schema markup is code you place on your web pages that tells search engines and AI systems what your content means. When a search engine crawls a page that says "Drew Chapin founded The Discoverability Company in Philadelphia," it sees text. When that same information is wrapped in schema markup, the search engine understands that Drew Chapin is a Person, The Discoverability Company is an Organization, and Philadelphia is a location. That distinction matters for how your content gets indexed, displayed, and cited.

JSON-LD: the recommended format

The standard format in 2026 is JSON-LD (JavaScript Object Notation for Linked Data). Google explicitly recommends JSON-LD over older formats like Microdata and RDFa. JSON-LD sits in a <script> tag in your page's <head>, separate from your visible content, which makes it clean to implement and maintain without touching your HTML structure.

Here is a minimal example of Organization schema in JSON-LD:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Your Business Name",
  "url": "https://yourdomain.com",
  "description": "What your business does in one sentence.",
  "foundingDate": "2020",
  "address": {
    "@type": "PostalAddress",
    "addressLocality": "Philadelphia",
    "addressRegion": "PA",
    "addressCountry": "US"
  },
  "sameAs": [
    "https://linkedin.com/company/your-company",
    "https://twitter.com/yourcompany"
  ]
}
</script>

That block of JSON tells every search engine and AI system exactly what your business is, where it is located, when it was founded, and where its social profiles live. Without it, they have to guess from your page text. They often guess wrong.

Does schema markup help SEO?

Schema markup produces two concrete SEO outcomes: rich results (also called rich snippets) and entity understanding.

Rich results are the enhanced search listings you see in Google: star ratings under product results, FAQ accordions, recipe cards, event dates, and how-to steps. Pages with rich results consistently see higher click-through rates than standard blue links. FAQ rich results increase your search results real estate, pushing competitors lower on the page.

Entity understanding is less visible but highly important. When Google's Knowledge Graph recognizes your business as a distinct entity with known attributes (founder, location, industry, products), you become eligible for knowledge panels and entity-based search features. Schema markup is how you feed the Knowledge Graph the facts it needs.

Google has stated that structured data is not a direct ranking factor. The downstream effects (higher click-through rates from rich results, better entity understanding, eligibility for special search features) support organic growth over time.

Schema markup for AI search

AI-powered search engines are changing how information gets surfaced. Google AI Overviews appear on a large portion of search queries. Perplexity processes millions of searches daily with full source citations. ChatGPT's search integration pulls from the live web. These systems need structured, machine-readable data to make citation decisions. Schema markup provides that data.

How AI Overviews use structured data: When Google generates an AI Overview, it selects source content based on authority, relevance, and parseability. Pages with clean JSON-LD schema are easier for the AI to extract facts from. This makes them more likely to be cited.

How Perplexity and ChatGPT parse schema: These platforms crawl the live web. When they encounter JSON-LD on a page, they can extract structured facts (business type, location, services, product specs) with high confidence. Unstructured text requires inference. Inference introduces error. AI systems prefer certainty.

Speakable schema: This schema type is specifically designed for AI and voice assistants. It identifies which sections of your content are most suitable for text-to-speech playback and AI citation. As AI search becomes conversational, Speakable schema becomes a direct signal for "cite this content."

Types of schema markup: matched to your business

There are over 800 schema types in the schema.org vocabulary. You do not need all of them. You need the ones that match your business type and content.

Organization and LocalBusiness schema

Organization or LocalBusiness: The foundation. Every website needs these. Identifies your business as an entity with a name, address, URL, logo, and social profiles. Use LocalBusiness (or a subtype like Restaurant, MedicalBusiness, LegalService) if you serve a geographic area. Use Organization for companies without a physical storefront.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "Your Business",
  "url": "https://yourdomain.com",
  "telephone": "+1-555-123-4567",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "123 Main St",
    "addressLocality": "Philadelphia",
    "addressRegion": "PA",
    "postalCode": "19103",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 39.9526,
    "longitude": -75.1652
  },
  "openingHoursSpecification": {
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
    "opens": "09:00",
    "closes": "17:00"
  }
}
</script>

WebSite: Tells search engines this is a website with a name and optional search functionality. Including SearchAction enables the Google sitelinks search box.

BreadcrumbList: Provides navigation context. Helps search engines understand your site hierarchy and display breadcrumb trails in search results.

Article and FAQ schema

Article (or NewsArticle, BlogPosting): For any written content. Includes author, date published, headline, and image. This helps you appear in Google News, Discover, and AI citations.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Your Article Title",
  "author": {
    "@type": "Person",
    "name": "Author Name",
    "url": "https://yourdomain.com/about"
  },
  "datePublished": "2026-04-01",
  "dateModified": "2026-07-27",
  "publisher": {
    "@type": "Organization",
    "name": "Your Business",
    "url": "https://yourdomain.com"
  },
  "description": "Article description for search results.",
  "mainEntityOfPage": "https://yourdomain.com/your-article"
}
</script>

FAQPage: For any page with questions and answers. This schema type maps to how people query AI systems. When someone asks ChatGPT a question and your FAQ schema contains the exact answer, you become a high-confidence citation source.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "What is schema markup?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Schema markup is structured data code added to web pages that helps search engines and AI systems understand the content in a machine-readable format."
      }
    },
    {
      "@type": "Question",
      "name": "Does schema markup help SEO?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes. Schema markup enables rich results in Google (stars, FAQs, events), which increase click-through rates. It also improves entity understanding and AI search visibility."
      }
    }
  ]
}
</script>

HowTo: For step-by-step instructions. Generates how-to rich results with numbered steps in Google.

Product, Service, and Review schema

Product: For ecommerce. Includes price, availability, reviews, and specifications. Generates product rich results with pricing and ratings directly in search.

Service: For service businesses. Describes what you offer, the area you serve, and pricing if applicable.

Review and AggregateRating: Displays star ratings in search results. Can be nested inside Product, LocalBusiness, or Organization schema.

Person schema (for professionals and personal brands)

Person: For individuals who want to establish entity recognition. Includes name, job title, education, awards, and social profiles. When AI systems encounter Person schema with rich attributes, they can identify and describe that individual.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Person",
  "name": "Jane Smith",
  "jobTitle": "Chief Technology Officer",
  "worksFor": {
    "@type": "Organization",
    "name": "Tech Company Inc"
  },
  "alumniOf": {
    "@type": "CollegeOrUniversity",
    "name": "MIT"
  },
  "sameAs": [
    "https://linkedin.com/in/janesmith",
    "https://twitter.com/janesmith"
  ],
  "knowsAbout": ["artificial intelligence", "machine learning", "data science"]
}
</script>

How to add schema markup to your website

Manual JSON-LD (any website)

Add a <script type="application/ld+json"> block to the <head> of your HTML. This works on any website regardless of platform: custom sites, static sites, headless CMS deployments, or hand-coded HTML.

Best practice: Use the @graph pattern to combine multiple schema types in a single block. This is cleaner than multiple separate script tags and allows you to reference entities by ID:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://yourdomain.com/#organization",
      "name": "Your Business",
      "url": "https://yourdomain.com"
    },
    {
      "@type": "WebSite",
      "@id": "https://yourdomain.com/#website",
      "url": "https://yourdomain.com",
      "name": "Your Business",
      "publisher": { "@id": "https://yourdomain.com/#organization" }
    },
    {
      "@type": "WebPage",
      "@id": "https://yourdomain.com/about/#webpage",
      "url": "https://yourdomain.com/about",
      "name": "About Us",
      "isPartOf": { "@id": "https://yourdomain.com/#website" }
    }
  ]
}
</script>

Schema markup in WordPress, Shopify, Squarespace, and Webflow

WordPress: Yoast SEO and Rank Math generate schema markup automatically. Yoast handles Organization, Article, and BreadcrumbList out of the box. Rank Math lets you configure schema per-page and per-post-type. For FAQPage and custom types, use manual JSON-LD blocks or a dedicated schema plugin like Schema Pro.

Shopify: Includes Product and BreadcrumbList schema automatically in most themes. Add additional schema via the theme.liquid file or apps like JSON-LD for SEO.

Squarespace: Adds basic schema for business info and blog posts automatically. Custom schema requires code injection in Page Settings or site-wide Code Injection.

Webflow: Does not add schema automatically. Use the Custom Code section in page settings to add JSON-LD manually. Webflow gives you full control, which means you can implement everything but need to do it yourself.

Schema markup validator: how to test your structured data

Implementing schema is the first step. You need to verify it works.

Google Rich Results Test

Enter a URL or paste code, and Google shows you which rich results your page is eligible for and flags any errors. Available at search.google.com/test/rich-results.

Schema.org validator

Validates against the full schema.org specification. Use this to catch issues Google's tool misses. Available at validator.schema.org.

Google Search Console

After your schema is live, check the Enhancements section in Google Search Console. It shows which schema types Google has detected across your site, which pages have errors, and which pages are eligible for rich results. This is your ongoing monitoring dashboard.

Common errors and how to fix them

Missing required properties: Each schema type has required and recommended properties. Google's test will flag missing required fields. The most common: Article schema missing author, Product schema missing offers, LocalBusiness missing address.

Mismatched content: Your schema data must match your visible page content. If your schema says a product costs $49 but the page says $59, that is a conflict Google will flag.

Invalid JSON syntax: A missing comma, unclosed bracket, or unescaped quote will break the entire block. Use a JSON validator if your structured data test shows parse errors.

Schema markup best practices

Implement schema on every page. Each page should have the schema types relevant to its content. The homepage gets Organization + WebSite. Blog posts get Article. Product pages get Product. Service pages get Service. Every page should include BreadcrumbList.

Use the @graph pattern to combine multiple schema types in a single JSON-LD block. This is cleaner, reduces script tags, and allows entity cross-referencing.

Keep schema in sync with content. If you update a product price, update the schema. If you move your office, update the address schema. Stale schema introduces conflicting signals.

Do not markup invisible content. Google's guidelines are clear: schema must describe content that is visible to the user on the page. Marking up content that users cannot see is considered spam and can result in manual penalties.

Test after every major site change. CMS updates, theme changes, and redesigns frequently break schema markup. Build schema validation into your deployment process.

Measuring schema markup impact

Schema markup impact is measurable:

Google Search Console rich result reports: The Enhancements section shows rich result impressions and click-through rates over time. Compare CTR before and after schema implementation.

Rich result appearance rate: In GSC's Performance report, filter by "Search Appearance" to see how often your pages appear with rich results. Track this monthly.

AI citation tracking: Periodically query ChatGPT, Perplexity, and Google AI Overviews with questions related to your business. Note whether your content is cited. Sites with complete schema are more likely to appear.

Knowledge Panel eligibility: If your Organization or Person schema is complete and matches authoritative third-party sources, you become eligible for a Google Knowledge Panel. Track whether your entity appears in the Knowledge Graph by searching your exact business name.

What to do next

Step 1: Run a free schema validation on your website to see what structured data you currently have and what is missing.

Step 2: Implement the schema types recommended for your business type, starting with Organization and WebSite.

Step 3: Validate with Google's Rich Results Test and monitor in Google Search Console.

We implement schema as part of AI search optimization: the crawl, the corrected JSON-LD, and the validation that proves it parses. Let's get to work.

Related resources

Drew Chapin

Drew is the founder of The Discoverability Company. He has spent nearly two decades in go-to-market roles at startup projects and venture-backed companies, is a mentor at the Founder Institute, and a Hustle Fund Venture Fellow. Read more about Drew →

Frequently Asked Questions

What is schema markup and does it improve rankings?

Schema markup is structured data code that helps search engines understand your content. It does not directly boost rankings, but it can improve click-through rates by enabling rich snippets and strengthens entity understanding inside Google's Knowledge Graph.

Which schema types are most important for businesses?

Start with LocalBusiness, FAQPage, and Review schema. If you publish articles, add Article schema. If you sell products, add Product schema. These five types cover what most businesses need.

Does schema markup help with AI search visibility?

Yes. AI tools like Google AI Overviews, ChatGPT, and Perplexity use structured data to understand what your business does. Clean schema makes it easier for AI to extract and cite your information accurately.

Can schema markup hurt my site if implemented incorrectly?

Yes. Google's Search Central documentation explicitly calls out schema spam as a manual action trigger. Inaccurate markup can result in rich result eligibility being revoked. Use Google's Rich Results Test after every implementation to catch errors before they go live.

How often should I update my schema markup?

Audit your structured data quarterly. Update it any time a business detail changes, such as a new address, phone number, or product offering. Stale schema harms your credibility with search engines and AI systems that cross-reference your markup against other sources.

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

All three are formats for adding structured data to web pages. JSON-LD sits in a separate script tag and is the simplest to implement and maintain. Microdata is woven into your HTML attributes. RDFa is similar to Microdata but uses different attribute names. Google recommends JSON-LD, and it is the standard for new implementations.

Bad markup is invisible until someone looks for it

We crawl your site the way a search engine does, find where the structured data is missing, broken, or contradicting the page it sits on, and ship the corrected JSON-LD. Work at this layer lands in weeks.

Let's get to work