Schema markup: which types matter, with examples, and what it does for AI

Kane Vu

Short answer

Schema markup is code that states facts about a page in a shared vocabulary, usually as a JSON-LD script: who the business is, what a product costs, who wrote an article. Google uses it to decide eligibility for rich results and says no special schema is needed for its AI features. Microsoft says schema helps AI systems interpret content. It is a low-cost label on real content, never a substitute for it.

What is schema markup?

Schema markup is a block of code on a page that states facts in a form machines can read without guessing. A person sees “Rosa’s Bakery, open until 6”. The markup says this is a business, its name is Rosa’s Bakery, it closes at 18:00.

The word comes from schema.org, a shared vocabulary founded by Google, Microsoft, Yahoo and Yandex and developed since April 2015 through a W3C community group. “Structured data” is the broader term for any such labeled data. In everyday use the two mean the same thing.

There are three formats: JSON-LD, Microdata and RDFa. Google writes that all three are equally fine as long as the markup is valid, and recommends the one easiest for you to maintain, which in most cases is JSON-LD. It sits in one script tag, apart from your visible HTML, so a designer can change the page without breaking it. Every example here uses JSON-LD.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Rosa's Bakery",
  "url": "https://www.example.com",
  "logo": "https://www.example.com/logo.png"
}
</script>

That is a complete, valid block. Everything else is adding the right type and the right properties.

Which schema types does a business website need?

Most business sites need three or four types. This table lists the common ones, and the last column says whether Google still shows anything for each.

TypeGoes onStatesGoogle’s use today
OrganizationHome pageName, logo, contact details, profilesLogo and knowledge panel details
LocalBusinessHome or location pageAddress, hours, phone, geoBusiness details in Search and Maps
ProductProduct pagesName, price, availability, reviewsProduct results, merchant listings
ArticlePosts and guidesHeadline, author, datesArticle display in Search
BreadcrumbListInner pagesWhere the page sits in the siteBreadcrumb trail in results
Review snippetReviews of a product or similarRating, reviewerRating stars, with limits
EventEvent pagesDate, place, ticketsEvent results
FAQPagePages with visible questionsQuestions and answersNo rich result since May 7, 2026

Google’s Search gallery has more specialized types for recipes, jobs, courses and others. Use one if your business really publishes that kind of page. Google advises setting fewer properties correctly rather than filling in every recommended one. FAQPage has its own story, told in our guide to FAQ schema.

Which type should you add first?

Start with the one that says who you are. Organization or LocalBusiness on the home page names the business, and other blocks can point back to it. Next comes what you sell: Product on product pages. If you sell services and not products, clear text on each service page does that job, and Google’s Search gallery lists no rich result for services. Article and BreadcrumbList often come from your platform at no extra cost, so check whether they are already there before adding them by hand. If two tools output the same type, keep one. Then check each template in the Rich Results Test and the Schema Markup Validator before moving on, because one broken block in a template becomes a broken block on every page that uses it.

What do the main types look like?

Three more examples cover most of what a small business needs. Replace every value with your own, and only include what also appears on the page.

LocalBusiness, on the home page or location page. Use a more specific type if one fits, such as Bakery, Dentist or Plumber. The “sameAs” list tells machines which profiles are yours.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Bakery",
  "name": "Rosa's Bakery",
  "url": "https://www.example.com",
  "image": "https://www.example.com/storefront.jpg",
  "telephone": "+1-555-010-0199",
  "priceRange": "$$",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "148 Main St",
    "addressLocality": "Portland",
    "addressRegion": "OR",
    "postalCode": "97201",
    "addressCountry": "US"
  },
  "openingHoursSpecification": [{
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": ["Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
    "opens": "07:00",
    "closes": "18:00"
  }],
  "sameAs": [
    "https://www.facebook.com/example",
    "https://www.instagram.com/example"
  ]
}
</script>

Product, on a product page. The price must match what the page shows, and it must be kept up to date.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Sourdough loaf, 800 g",
  "image": "https://www.example.com/sourdough.jpg",
  "description": "Naturally leavened loaf, baked daily.",
  "offers": {
    "@type": "Offer",
    "price": "9.50",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock"
  }
}
</script>

