BoostSearchGet your AI visibility check

Guide · Technical

Schema.org for AI search: which types actually get read

Structured data does not guarantee AI visibility. It is how machines confirm facts about you: your name, your location, your hours, the date you last revised a page. Google documents some use of it in its systems. Other assistant vendors say very little, so treat schema as confirmation rather than leverage.

Last reviewed: 27 August 2026

What schema actually does in an AI pipeline

Schema.org markup is a vocabulary for stating facts in a form a machine can read without interpreting prose. On your page it lives in a JSON-LD script tag. It is not visible, it is not a ranking factor anyone has documented as such, and it will not make a mediocre page citable.

What it does do is remove ambiguity, and ambiguity is the expensive problem in AI retrieval. Two mechanisms are worth understanding, and both are inferred from how these systems behave rather than from published specifications.

Entity confirmation

A model deciding whether to recommend you first has to decide who you are. Your name appears on your site, on a map profile, in two directories and in a press mention. Are those one business or four? Structured data with a stable @id and sameAs links states the connection outright instead of leaving it to be guessed from a matching address.

Consistency

Assistants weigh agreement across independent sources, which is the core argument in how AI assistants choose businesses. Schema gives you one place to state the facts that must match everywhere else. It only helps if the values are genuinely identical to your map profile, your listings and your visible page text. Markup that disagrees with your own site is worse than no markup, because you have manufactured the disagreement yourself.

The corollary matters. Never assert something in JSON-LD that the page does not also say in visible text. Assistants read rendered text reliably; whether a given one parses your markup is not something you can verify from outside. Schema should be a second statement of the truth, never the only one.

The types worth implementing for most businesses

Most sites need seven types and nothing else. The list below is ordered roughly by return on effort for an ordinary business.

Schema types worth the effort, and what each one is for
TypeUse it onWhy it earns its place
OrganizationEvery site, once, with a stable @idThe identity anchor. Name, URL, logo, contact and sameAs links let a machine tie your site to the same entity it sees elsewhere.
LocalBusiness or ProfessionalServiceAnyone with a place or a service areaCarries address, phone, opening hours and area served in a form that does not need parsing out of prose. Use the most specific subtype that genuinely fits.
FAQPagePages that really do answer questionsPairs a question string with an answer string explicitly. Google has reduced the rich result for most sites, but the markup still states the pairing unambiguously.
ArticleGuides, essays, anything datedheadline, datePublished, dateModified, author and publisher. Recency is a real factor in retrieval, and this is the machine-readable way to state it.
BreadcrumbListEvery page below the home pageCheap, well supported, and it describes where a page sits in your site rather than leaving it to be inferred from the URL.
ServiceService and offering pagesNames what you actually do, with serviceType, provider and areaServed. Useful when your prose says something more poetic than the category a machine needs.
HowToGenuine step-by-step procedures onlyIts rich result has been reduced in Google, but ordered steps with their own anchors remain the clearest structure for an instruction page.

Here is a generic starting graph. It is deliberately plain, and the values are placeholders: replace every one of them, and delete any node whose facts you cannot state truthfully.

{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://example.com/#org",
      "name": "Example Company",
      "url": "https://example.com",
      "logo": "https://example.com/logo.png",
      "email": "hello@example.com",
      "description": "One sentence saying exactly what you do, for whom, and where.",
      "sameAs": [
        "https://www.linkedin.com/company/example",
        "https://www.google.com/maps/place/?q=place_id:EXAMPLE"
      ]
    },
    {
      "@type": "ProfessionalService",
      "@id": "https://example.com/#local",
      "name": "Example Company",
      "parentOrganization": { "@id": "https://example.com/#org" },
      "address": {
        "@type": "PostalAddress",
        "streetAddress": "1 Example Street",
        "addressLocality": "Dubai",
        "addressCountry": "AE"
      },
      "telephone": "+971500000000",
      "openingHoursSpecification": [
        {
          "@type": "OpeningHoursSpecification",
          "dayOfWeek": ["Saturday"],
          "opens": "09:00",
          "closes": "17:00"
        }
      ]
    }
  ]
}

Three habits make this hold up over time. Use one JSON-LD script per page containing a single @graph, rather than five scattered scripts that can drift apart. Give the nodes stable @id values so other nodes reference them instead of repeating their contents. And keep dateModified honest: set it when the page genuinely changed, show the same date visibly under the heading, and resist the temptation to stamp today on everything. Fake freshness is easy to detect and it degrades the one signal you were trying to send.

The types that are usually wasted effort

