The honest answer on schema markup for AI search: it helps indirectly and in specific places, not as a citation switch. It makes your company easier to identify as an entity, feeds product and review data into Google’s shopping systems, and keeps pages eligible for rich results. Nothing public shows that adding JSON-LD makes ChatGPT or Perplexity quote you, so add a short list of types that fit your business, keep them accurate, and skip the rest.
What AI systems actually do with structured data
Structured data can reach an AI answer by a few routes, and they are not equally strong.
Google’s AI Overviews and other AI features. These draw on Google’s index and its other systems, including the Knowledge Graph and product data. Google’s guidance is that its AI features have no additional technical requirements beyond being indexed and eligible to show with a snippet, and its structured data guidelines require markup to match the visible content. Read that carefully: schema is part of how Google understands a page, not a separate ticket into AI answers.
Shopping answers. This is where structured data is most concrete. Google’s shopping experiences, including AI-generated shopping responses, draw on product data that Google collects from Merchant Center feeds and from product markup on your pages. Price, availability, shipping, returns and ratings are exactly the facts a shopping answer needs.
Bing and Copilot. Bing’s webmaster guidelines recommend structured data to help it understand pages, and Copilot grounds its answers in Bing search. That’s a reasonable basis for keeping markup clean, not a promise of citations.
ChatGPT, Perplexity, Claude and others. None of them document that JSON-LD changes which sources they cite. When they retrieve a page, the answer is written mainly from its text. What a model knows about you from training comes from how the web describes you, across many sites.
| What schema does | Evidence | Reaches AI answers? |
|---|---|---|
| Rich result eligibility (products, reviews, breadcrumbs, video, events) | Documented by Google | Not directly; it improves standard listings |
| Entity identification (Organization, Person, sameAs) | Documented by Google | Indirectly, if it helps Google identify you correctly |
| Product facts (price, stock, shipping, returns) | Documented by Google | Yes, via Google’s product data, alongside Merchant Center feeds |
| Direct influence on ChatGPT or Perplexity citations | Not documented | Unproven |
Claims about schema and AI that don’t hold up
Much of the schema advice aimed at AI search is old ranking-factor folklore with a new label. The claims I hear most:
- “LLMs read schema to understand your site.” Models are trained mostly on text, and retrieval systems typically extract a page’s main content. There’s no public evidence that a JSON-LD block outweighs what the page and other sites say.
- “FAQPage markup gets you into AI Overviews.” Google says no special optimization is needed. A clear question-and-answer section may help because it’s useful content; the markup around it isn’t the lever.
- “More types means more visibility.” Stacking a dozen types, or marking up content that isn’t on the page, adds maintenance and risks a manual action for spammy structured data. It adds no authority.
- “Schema can correct what AI says about you.” It makes your official facts easier to confirm. It can’t outvote dozens of third-party pages that describe you differently.
- “Our tool generates AI-optimized schema.” Markup is only as good as the facts in it. Generated markup often mislabels page types and duplicates what your theme already outputs.
Schema belongs in the same bucket as llms.txt: cheap, sensible hygiene with limited evidence of direct AI impact. I covered that file in what llms.txt is and whether you need one.
Entity schema: Organization, Person and sameAs
If you implement one thing, make it entity markup. An AI engine has to work out which “Acme” you are, what category you belong in and which profiles are yours. Organization markup with sameAs links states that directly, in a format search engines are built to read.
Put one Organization block on the homepage with a stable @id, then reference that @id elsewhere instead of redeclaring the company on every page: as publisher on articles, brand on products and worksFor on people.
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://example.com/#organization",
"name": "Example Co",
"url": "https://example.com/",
"logo": "https://example.com/logo.png",
"description": "Scheduling software for multi-location dental clinics.",
"sameAs": [
"https://www.linkedin.com/company/example-co",
"https://www.wikidata.org/wiki/Q00000000",
"https://www.g2.com/products/example-co"
]
}
Rules that keep it useful:
- Use one description everywhere: this markup, the homepage, the About page, LinkedIn and review profiles. Markup confirms consistency; it can’t create it.
- List only profiles that are definitively you: official social accounts, your Wikidata or Wikipedia entry if one exists, Crunchbase, marketplace and review profiles. Not press articles, and not directory pages you don’t control.
- Add Person markup for founders and authors whose names carry weight in your category, with
jobTitle,worksForpointing to the Organization@id, andsameAsto their LinkedIn. Link each article’sauthorto that Person. - Keep names straight. Use
namefor the brand people search,legalNamefor the registered entity andalternateNamefor former names after a rebrand.
Entity cleanup is one of the GEO-specific workstreams in GEO vs SEO; markup is its machine-readable layer.
Priority types for SaaS, ecommerce and services
Start with the types that carry facts buyers actually ask about. This is my default order, not an exhaustive list.
| Site type | Add first | Add where it applies | Low priority |
|---|---|---|---|
| B2B SaaS | Organization, WebSite, BreadcrumbList, Article with author Person | SoftwareApplication with offers and genuine ratings, VideoObject for demos, Event for webinars | Service, FAQPage on every page |
| Ecommerce / DTC | Product with Offer (price, currency, availability), Organization, BreadcrumbList | ProductGroup for variants, shipping details, return policy, ratings from real reviews, GTIN and brand | HowTo, FAQPage on product pages |
| Service business | Organization or a LocalBusiness subtype with address, hours and area served; Person for key practitioners | Article with author Person, Event for workshops, VideoObject for explainers | Review markup about your own business, Service for every offering |
A few notes by type:
- Ecommerce: product markup and your Merchant Center feed should agree on every price and availability value. Mismatches cause disapprovals and put wrong prices in front of shoppers.
- SaaS: pricing belongs in visible text first. A pricing page that states plans, limits and integrations plainly does more for AI answers than any markup describing it.
- Local services: Google Business Profile carries more weight than on-site markup. Keep name, address and phone identical in both.
Schema that no longer earns much
Google has retired or restricted several rich results, yet old checklists still recommend them:
- HowTo: the rich result is no longer shown. Remove it if it complicates templates; leave it if it’s harmless.
- FAQPage: rich results are limited to well-known government and health sites. Keep it only where a visible FAQ exists.
- Sitelinks search box (WebSite SearchAction): Google no longer displays it, so there’s no reason to add it.
- Self-serving review stars: Google doesn’t show star ratings for reviews a business publishes about itself in Organization or LocalBusiness markup.
- Speakable: a narrow beta aimed at news publishers. Irrelevant for most businesses.
- Stuffed
about,mentionsandkeywordsproperties: no documented benefit, and they drift out of date fast.
Validation and keeping markup in sync with the page
Most schema problems I find in audits aren’t missing types. They’re markup that disagrees with the page: an old price, “InStock” on a sold-out product, a stale rating count, or two Product blocks from a theme and a reviews app showing different numbers.
Fix it at the source:
- Generate markup from the same data as the page. Pull price, availability and ratings from the CMS or product object that renders the visible content, never from hand-pasted JSON.
- Server-render it. Google renders JavaScript, so tag-manager markup usually works there. Many AI crawlers don’t, and markup that exists only after rendering is invisible to them.
- Deduplicate. On Shopify, WordPress and similar platforms, check whether the theme, SEO plugins and review apps each output their own Product or Organization block. Keep one.
- Connect entities with
@id, so each page describes one connected graph instead of disconnected fragments.
Run these before each release and monthly:
- Rich Results Test passes on one URL per template, with no critical errors
- Schema Markup Validator shows no unexpected duplicate types
- Price, availability and rating in markup match the visible page and the Merchant Center feed
- JSON-LD appears in the raw HTML source, not only in the rendered DOM
- Search Console enhancement reports show no new errors after deploys
- Organization
sameAslinks resolve to active profiles
Template-level markup is part of the technical SEO foundation that any GEO program sits on.
Measuring whether it made a difference
Schema changes are easy to ship and hard to credit, so set up the comparison before you deploy.
Rich results. In Search Console’s Performance report, filter by search appearance (product snippets, merchant listings, review snippets) and compare impressions and click-through rate for affected pages over four to eight weeks before and after launch. Where you can, roll markup out to half of a page group first and compare against the other half; that controls for seasonality and algorithm updates.
Shopping. Watch Merchant Center’s product issue reports and check whether listings show price, shipping and return details correctly.
AI answers. Run a fixed set of entity prompts before and after: “What does [brand] do?”, “Who founded [brand]?”, “How much does [product] cost?”, “Is [brand] a good fit for [use case]?”. Score each answer as accurate, partly accurate or wrong across the assistants your buyers use. Answers vary between runs, so run each prompt several times and compare rates, not single responses.
Be honest about attribution. Entity markup usually ships alongside profile cleanup and content changes, and you won’t be able to say which one moved an AI answer. Log the deploy date and what changed, and treat schema as one input to a broader program rather than a test you can isolate. That’s how I scope GEO and AI search visibility work: markup as supporting infrastructure, measured as part of the whole.
Get it built
If you want your markup audited, trimmed to what earns its keep and wired into your templates so it stays accurate, I can build it. Start with a Growth Audit, $1,500 fixed and credited if we continue. See pricing or get in touch.