Article, on a guide or blog post. The author and the dates are the useful parts: they say who wrote the piece and how recent it is.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "How to store sourdough so it stays fresh",
  "datePublished": "2026-10-05T08:00:00-07:00",
  "dateModified": "2026-11-02T09:30:00-07:00",
  "author": {
    "@type": "Person",
    "name": "Rosa Alvarez",
    "url": "https://www.example.com/about"
  }
}
</script>

Which properties should you fill in?

Google’s requirements for its search features are lower than many people assume. This is what its documentation asks for on each type.

TypeGoogle requiresWorth adding
Organization“There are no required properties”Name, URL, logo, sameAs, address, contact details
LocalBusinessName and addressPhone, URL, opening hours, price range
ProductName, plus a review, a rating or an offerImage, description, price, availability
Article“There are no required properties”Headline, author, published and modified dates, image

Requirements for Google’s features are not the same as what is useful to other readers. An Organization block with no name passes Google’s rule and tells nobody anything. Start with what identifies you.

Where does each type go on a small site?

Each page should describe itself, and only the home page needs to describe the whole business.

PageMarkup to use
HomeOrganization or LocalBusiness
Location page, if you have severalLocalBusiness, one per page with its own address
Service pageBreadcrumbList; FAQPage if it shows real questions
Product pageProduct, BreadcrumbList
Blog post or guideArticle, BreadcrumbList
About, Contact, PrivacyUsually nothing more

Use one name and one URL for the business everywhere. If a block on an inner page describes your company again, it should match the home page exactly, down to the spelling.

A blank paper tag on a string, lying on pale fabric in soft shadow

What does schema markup do for SEO?

Its clearest effect is eligibility for rich results: stars, prices, breadcrumbs and event dates shown in a search listing. Google’s introduction to structured data reports case studies from publishers: Rotten Tomatoes measured a 25% higher click-through rate on 100,000 pages with structured data, Food Network converted 80% of its pages and saw 35% more visits, and Nestlé measured 82% higher click-through on pages shown as rich results. These are selected successes published by Google, so read them as what can happen rather than what will.

Three limits go with that:

  • No guarantee. Google says it does not guarantee your structured data will show up in results, even if it is valid.
  • Eligibility is not ranking. Google describes structured data as helping it understand a page and qualify it for features. It does not describe it as a way to rank higher.
  • Features come and go. FAQ rich results were cut to government and health sites in 2023, then removed for everyone in May 2026. Google has said that structured data not being used causes no problems, but has no visible effect either.

So add markup because it is cheap and accurate, and do not build a plan on any one feature staying around.

This is where the claims online run furthest ahead of the evidence, so here is what each company has actually said.

CompanyWhat it saysDate
GoogleStructured data is not required for its generative AI features, and there is no special schema to add. Keep using it for rich resultsGuide of May 2026, updated July
MicrosoftSchema can label content as a product, review, FAQ or event, helping AI systems interpret itPost of October 2025
OpenAIIts ChatGPT search and crawler pages do not mention schemaRead November 2026
AnthropicIts crawler help page does not mention schemaRead November 2026
PerplexityIts crawler page does not mention schemaRead November 2026

So Google says it is not needed, Microsoft says it helps, and the others are silent. “Schema gets you cited by ChatGPT” is not something anyone has shown. Silence is not proof of no effect either, because a bot that reads your page reads the script tag too.

The case for adding it anyway is identity. An assistant that meets your business on your site, a directory and a review site has to work out that they are the same business. Markup with your exact name, address and “sameAs” links states that directly, for a few minutes of work. We count this among the items worth doing in an AI search optimization plan, while being clear that the benefit cannot be measured from outside.

There is a real gap here for most sites. When we tested the MWY checker on 36 business websites in seven countries on November 4, 2026 (a hand-picked sample, not a market figure), it could read 32. Of those, 11 had complete Organization or LocalBusiness markup, 10 had it with name, contact details or logo missing, and 11 had none.

How do you add schema markup?

Pick the route that matches how your site is built.

  • WordPress. SEO plugins such as Yoast SEO and Rank Math add Organization, Article and breadcrumb markup after you fill in their settings. Check that the name and logo are right, since the defaults are often wrong.
  • Shopify, Wix, Squarespace and similar. Many themes output some markup for products or the business. View the page source and search for “application/ld+json” before adding your own, so you do not end up with two conflicting blocks. Where a platform allows custom code in the page head, paste the block there.
  • A custom site. Have a developer output the JSON-LD from the same data that fills the page, so that a price change updates both. Hand-copied markup goes stale.

