Schema markup is code in a page's HTML that tells search engines what the page describes, such as a company and its prices. Google and Bing use it to understand pages and show rich results like review stars. Schema markup for AI search asks whether it also helps a company appear in ChatGPT and Google's AI Overviews.
Much research now starts in chatbots: in G2's March 2026 survey, 51% of B2B software decision-makers start research in a chatbot more often than in Google. The common claim is that markup gets pages cited, and in 2025 Bing's Fabrice Canel confirmed that schema helps its LLMs understand content.
The evidence gives markup a narrower role: Google and Bing use it to identify a company and its facts. In Ahrefs' study, pages that added schema showed no measurable gain in AI citations over similar pages, and in published tests no assistant reported a fact found only in markup. This guide covers how AI engines handle markup, the five types a B2B SaaS website needs and what the Omnius datasets showed.
Short answer: Schema markup has no proven direct effect on AI citations. Google and Bing use it to understand pages and the companies they describe, as long as it matches the visible content. For B2B SaaS, the priority is facts about the company, product and pricing in crawlable HTML, with JSON-LD that mirrors them.

Key takeaways
- Schema markup states a company's identity and facts. Google and Bing parse it into the records that tell one company from another and attach prices, plans and dates to it.
- Adding schema did not lift AI citations in the strongest test so far. In Ahrefs' study, pages that added schema markup showed no measurable gain in citations on AI Overviews, AI Mode or ChatGPT over similar pages that did not.
- Google says its AI features need no special markup. Markup still makes pages eligible for rich results in Search.
- In two published tests, no assistant reported a fact that existed only in the markup. Every fact therefore belongs in the page's visible text first, with markup that mirrors it.
- Five types carry the value. Organization and WebSite go on the homepage, SoftwareApplication or Product with Offer on pricing and product pages, Article on posts and BreadcrumbList below the homepage.
- Markup has to match the page. A marked-up price, rating or date that differs from what the page shows breaks Google's guidelines and gives AI answers two versions of one fact.
- Fact accuracy is the first measure. The test is whether AI answers state the company's prices and plans correctly, then whether they cite the pages that changed.
What is schema markup, and does it help AI search?
Schema markup is code in a page's HTML that labels what the page describes, such as a company, a product, a price or an article. It uses schema.org, a shared vocabulary that Google, Microsoft, Yahoo and Yandex founded in 2011. Google recommends JSON-LD, a short block of labelled facts that sits inside a script tag in the page's code, where readers of the page never see it. Google uses the block to understand the page and the companies and products it names, as in this minimal example:
The term here means schema.org markup on web pages. Developers also use "schema" for the JSON schemas that shape a model's output, which is a separate topic.
Google Search Central explains what structured data is and how Google uses it.
Schema markup's documented role in AI search is in the records Google and Bing keep about companies and products, and adding it has not been shown to earn extra citations. Both read the markup when they crawl a page and store what it states.
The claim that markup earns citations rests on counts across websites. Ahrefs found AI-cited pages almost three times as likely to carry JSON-LD, and AirOps, which scraped ChatGPT's answers to 16,851 queries, also measured a higher citation rate for pages with JSON-LD, at similar domain authority. Both counts pool pages from different websites, and websites that add markup also tend to build authority and links, as Ahrefs notes, so those counts cannot separate the markup from the website.
To separate the two, Ahrefs followed 1,885 pages that AI answers already cited and that added JSON-LD, and compared them with matched controls: similar pages that did not add it, tracked over the same weeks. Measured alone, the pages' AI Mode citations rose 43%. The matched pages rose almost as much, so the difference was 2.4%, which Ahrefs found indistinguishable from zero.

