There is a comforting idea in most GEO content: a single checklist that makes you visible to AI. Add llms.txt, add schema, chunk your content for the models, and the machines will find you. It is comforting, and it is wrong.
The uncomfortable reality is that AI engines do not agree with each other. The same signal that helps you appear in Google AI Overviews can be officially ignored by ChatGPT, irrelevant to Perplexity, and actively discouraged as a practice. Optimizing “for AI” as if AI were one thing produces wasted effort at best and counter-productive optimization at worst.
This article is built from the engine coverage matrix inside the Verity Score audit: 18 signals scored against 9 AI engines, where every cell is tagged from an official statement, a documented behavior, or a measured study, not a guess. Method note: the statuses below come from platform documentation (Google Search Central, Anthropic, Shopify) and independent 2026 studies, checked on July 13, 2026, not from a single-prompt test.
In 60 words
GEO signals are engine-specific, not universal. Google’s AI Search officially ignores llms.txt and Markdown alternates and discourages AI-specific chunking; Claude, Perplexity and Cloudflare tooling do read llms.txt. Product schema and Core Web Vitals matter for Google, an ACP feed matters for ChatGPT Shopping, agent-card and Web Bot Auth matter for Claude and Perplexity. Ask which engine, not whether.
The myth of the universal GEO signal
Most “AI visibility” advice treats the AI layer as a single audience. It is not. The nine engines that decide whether your store surfaces in an answer are built on different pipelines:
- Index-based engines (Google AI Overviews, Google AI Mode, Gemini grounding, Bing/Copilot) answer from a pre-built index that already crawled, rendered and parsed the web. They inherit years of classic ranking signals.
- Live-browse engines (ChatGPT Search, Claude with web access, Perplexity) fetch pages closer to real time, read the raw HTML, and lean on retrieval and citation logic.
- Commerce-protocol engines (ChatGPT Shopping via ACP, Google AI Mode checkout via UCP, Copilot via Shopify Catalog) do not read your page at all for the buy step: they read a structured feed.
A signal that speaks to a pipeline that does not exist on a given engine is dead weight there. That is the whole thesis: a signal is not a best practice in the absolute, it is a best practice for a specific engine.
The signal-by-engine matrix
Here is the core of it. Legend: Yes = the engine takes the signal into account; neutral = no official position; N/A = officially declared not applicable; avoid = the practice is discouraged.
| Signal | Google AIO | ChatGPT Search | Gemini | AI Mode | ChatGPT Shopping | Copilot | Claude | Perplexity |
|---|---|---|---|---|---|---|---|---|
| llms.txt | N/A | neutral | N/A | N/A | N/A | neutral | Yes | Yes |
| Markdown alternate | N/A | neutral | N/A | N/A | N/A | neutral | Yes | neutral |
| Agent-card (/.well-known) | neutral | Yes | neutral | neutral | neutral | neutral | Yes | Yes |
| UCP manifest | Yes | neutral | Yes | Yes | N/A | neutral | neutral | neutral |
| ACP feed | N/A | Yes | N/A | N/A | Yes | N/A | neutral | neutral |
| Product schema (SSR) | Yes | neutral | Yes | Yes | neutral | neutral | neutral | Yes |
| AggregateRating compliance | Yes | neutral | Yes | Yes | neutral | neutral | neutral | Yes |
| GTIN coverage | Yes | Yes | Yes | Yes | Yes | Yes | neutral | Yes |
| Web Bot Auth | neutral | Yes | neutral | neutral | neutral | neutral | Yes | Yes |
| AI-specific chunking / rewrite | avoid | neutral | avoid | avoid | neutral | neutral | neutral | neutral |
| Agent DOM visibility | Yes | Yes | Yes | Yes | neutral | neutral | Yes | Yes |
| Bot HTTP access (200) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Core Web Vitals | Yes | neutral | Yes | Yes | neutral | neutral | neutral | neutral |
Read across any row and the point is obvious: llms.txt is a clean “N/A” for the entire Google family and a clean “Yes” for Claude, Perplexity and agent tooling. Product schema rendered server-side is a “Yes” for the Google index engines and Perplexity but neutral for a live-browse ChatGPT fetch. Google’s own surfaces (AI Overviews, AI Mode, Gemini) largely move together, since they inherit one Search stance, but across families no two columns look alike.
llms.txt: what Google actually says (and what it does not)
This is the signal where the myth is loudest, so it deserves precision.
Google has been explicit. Its guide to optimizing for generative AI features (published May 15, 2026, with a clarification added June 15 and the page updated July 10, 2026) lists “machine-readable files, AI text files, custom Markdown markup” among the things Google Search itself does not use. John Mueller went further, stating that no AI system currently uses llms.txt, and describing Google’s own published llms.txt as a “temporary crutch” to help AI coding tools parse its documentation and save tokens, not a Search input.
Two precisions matter, because sloppy versions of this claim are also wrong:
- Ignored is not penalized. Google’s June clarification says it is “fine” to publish llms.txt: it neither harms nor helps Search. Do not let anyone tell you the file is dangerous for Google. It is simply inert there.
- The adoption data is brutal. Ahrefs analyzed 137,000 sites and found 97% of llms.txt files receive no bot requests at all. Most of the internet’s llms.txt files are read by nobody.
So does that make llms.txt a waste of time? Only if Google is your only target. Anthropic and Perplexity read it in practice (Anthropic even publishes llms.txt on its own Claude docs), and the file is a real signal for the llms.txt spec’s native audience: AI agents and agent-readiness tooling.
The agent-versus-Search paradox
Here is the detail that resolves the apparent contradiction. Google ignores llms.txt for ranking, and yet Google added an llms.txt check to Chrome Lighthouse 13.3, in an experimental “Agentic Browsing” audit.
Both are true because they target different surfaces. Google Search does not rank on llms.txt. Google’s agent tooling (the browser-side checks that evaluate whether a site is ready for AI agents) does look at it. The Verity matrix encodes exactly this split: llms.txt is N/A for the Search-derived engines and “Yes” for Claude, Perplexity and the isitagentready/Cloudflare tooling column. Same file, opposite verdicts, because “AI” is not one destination.
The discouraged cell: chunking and rewriting “for LLMs”
Across the entire matrix, one practice is not merely neutral or inapplicable: it is marked avoid. Artificially chunking your content into micro-blocks or rewriting it “for the LLMs” is listed in Google’s AI optimization guide as inefficient or counter-productive for its generative features, and it earns an “avoid” for the Google AIO, AI Mode and Gemini columns.
The lesson is old but keeps getting relearned: write for humans with clear, factual, well-structured content. The same page that serves a shopper serves the model. Manufacturing a parallel “AI version” of your content is the GEO equivalent of keyword stuffing, and the data on stuffing is unambiguous: in the founding Princeton GEO research and its 2026 follow-ups, keyword stuffing is the one method that measurably lowers visibility, while adding citations and statistics raises it.
What actually counts, by engine family
If the matrix has one column that never lies, it is Bot HTTP access: every engine needs a real HTTP 200 before anything else matters. Start there (your robots.txt and crawler rules), then specialize:
- Google family (AIO, AI Mode, Gemini): complete, server-rendered Product schema, Core Web Vitals, E-E-A-T signals, a clean Merchant Center feed, and compliant AggregateRating. This is where classic quality signals still pay.
- ChatGPT (Search and Shopping): an ACP feed with GTINs for the Shopping surface, agent-card and DOM visibility for Search. Note that llms.txt and Markdown alternates are N/A here.
- Claude and Perplexity: agent-card, Web Bot Auth, and (yes) llms.txt, plus server-rendered facts Perplexity can retrieve. These are the engines where the agent-readiness files earn their keep.
- Shopify agentic storefronts (ChatGPT, AI Mode, Copilot): the feed and catalog quality, not your page HTML, drive the buy step.
For the deeper platform playbook, see the AI platforms guide and Google’s AI optimization changes for 2026.
Why one audit beats one checklist
A universal checklist forces you to guess which items apply to you. The store that publishes llms.txt and calls it “AI optimization” has done something real for Claude and Perplexity and nothing at all for the Google engines that drive the most volume. The store that only fixes schema has served the index engines and left the ChatGPT Shopping feed empty.
The point of scoring 18 signals against 9 engines is to replace the guess with a map: which engines you already satisfy, which ones you are invisible to, and which “best practice” you are spending effort on that does nothing for your actual target. That is what a free GEO audit returns for a Shopify store, in about 60 seconds, with the reason named per engine rather than as a generic score.