Then test, as our schema validation guide explains. Google’s Rich Results Test shows which rich results a page can get. The Schema Markup Validator at validator.schema.org checks the code against the vocabulary, including types that Google has no rich result for. Run both, because the first says nothing about a type Google does not use, and a clean result on the second does not mean Google will show anything.

Three glass jars of dried herbs on a pale shelf, with no labels

Which mistakes cause real problems?

Most markup errors just get ignored. A few can cost you.

  • Marking up what readers cannot see. Google’s policies say not to mark up content that is not visible, and a violation can bring a manual action, which removes the page’s eligibility for rich results.
  • Prices and availability that are out of date. A product block that says in stock at $9.50 while the page says sold out at $12 is misleading to machines and buyers alike.
  • The wrong type. A generic Organization block on a local shop, or Article on a sales page. Pick the type that truly describes the page.
  • Two blocks that disagree. A plugin and a theme can each output their own, with two names or two logos. Our GEO audit checklist covers name consistency for this reason.
  • Reviews about yourself, on your own site. Google’s review snippet guidelines say that if the business being reviewed controls the reviews about itself, its pages with LocalBusiness or Organization markup are not eligible for review stars. That includes reviews embedded through a widget.
  • Copying an example and leaving its values. Sample addresses and phone numbers end up on live sites surprisingly often. Read each line before you publish.

How do you keep markup accurate over time?

Markup goes wrong slowly, usually after a change nobody connected to it.

  • Generate it from your data. A price or opening time typed in two places will end up different. Have one source fill both the page and the block.
  • Check after a redesign or plugin change. New themes and SEO plugins often add or remove blocks. Search the page source for “application/ld+json” and count them.
  • Read Search Console’s reports. Its enhancement reports flag errors on the types Google uses, and its Manual Actions report tells you if a page has lost eligibility.
  • Watch Google’s changelog. Features are added and removed there first, as FAQ results were.

What the MWY checker reads in your markup

The MWY AI visibility checker reads the schema in your raw HTML as part of its 24 items. It checks whether Organization or LocalBusiness markup exists and has a name, contact details and a logo, whether your profiles are declared in “sameAs” and linked from your pages, and whether the business name is written the same way everywhere. FAQPage markup helps it confirm a questions and answers section, nothing more.

In Pro, the fix for a missing block is a JSON-LD snippet filled in with the details found on your site, for you to check line by line. The checker does not validate every schema type, it does not predict which rich results Google will show, and it does not claim that markup will make an assistant cite you. For a full check of a page’s code, use the two validators named here.

Questions people ask

Is schema markup a ranking factor?

Google describes structured data as helping it understand pages and making them eligible for rich results, not as a way to rank higher. A rich result can win more clicks, which is the benefit its case studies report. Treat markup as a way to be understood and shown better, and do not expect a move up the rankings from adding it.

What is the difference between schema markup and structured data?

Structured data is the general idea: information labeled so machines can read it. Schema markup usually means structured data written with the schema.org vocabulary, nearly always as JSON-LD on the web today. In practice people use the two terms for the same thing, and Google uses schema.org for most of its search features.

Does ChatGPT read schema markup?

OpenAI has not said. Its documentation on ChatGPT search and its crawlers does not mention schema. A bot reading your HTML can see the script block, but whether that affects an answer is not published. Add markup for its clear uses in Google and for stating your identity accurately, not because of a claim about ChatGPT.

Do I need schema markup on every page?

No. Put Organization or LocalBusiness on the home page, and add Product, Article or Event only on pages of that kind. Pages such as Contact or Privacy rarely need any. Breadcrumb markup can run site-wide if your platform adds it automatically. Accurate markup on your main pages beats incomplete markup everywhere.

Can schema markup hurt my site?

Valid markup that matches the page will not. Trouble comes from misleading markup: describing content readers cannot see, fake reviews or wrong prices. Google can then apply a manual action, which removes eligibility for rich results. Check Search Console for manual actions and run the Rich Results Test after any change to your templates.

More guides

Is your website ready for AI assistants to name it?

Paste your website address and get your AI visibility score and the five things to fix first in a few seconds. Free, no sign-up.