In a sample of the websites Omnius tracks, the pattern looked the same. Counted across all websites together, cited pages carried sameAs links, which point to a company's profiles elsewhere, more often than uncited pages. Against uncited pages from the same websites and page types, the gap closed, at 46.4% against 47.0%, and Organization and WebSite showed none either, so the pooled gap came from which websites supplied the cited pages.
- Google says structured data isn't required and no special schema.org markup is needed for its generative AI features, while it still recommends markup for rich results in Search.
- Bing's webmaster guidelines say accurate structured data may support clearer grounding, the step that ties an answer to its pages, with no guarantee of visibility.
- OpenAI, Anthropic and Perplexity publish nothing on reading JSON-LD.
- Markup's work in AI answers runs through the records Google and Bing keep about a company and its products, with no measurable lift in citations.
- A fact stated only in markup is unlikely to reach an AI answer, since it reached none in the two published tests.

What changed for schema markup in 2026
The rules and the evidence around markup moved quickly in 2026, starting with Google's FAQ results:
- 7 May 2026: Google stopped showing FAQ rich results for every website, and it removed the FAQ documentation on 15 June.
- 11 May 2026: Ahrefs published its matched-control study of pages that added schema.
- 15 May 2026: Google published its guide to optimizing for generative AI features.
- 3 June 2026: Search Console added Generative AI performance reports for AI Overviews and AI Mode.
- 28 August 2026: Vercel and Ora's 190 controlled fetch probes found that adding JSON-LD, llms.txt or Markdown copies did not change whether two fetch clients, one plain and one that runs JavaScript, could retrieve an answer already in the server HTML.
How do AI search engines use schema markup?
The evidence splits because AI search engines reach a page in two ways, called here the index path and the live-fetch path. On the index path, Googlebot and Bingbot crawl the page ahead of time and store its JSON-LD in their records. On the live-fetch path, ChatGPT or Claude opens the page while writing an answer and passes its text to the model. Google and Bing document that the index path keeps the JSON-LD, and in the published tests the live-fetch path dropped it.
Both paths start with a search. Google's AI features run several related searches across subtopics, a technique called query fan-out, and rank the results with the same systems as Search, so any page that is indexed and can show a snippet in Search can appear as a linked source in its AI answers. When ChatGPT uses partner search providers, it rewrites the question into targeted queries for them. No platform documents markup as a ranking signal for AI answers.

The index path: Google and Bing parse markup when they crawl
Googlebot renders pages, running their scripts the way a browser does, so it also reads JSON-LD that a script adds after the page loads, and Bingbot renders pages too. Google says homepage markup can help it tell a company apart from other organizations, using official company identifiers behind the scenes. Bing says it validates markup against the schema and its data types, ignores markup that fails and uses the rest to supplement and validate its own data.
Google's records feed its Knowledge Graph, the store of facts about companies, people and products that AI Overviews and AI Mode draw on. In Google's AI answers, markup's documented work sits in that record of the company.
The live-fetch path: ChatGPT and Claude read the page as text
ChatGPT-User and Claude's web fetch open a page when a question needs it. The fetchers of ChatGPT, Claude and Gemini ran no JavaScript in Writesonic's March 2026 test, Anthropic documents the same limit for Claude's web fetch tool, and the fetched page reaches Claude as a plain-text document. Without JavaScript, a fetcher never receives JSON-LD that a script or tag manager adds.
Two tests planted facts in JSON-LD alone, and we read both original reports. In searchVIU's October 2025 test, none of the five systems reported a price that existed only in JSON-LD. AI Mode and Perplexity answered from their indexes, and Claude returned no prices at all, visible ones included, so its result says nothing about markup.
In Writesonic's test, every assistant removed script and style blocks before the model saw the page. JSON-LD and the meta description reached none of the six assistants, while the title tag reached five and text hidden with CSS still reached them, because the fetchers read the HTML source. A fact that existed only in markup was invisible to every tested assistant at answer time.