Plenty of markup gets added because a plugin offers it. Some of it costs maintenance and returns nothing.

  • Speakable. Tied to a narrow voice-assistant use case that never became broadly available. Almost nobody should spend time on it.
  • Review and AggregateRating on your own pages. Self-serving ratings you control are weak evidence and Google restricts self-serving review markup for many entity types. Independent reviews on independent platforms are what actually move the assessment.
  • WebPage on every page, filled out exhaustively. Largely redundant with information already available from the page itself. A thin WebPage node is harmless, an elaborate one is maintenance you will not do.
  • FAQPage stuffed with marketing. Questions nobody asks, answered with a pitch, is markup as decoration. If the question is not one a customer would type, leave it out.
  • Over-specific types that do not fit. Choosing an exotic subtype because it sounds more precise, when your business is not really that thing, introduces exactly the ambiguity you were trying to remove.
  • Markup for content that is not on the page.Against Google's structured data policies, and it invites a contradiction between what you claim and what a crawler reads.

Does schema markup help with AI Overviews?

Probably a little, indirectly, and not enough to treat as a strategy. Here is the honest breakdown of what is known and what is not.

What is documented: Google states that structured data helps its systems understand the content of a page, and it is the required input for many rich results. AI Overviews are generated over pages that Google has already crawled, indexed and deemed relevant, so anything that improves understanding and eligibility sits upstream of the feature.

What is not documented: no vendor has published that schema markup is an input to whether a page is selected for or cited in an AI Overview. Google has been explicit that there is no special markup that gets you included. OpenAI, Anthropic and Perplexity say little about parsing structured data at all.

What we observe: pages that carry clean, consistent markup also tend to be the pages with clear headings, direct answers and honest dates. Untangling those factors from outside is not possible, and anyone claiming a measured uplift from markup alone is describing a test that is very hard to run cleanly. The reasonable position is to implement the seven types above because they are cheap and they make your facts unambiguous, then expect the content itself to do the work.

How to appear in Google AI Overviews

There is no submission form, no opt-in, and no guarantee. What exists is a set of levers that are genuinely upstream of the feature, listed here in the order we would work through them.

  1. Be indexable and actually ranking.AI Overviews draw on Google's ordinary index. If a page is not indexed, or does not rank anywhere for the query, it is not a candidate. Conventional technical and content quality work still gates this channel, which is the point made in GEO vs SEO.
  2. Make your content answer-shaped. Use the question as the heading, in the phrasing a person would type. Answer it in the first two sentences beneath, in plain language, before any context or caveats. Extractable passages are the unit of selection here, not whole pages.
  3. Keep facts in server-rendered text. Prices in images, menus in PDFs and content assembled by JavaScript are all routes to being fetched and yielding nothing usable.
  4. Use tables and lists for comparisons. Structured passages are lifted more readily than the same information buried in a paragraph.
  5. Earn independent corroboration. Third-party sources that describe you the same way you describe yourself are the strongest available evidence, and you cannot substitute markup for them.
  6. Add the schema. Last, not first. It confirms what the page already says.
  7. Measure repeatedly. AI Overviews appear for some queries and not others, and the set changes. Sample the same frozen questions over weeks and track an appearance rate, using the approach in the fan-out queries guide.

One caution about expectations. Appearing in an AI Overview does not necessarily send the traffic the equivalent ranking used to. The value is being named as the answer, which is a brand and consideration outcome as much as a click one, and it should be measured accordingly.

For the wider frame, read what generative engine optimization is. For the technical prerequisites, the GEO checklist and the AI crawler robots.txt guide come first, because markup on a page no crawler can fetch is worth nothing. A plain-text summary of your site for assistants is a separate machine surface, covered in llms.txt. How we work is described on services.

Questions

Questions people ask about schema and AI search

Does schema markup help with AI Overviews?

Probably a little, indirectly, and not as a lever you can pull on its own. Google has said structured data helps its systems understand a page, and AI Overviews are built on top of ordinary Google indexing, so anything that improves understanding and eligibility plausibly helps. Other vendors say very little about how much they parse. Nobody has published evidence that adding markup to an unchanged page produces AI Overview inclusion, so treat schema as fact confirmation rather than a ranking input.

How to appear in Google AI Overviews

There is no submission process and no guarantee. The honest levers are these. Be indexed and ranking in ordinary Google results for the query, because that gates eligibility. Answer the question directly in the first two sentences under a heading that matches how people ask it. Keep facts in server-rendered text rather than images or scripts. Be corroborated by independent sources. Then measure appearance repeatedly, because the feature is unstable question by question and day by day.

Do ChatGPT, Claude and Perplexity read schema markup?

They can, and there is no reason to assume they do not, but none of them documents it in the way Google documents rich results. What is verifiable is that these assistants read the rendered page text, so anything asserted only inside JSON-LD and never stated visibly is a risk. Our working rule is that schema should confirm facts the page already states in plain language, never replace them.

Can adding schema markup hurt my visibility?

Markup that contradicts the visible page can. If your JSON-LD says you are open on Sunday and the page says otherwise, you have created a disagreement about you rather than resolving one. Fake reviews, invented ratings and misrepresented types also breach Google's structured data policies and can attract manual action. Broken or invalid JSON is usually just ignored, which wastes effort rather than causing damage.

Want a second pair of eyes on your markup?

Send us a URL. We will read the structured data you already have, tell you where it contradicts your visible page, and say plainly which parts are worth keeping.

Start a conversation