How the six platforms compare
The six platforms differ in which index they search and what their fetchers keep. Every path reads the page's HTML text, so each fact belongs there first, with markup that mirrors it for the engines that parse it:
| Engine | Index it searches | Crawler and JavaScript | JSON-LD in published fetch tests |
|---|---|---|---|
| Google AI Overviews and AI Mode | The Google Search index, plus the Knowledge Graph | Googlebot renders pages and reads JSON-LD that JavaScript adds | Parsed into Google's index and entity record (documented). AI Mode did not report a price that existed only in JSON-LD |
| Gemini app | The Google Search index, through grounding | No documented fetcher for links read in chat; the published tests disagree on JavaScript | Not reported in either test |
| Microsoft Copilot | The Bing index; Copilot can ground on Bing's cached copy unless NOCACHE is set | Bingbot renders pages; Copilot's live fetch ran JavaScript | Bing uses markup to supplement and validate its data (documented). Not reported in the live fetch |
| ChatGPT search | Websites crawled by OAI-SearchBot, plus partner search providers | ChatGPT-User fetches pages live and ran no JavaScript | Not reported in either test |
| Claude | Brave Search, plus Claude-SearchBot | Claude's web fetch does not support pages rendered by JavaScript | Not reported |
| Perplexity | Its own index, built by PerplexityBot, which tracked over 200 billion URLs in September 2025 | Perplexity-User fetches live; its index held a price that JavaScript rendered | Not reported |
What are the five factors of schema markup for AI search?
Given those two paths, five factors decide whether schema markup does its job in AI search: delivery, validity, entity clarity, agreement and freshness. They run in order, from whether a crawler receives the JSON-LD to whether its dates stay current.
1. Delivery: the JSON-LD is in the HTML crawlers receive
Markup helps only when crawlers receive it. On one advertising software vendor's homepage and pricing page, the only JSON-LD was a Product block with a star rating, which a testimonial widget's script built in the browser. A plain fetch of the raw HTML, the copy a crawler that runs no JavaScript receives, returned no markup. Google Tag Manager also loaded, but neither of its two containers held the block, so an audit of the tag manager alone would have missed it.
Google reads JSON-LD that scripts add, yet it warns that Product markup generated by JavaScript can make Google Shopping's crawls of prices less frequent and less reliable. Pricing pages hide content from bots as well, and Profound found that about one in eight public pricing pages of Forbes Cloud 100 companies hid at least 40% of their content, most often because prices loaded through scripts or sat behind tabs and sliders.
On the vendor homepages and pricing pages we checked, the commoner gap was no markup at all. When we rendered them on 13 October 2026 and compared them with the raw HTML, JSON-LD that appeared only after scripts ran was on 2.1% of pages, while 24.4% of pricing pages had no JSON-LD at all.

What to do:
- Put the JSON-LD in the HTML that each template sends from the server, before any script runs.
- Remove tag-manager copies that repeat or contradict the template's markup.
- Check the page with view-source or a plain fetch, because the Rich Results Test shows the page after its scripts run and so finds markup that a crawler without JavaScript never receives.
2. Validity: the markup parses and uses documented types
Markup that arrives still has to parse. Bing ignores markup that fails its type checks, such as a price written as a date. Google follows its own documentation for its Search features and can still make general use of sameAs and other valid schema.org markup the documentation does not list, so documented types come first.
Because templates print the markup, its errors spread. Google's Search Console help names a template error as the most common cause of one error across many pages, and in the Omnius datasets, 86.7% of pages carried the same schema types as most pages of their type on the same website, so one broken template breaks every page built from it.
What to do:
- Validate one page per template in the Schema Markup Validator and the Rich Results Test.
- Fix errors at the template, where Google says most repeated errors start.
- Drop invented properties, and keep vocabulary outside Google's documentation only where it states a fact the page shows.
3. Entity clarity: every page points to one Organization
Entity clarity means the markup describes the company once. A single Organization node carries an @id, a fixed identifier written as a URL, and the WebSite, SoftwareApplication and Article nodes point to it. Its sameAs links list the company's profiles elsewhere, such as LinkedIn or Wikidata, and each profile should state the same name and category. Google recommends Organization markup on the homepage or one about page, says it need not go on every page, and asks for items to be linked with @id.
The sameAs links themselves can break. On the vendor homepages we checked, 11% of the sameAs links that a plain request could open failed, with a 404, a host that did not answer or a page about something else. One automation vendor listed Wikipedia's general article on robotic process automation, and a Google search for its own name, as official profiles.
What to do:
- Publish one Organization node with @id, name, legalName, logo, url, contactPoint and sameAs.
- Remove duplicate Organization nodes, or switch off the SEO plugin's own Organization output when the template prints one.
- Add the company's official identifiers, such as its Legal Entity Identifier (LEI) or its Dun & Bradstreet (DUNS) number, in the iso6523Code property, which Google prefers. Each value is a prefix and the number, such as 0199: followed by the LEI or 0060: followed by the DUNS number.
- Check whether the Knowledge Graph Search API returns the company for its name.
Read more: Entities and knowledge graphs
4. Agreement: every marked-up fact is visible on the page
Agreement starts with prices, because pricing drew the largest share of inaccurate claims in the AI answers Profound checked. Pricing and billing made up 12% of the brand claims it checked and 24% of the inaccurate ones.
On 13 October 2026, a construction software vendor's pricing page marked up both its monthly-billing and annual-billing prices, while the page text showed only the lower annual rates and kept the monthly prices behind a billing switch. A marketing software vendor marked up its plans as yearly totals while its pricing cards printed monthly prices. In both cases the markup described a billing option the default page did not show.
Google forbids marking up content readers cannot see and lists content on page differs from structured data as a manual action. Its parsed record then holds a price that a fetcher reading the page's text does not see. About a third of the vendor pricing pages we read carried Offer markup, the type that states a plan's price, and on most of those, every marked-up price above zero matched a price on the page.
What to do:
- Write prices, limits, certifications and integrations in HTML text and tables first.
- Generate the markup from the same data that fills the visible table.
- Never mark up hidden prices, ratings or claims.
5. Freshness: dates and prices change with the page
Google estimates a page's date from several signals and asks that the visible date and the structured data date match. Its helpful content guidance flags changing dates to look fresh when the content has not changed. On some of the blogs we sampled, more than a quarter of the posts shared one dateModified, the field that records when the content last changed, so the date had been set in bulk.
What to do:
- Change dateModified only when the content changes.
- Show the same date on the page.
- Update Offer values in the same release as the pricing page, because a product snippet may not show when priceValidUntil is in the past.
Which schema types should a B2B SaaS website use for AI search?
The factors apply to every type of markup, and on a B2B SaaS or fintech website five types carry the documented value. Organization and WebSite belong on the homepage, SoftwareApplication or Product with Offer on pricing and product pages, Article or BlogPosting on posts and BreadcrumbList on every page below the homepage:

FAQPage and HowTo are missing from that list because they no longer earn Google rich results. Google ended HowTo results in September 2023 and FAQ results in May 2026, and FAQPage can stay only where the questions and answers are visible, as the FAQ below covers.
Two types sit outside Google's documented features. FinancialProduct describes products from banks, insurers and other financial companies, including their fees, and TechArticle describes technical documentation. Neither earns a Google feature, so each is worth using only where it states a fact the page shows. Integration, comparison and security pages need no type of their own beyond BreadcrumbList, because their facts belong in text.
The table adds the properties that matter for each type, the use Google or Bing documents and a gap to check on SaaS and fintech websites:
| Type | Page | Properties that matter | Documented use | Gap to check |
|---|---|---|---|---|
| Organization | Homepage or about page | @id, name, legalName, logo, url, sameAs, contactPoint, iso6523Code | Disambiguation, logo and knowledge panel in Google | Duplicate nodes from plugins and themes; no identifiers |
| WebSite | Homepage | name, alternateName, url, publisher by @id | Website name in Google results | A second WebSite block from a plugin |
| SoftwareApplication or Product, with Offer | Pricing and product pages | name, applicationCategory, offers with price and priceCurrency, UnitPriceSpecification for per-seat prices | Software app and product snippet rich results; the software app result also needs a rating or review | Prices printed on the page with no Offer markup |
| Article or BlogPosting | Blog posts and resources | headline, author as a Person with url, datePublished, dateModified, publisher by @id | Better titles, images and dates in Google | Authors without a url; dateModified changed on every deploy |
| BreadcrumbList | Every page below the homepage | itemListElement with position, name and item | Breadcrumbs in desktop results | Missing from templates other than the blog |
The three samples below cover all five types and reference one Organization @id, with placeholder values. The homepage graph holds the Organization and the WebSite:
The pricing page marks up a free tier, a per-seat plan and a plan with no public price. Google's software app rich result needs a price and a rating or review, so on a website without its own customer reviews, the Rich Results Test reports this item as invalid for that result and flags the Enterprise plan for its missing price. Both flags are expected, because the markup's job here is to state the plans to the engines that parse them:
Each post links its author, whose own page carries ProfilePage markup, and shows its place in the blog:
What happens when ChatGPT and Google AI Mode read a pricing page?
To see the pricing sample at work, the example below runs it through one question. A finance lead asks Google AI Mode and ChatGPT: "What does Vendor A cost for 40 users, and does it sync with NetSuite?" Vendor A, its prices and the pages in the results are invented, while the way each assistant searches and reads follows the platforms' documentation and the published tests.
Its pricing page shows a free tier, a Team plan at $12 a seat each month and an Enterprise plan with Contact sales, and its JSON-LD states the same plans:
- Fan-out. Both assistants split the question into separate searches, one for the price per user and one for the NetSuite integration.
- Entity. Vendor A shares its name with an unrelated payments company. AI Mode can tell the two apart through Google's Knowledge Graph, whose record of the software company draws on its Organization markup and sameAs links. ChatGPT relies on the search results and on the pricing page's own words (accounting software).
- Candidates. Each assistant gathers the pricing page, the NetSuite integration page, a review-platform profile and a 2024 comparison article that lists an older, lower Team price.
- Reading. AI Mode answers from the copy Google indexed, in which Google parsed the Offer markup at crawl time. ChatGPT opens the page live, runs no JavaScript and receives the page as text with its script blocks removed, so it reads the price in the pricing table.
- Weighing. The assistant compares the pricing page, updated last month, with the 2024 article. No platform documents how that choice is made. In this example the newer page wins, and its visible date matches its markup, as Google asks.
- Answer. Team costs $12 a seat each month, about $480 a month for 40 users, and Vendor A offers a native NetSuite integration. The answer cites the pricing and integration pages.

Two changes would break that answer. If the JSON-LD keeps the old price after a change, ChatGPT reads the new price from the text while Google's parsed record holds the old one, and Google treats the mismatch as a guideline violation.
If JavaScript renders the plans after load, ChatGPT's fetch finds no price and falls back to the 2024 article, while Googlebot renders the page. Plans that load only after a click stay hidden from Google too, because Google Search does not interact with a page. Markup counted at the entity step and sat in Google's parsed record, and the price both engines stated came from the HTML table.
How to optimize schema markup for AI search
Those two ways an answer breaks, a stale Offer and plans loaded by scripts, are what the work prevents, and it follows the five factors in order. Because markup is set per template, steps 2 to 6 change a handful of templates (homepage, pricing, product, blog and author pages), so the schema work is a bounded project and step 7 takes the ongoing effort. Each step has an owner:
- Audit the markup with the checklist below. The SEO lead owns it, and the output is a list of fixes per template.
- Move JSON-LD into the server HTML (factor 1). The web team prints it in each template.
- Fix errors and remove invented, duplicate and hidden markup (factor 2). The web team works at the template.
- Build one Organization graph (factor 3). The SEO lead sets the @id, identifiers and sameAs profiles.
- Mark up pricing and product pages from the same source as the visible table (factor 4), as in the pricing sample above. Product marketing owns the plan data and the web team the template.
- Add Article and Person markup to posts and author pages (factors 3 and 5). The content and web teams share it.
- Move the remaining effort to passages that answer the prompts customers type. The content lead lists the questions customers ask AI assistants about the company, the prompt panel described under measurement, and maps each question to a page. Each page then states the facts its questions need, such as per-seat prices, limits, integrations and certifications, in its text, because the model writes its answer from the passages it reads.
Where to start: the homepage Organization node and the Offer values on the pricing page. Together they state who the company is and what it costs, and pricing drew the largest share of inaccurate claims in Profound's checks.
The order shifts with the business model:
| Situation | First | Second |
|---|---|---|
| Self-serve SaaS | Offer values on the pricing page, filled from the same plan data as the table; one Organization node with sameAs | Article and Person markup on posts and author pages |
| Sales-led SaaS | One Organization graph with identifiers; SoftwareApplication on product pages, with no invented prices | Pricing page text that states the pricing model and starting points |
| Fintech with regulated claims | Organization with legalName and an LEI in iso6523Code; fee and rate disclosures in HTML text, mirrored exactly in any markup | FinancialProduct where it states a fact the page shows |
| Developer and API products | Docs marked up as TechArticle or Article with real dates; one Organization node | SoftwareApplication for the API product, linked to the Organization by @id |
In every model, FAQPage, HowTo and properties no platform documents can wait.
How to audit structured data for AI search
The first of those steps is an audit, and because markup is set by the template, one page per template covers most of the pages. The quickest delivery check is a plain fetch of the raw HTML, which passes when it finds at least one JSON-LD block:
Each check below has a pass condition and a free tool:
| # | Factor | Check | Passes when | Free tool |
|---|---|---|---|---|
| 1 | Delivery | JSON-LD in the raw HTML | View-source or a plain fetch of one page per template shows the JSON-LD block | View-source, curl |
| 2 | Delivery | No tag-manager copies | No JSON-LD block added by a tag manager repeats or contradicts the template's markup | Browser developer tools |
| 3 | Validity | Parses cleanly | Every template passes with zero errors | Schema Markup Validator |
| 4 | Validity | Google features detected | The intended items (Product, Breadcrumb, Article) are detected on each template, and URL Inspection shows them in the indexed page after a fix and a request to reindex | Rich Results Test, URL Inspection |
| 5 | Validity | No invented properties | Every property appears in schema.org or Google's documentation, and types Google does not use (FinancialProduct, TechArticle) parse cleanly | Schema Markup Validator |
| 6 | Entity clarity | One Organization node | Exactly one Organization with an @id, which the other nodes reference | A crawler that extracts JSON-LD |
| 7 | Entity clarity | Profiles agree | Each sameAs profile states the same name and category as the homepage | Manual check |
| 8 | Entity clarity | Knowledge Graph entity | A search for the company's name returns its entity | Knowledge Graph Search API |
| 9 | Agreement | Prices match | Every marked-up price equals a price printed on the same page | Crawler, then manual check |
| 10 | Agreement | No copied ratings | No aggregateRating is built from review-platform ratings | Crawler |
| 11 | Agreement | Contact sales plans | Plans without a public price carry no price at all | Manual check |
| 12 | Freshness | Honest dates | dateModified changes only when the content changes and matches the visible date | Crawler over time |
| 13 | Measurement | Baseline before changes | Fact accuracy on a fixed prompt panel is recorded before any markup changes | Atomic AGI or a spreadsheet |
No validator checks whether the markup agrees with the page, whether a crawler that skips JavaScript receives it, or whether AI answers state the facts correctly. Those three are checked by reading the raw HTML next to the page and by asking the assistants.
Validity has to be checked type by type, because Search Console has no report for Organization, WebSite, SoftwareApplication or Article. Its rich result reports cover breadcrumbs, product snippets, merchant listings, review snippets and profile pages, among other types. Organization, SoftwareApplication and Article are therefore checked in the Rich Results Test or URL Inspection, and WebSite in the Schema Markup Validator.
How to measure whether schema markup helps AI search
Once the fixes ship, the first measure is fact accuracy, the share of answers, per platform, that name the right company and state each fact correctly. It is read from a fixed panel of 20 to 50 prompts about the company's category, plans, prices, integrations and security. Each prompt runs more than once, because answers vary between runs, and a weekly run of the same panel shows whether the facts improve after the markup and the pages change.
Fact accuracy does not show which pages an answer drew on, so citations of the changed pages come second. They are compared with similar pages left unchanged over the same weeks, because AI citations rise and fall with platform-wide trends, as the Ahrefs control pages showed. Google recommends a before-and-after test on a few pages, read in Search Console over months.
Google and Bing now report AI visibility directly, which makes a before-and-after check possible without third-party tools. Search Console's Generative AI performance reports, launched on 3 June and live for every property since 31 August 2026, show impressions in AI Overviews and AI Mode, and Bing Webmaster Tools' AI Performance report, in public preview, shows citations across Copilot and Bing's AI summaries. For ChatGPT, Claude and Perplexity, the prompt panel remains the measure.

Engines recrawl pages and refresh their records on their own schedules, so a markup fix can take weeks to show in AI answers. The same prompt can also get a different answer on each run, so one week's score can rise or fall by chance, and the panel is read as a trend across several weekly runs. Omnius tracks citations this way for each prompt and engine, and the cited pages in this guide come from that tracking.
Read more: How to measure GEO success
Which schema markup mistakes waste effort?
Beyond the failures the audit finds, five mistakes waste effort for little or no return:
- Schema as the AI search plan. Markup did not lift citations of already-cited pages against matched pages, so it cannot stand in for content and authority work.
- Review-platform ratings as aggregateRating. Google's review snippet guidelines bar ratings aggregated from other websites, such as G2 or Capterra scores.
- A price of 0 on a Contact sales plan. Google's software app guide sets a price of 0 for an app available without payment, so a plan with no public price carries no price at all.
- Plugin and widget markup nobody has read. A plugin, theme, widget or tag manager publishes a second Organization, a stale Offer or, like the testimonial widget in factor 1, a page's only JSON-LD block.
- Judging markup by citations alone. Citations move for reasons markup does not control, while fact accuracy shows whether search engines hold the right record.
Most of those mistakes start where the markup is managed apart from the company's facts, and keeping the two in one record is entity and structured data work.
How we approach schema markup at Omnius
As an SEO and AI search agency, we treat structured data as the machine-readable copy of a company's record. Markup restates a company that search engines already recognise as one entity. Where a company's facts still conflict across its pages and profiles, markup publishes those conflicts in machine-readable form. Our entity work therefore settles the company's name, category and facts first, and generates the schema from that record.
The markup does not carry the citations on its own. In our datasets, two posts on one vertical SaaS vendor's blog carried the same Article, BreadcrumbList, Organization and author markup. Between July and October 2026, the purchasing guide with cost and comparison tables drew 210 AI citations, and a post on pros and cons with no figures drew none. One team runs the work from the record to measurement, in four parts:
- Entity record: we keep the company's facts in one model, each marked confirmed, inferred or open, and generate the Organization graph, identifiers and sameAs from it.
- Delivery: we print the JSON-LD in each template's server HTML, validate the entity data and keep key content accessible to search and AI crawlers.
- Fact pages: the website and the schema share that one source of truth, so the markup states the facts the page shows.
- Measurement: we track fact accuracy and citations on a fixed prompt panel.

We track that panel in Atomic AGI, the AI search product built inside Omnius, which follows more than 11,000 domains across Google and the major AI platforms.
Frequently asked questions
Is FAQ schema still relevant?
FAQ schema is still relevant, but it matters much less than it did. Google stopped showing FAQ rich results for every website on 7 May 2026, so FAQ markup no longer changes how a page looks in Google, and Google says it can still make general use of schema.org markup beyond its documented features. It is worth keeping where the questions and answers are visible on the page, and it should be removed where it marks up answers readers cannot see.
Does schema markup help SEO?
Schema markup helps SEO by making pages eligible for rich results such as product snippets, review stars and breadcrumbs, which Google's starter guide names as its value. Google says a structured data manual action removes that eligibility without affecting how the page ranks, and that retiring seven structured data features in 2025 would not affect rankings either.
Is there a special schema type for AI search or GEO?
No special schema type exists for AI search or GEO. Google says no special schema.org markup is needed for its generative AI features, and schema.org's 30.1 release in September 2026 added no terms aimed at AI search. llms.txt is a proposed Markdown file, not schema.org markup, and Google Search does not use it.
Does ChatGPT read schema markup?
ChatGPT has no documented use of schema markup, since OpenAI publishes nothing on reading JSON-LD. When ChatGPT opens a page live, its fetcher runs no JavaScript, and in the two published fetch tests no fact that existed only in JSON-LD reached the answer. ChatGPT's shopping results take structured price data from providers and merchant feeds, so for a SaaS vendor's plans, the page text is what ChatGPT's live fetch receives.
Does schema markup end up in an LLM's training data?
Schema markup is dropped from FineWeb and RefinedWeb, two open web datasets built to train models. Both extract page text with trafilatura, whose default cleaning removes script and head elements, so JSON-LD inside a script tag does not survive. The papers do not name the extractor version, and OpenAI and Anthropic do not publish how they extract text for training.
Methodology
The evidence behind this guide:
- Omnius datasets. We compared cited and uncited pages of the same website and page type: 482 blog, comparison and product pages, 181 of which carried 2,915 AI citations from 13 July to 11 October 2026, with uncited pages sampled from each website's sitemap. A second sample covered 261 third-party pages cited in the same answers, and a third the homepages and 53 pricing pages of 100 B2B SaaS and fintech vendors cited in them, read as raw HTML and, for the 96 homepages and 45 pricing pages that rendered, in headless Chrome on 13 October 2026. The figures are anonymised, and the same-website shares weight uncited pages to the cited pages' mix of websites and page types.
- Analysis. The two paths, the five factors and the steps are our analysis of the platforms' documentation, the tests and the datasets.
- Recent developments. Each date is the publication date on the primary source, except the FAQ change, dated by when the results stopped. All were checked on 13 October 2026, and the screenshots were taken on 14 October 2026.
- Limits. The datasets show observations, never causes. Markup barely varies inside a website, so the comparison cannot show what a website without markup would get. The Ahrefs study covers pages that already had 100 or more AI Overview citations. Each fetch test used one page, the Gemini results differ between the two tests, and Writesonic's test left out Perplexity.
- Other sources. Platform behaviour comes from Google, Microsoft, OpenAI, Anthropic and Perplexity documentation, and third-party figures from Ahrefs, AirOps with Growth Memo, searchVIU, Writesonic, Vercel with Ora, G2 and Profound.
Sources
The documentation and studies behind this guide:
- Google: introduction to structured data, JavaScript SEO basics, lazy-loaded content, general structured data guidelines, AI features and a website, AI Overviews and AI Mode, product snippets, software apps, review snippets, Organization markup, byline dates, Knowledge Graph Search API, rich result reports, Generative AI performance report and documentation updates
- Microsoft: Bing Webmaster Guidelines, marking up a site with structured data, content for AI search answers, AI Performance in Bing Webmaster Tools and Search Engine Land on Bing's use of schema
- OpenAI, Anthropic and Perplexity: searching the web with ChatGPT, shopping with ChatGPT search, Claude's web fetch tool, Anthropic subprocessors and Perplexity's search API
- Tests and studies: Writesonic's AI crawler study, AirOps on fan-out and citations, Vercel and Ora on readable websites, FineWeb and RefinedWeb
- Surveys and market data: G2's answer economy research, Profound on inaccurate AI claims and Profound on pricing answers
- Standards: schema.org releases and the llms.txt proposal



.png)










