AN EXPLAINER · AUGUST 2026
A companion document to "AI System Visibility Tech Stack"
The source material rests on a single claim: a website is not enough.
PAGES AT ORGANIC POSITION ONE CITED IN 43% OF QUERIES; AT POSITION SEVEN, IN 5% [41]
OF AI CITATIONS COME FROM EARNED THIRD-PARTY COVERAGE [12]
OF AGENT ACTIVITY REACHES CHECKOUT AND PAYMENT ROUTES [39]
The source material rests on a single claim: a website is not enough. Knowledge about a business has to be structured so that a machine can find it, understand it, query it, verify it, and confirm that it is current. From that come five requirements (Discoverable, Understandable, Queryable, Verifiable, Current) and seven implementation layers:
Plus a seven-phase implementation sequence and a closing checklist.
Architecturally this is a progression from internal truth to external corroboration, and that logic is sound. The practical difficulty lies elsewhere: the layers serve two different scenarios of machine interaction with a website, and those scenarios are at very different stages of maturity. The next section is devoted to separating them, and without it the rest of the document reads incorrectly.
Someone opens ChatGPT, Claude, Google AI Mode, Perplexity, or Gemini and asks: "what is the best SaaS for running Meta ads", "a good dentist in my city", "who does X in this industry".
What happens technically:
Three consequences that determine almost everything else:
This is an engineering design rule, not a complete description of the architecture. The system producing the answer does not necessarily make a fresh request to your page at the moment of each answer: it may rely on its own index, on a third-party search provider, or on a cached representation obtained earlier. The practical conclusion is unchanged: do not count on script execution, and keep meaningful content in the server response.
This is the channel the industry calls AI visibility, AEO, or GEO. Today it accounts for essentially all commercially meaningful volume.
An agent is a system that performs a multi-step task through a loop of plan, act, observe the result, act again, and whose actions have side effects in the outside world. Fill in a form, send an email, place an order, change a record, trigger a build.
The difference from retrieval is not the intelligence of the model but the presence of consequences. Asking "find me a dentist" is retrieval. Saying "book me in with them for Tuesday" is an agentic task.
The boundary is not perfectly clean. Modes such as Deep Research are formally agentic in mechanism, being an autonomous multi-step loop, but all their actions amount to reading the web. To a site owner such an agent behaves like retrieval.
It matters who owns the agent. You do not run an agent on your own site. Someone else runs it, and it arrives at your site as a visitor. The owner is almost always a buyer, a developer, or an employee of another company.
Coding agents in development environments. Cursor, Claude Code, GitHub Copilot, Windsurf. The largest and most genuinely agentic population today. A developer writes code, the agent independently reads the documentation of the libraries in use, edits files, runs tests, fixes errors. This is the primary practical audience for llms.txt, and it is why the file is published by Stripe, Cloudflare, Vercel, Anthropic, OpenAI, and the Microsoft Teams SDK [2]: their buyer is a developer.
An important precision in wording: these tools are able to use a Markdown representation of documentation when the resource is provided or connected to them (pasted as a URL, added to project context, or added to rules). Confirmation that they reach for /llms.txt on an unfamiliar domain by default could not be found. The distinction matters and is easily lost.
Browser agents. Perplexity Comet, the built-in browser and agent mode of the ChatGPT app, Claude in Chrome, Google's agentic capabilities in Chrome and AI Mode. They run inside the user's browser, under the user's login, on the user's session, and see the same pages the user sees.
This category turns over quickly, and product names cited in industry measurements go out of date fast. The standalone ChatGPT Atlas browser, launched in October 2025, was announced for shutdown on 9 July 2026 and stopped working on 9 August: its capabilities were moved into the ChatGPT app, a Chrome extension, and a cloud browser for the agent [48]. The standalone Operator product had earlier ceased to exist on its own, folded into ChatGPT's agent mode. Keep this in mind when reading any per-product shares below: they describe a historical period, not the current composition of the market.
Typical scenarios: compare products, book a table, process a return, fill a form with data from an email. This population is the reason WebMCP exists, along with the requirements around accessibility tree quality and layout stability.
Programmatic agents built by developers. A company assembles an internal assistant: a language model plus a set of connected tools via MCP or direct APIs. "Pull the week's tickets into a report and put it in Confluence." Your site enters such a loop only if an engineer deliberately connected it. It does not happen by accident.
Commerce agents. Early stage. It is for them that Google launched the Universal Commerce Protocol together with Shopify, Etsy, Wayfair, Target, and Walmart, with support from Visa, Mastercard, American Express, and Stripe [3], while Cloudflare and Amazon build bot verification mechanisms to distinguish a purchasing agent from a scraper.
Universal Commerce Protocol, briefly. An open protocol for purchases made by an agent on a person's behalf. It standardizes three seams that everyone currently solves in their own way: how a merchant describes a product, price, and availability in machine-readable form; how the agent hands a completed order to the merchant; and how payment proceeds with an explicit indication that the purchase is being made by an agent acting for a specific buyer. The point of that last item is to let the merchant and the payment system distinguish an agentic purchase from a fraudulent one and accept it deliberately rather than block it as suspicious. Without such a protocol an agent has to imitate a human in someone else's interface, which is unreliable for the agent and indistinguishable from an attack for the merchant.
Agentic traffic is growing quickly. HUMAN Security measured growth of 1300 percent between January and August 2025, reaching roughly 4.5 million requests per month, then accelerating a further 131 percent month over month by September [4]. In April 2026 browser agents accounted for about 71 percent of observed agentic activity; in June, Comet held 47.6 percent of volume, Claude 20.8, Atlas 16.5 [5].
The detail that determines priorities for a specific business is the industry distribution. In July 2026 media overtook e-commerce for the first time: media 43.5 percent, e-commerce 42.0, travel 13.4 [39]. A month earlier the ratio was reversed: commerce 43.8, media 41.3, travel 13.5 [5]. Every other industry occupies fractions of a percent: financial services around 0.46, streaming and gaming 0.14, education 0.03 [5][39].
"Media" here means publishers and content sites. Agents go there to read articles, and this leads to the central conclusion of the whole measurement series.
Agents today are used for research, not for completing transactions. Product and search routes, meaning browsing catalogs, reading articles, and running searches, consistently account for between 69 and 79 percent of activity, while checkout and payment routes account for 2.4 to 3.2 percent [6][40][39]. HUMAN states it plainly in its reports: agents are primarily leveraged for discovery and research rather than for completing transactions [39].
In other words, the e-commerce share means agents are browsing product cards, not buying. The travel share means they are reading about hotels.
A methodological caveat. The data is collected on HUMAN's protection platform, so it reflects the traffic of their customers, and that customer base skews toward media, commerce, and travel, because those are the industries that buy bot protection. This does not change the orders of magnitude, but the shares for small industries should be read as an indication rather than a precise measurement of the market.
It is worth noting separately that no public source contains data on service-sector appointment booking via browser agents. The one direction where such scenarios have genuinely appeared is Google: AI Mode gained the ability to find and complete restaurant reservations, event tickets, and beauty and wellness appointments through integrations with booking platforms, and at Google I/O on 20 May 2026 an expansion into home services was announced with nationwide US rollout [7]. The mechanism there is different: the system calls the business by voice, and it contacts only those who are already present in local search results.
Both channels are real, but they are served by different tools and are at different stages.
| Retrieval channel | Agentic action channel | |
|---|---|---|
| What happens | you are named in an answer | an action is performed on your site |
| Who arrives | AI search crawlers | browser and programmatic agents |
| What is read | raw HTML, text, markup | interfaces, tools, accessibility tree |
| Maturity | works everywhere | e-commerce, media, travel, software |
| Who benefits | any business | depends on the industry |
The tools from the source document serve now one channel, now the other, sometimes both. This is stated explicitly for each of them below.
The tools are grouped by function, following the logic of the source document's layers. Each group opens with a summary table for scanning, followed by detailed cards.
The "channel" column shows which of the two scenarios a tool serves. The "who reads it today" column describes the actual state of affairs as of August 2026.
GROUP 1
Everything that determines whether your text reaches a reading system at all, and in what condition.
| Tool | Who reads it today | Channel | Who it applies to |
|---|---|---|---|
| Server rendering, content in the source HTML | Universally safe baseline; required by most retrieval crawlers | Both | Everyone |
| robots.txt | All crawlers | Both | Everyone |
| sitemap.xml | Search and AI crawlers | Retrieval | 20+ pages |
| Semantic structure and self-contained blocks | All retrieval systems | Retrieval | Everyone |
| Original and first-hand content | All retrieval systems | Retrieval | Everyone |
| Open-format FAQ | All retrieval systems | Retrieval | Everyone |
| Content currency | All retrieval systems | Retrieval | Everyone, with different rules per page type |
SERVER RENDERING, CONTENT IN THE SOURCE HTML
People see a page after their browser has assembled it. Most AI systems see only the blank the server sent. There are exceptions that assemble the page fully, but they cannot be relied on. If your text appears in the second second, it does not exist for a large share of systems.
The requirement that a page's substantive text be present in the HTML the server returns in its first response, rather than assembled in the visitor's browser by scripts.
A human's browser executes JavaScript and completes the page. Most AI crawlers make a single HTTP request and parse what arrives. Measurements across GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-SearchBot, PerplexityBot, Meta-ExternalAgent, Bytespider, and CCBot show that they download scripts but do not execute them: GPTBot fetched script files in roughly 11.5 percent of requests and ClaudeBot in 23.8, and neither ran them. Two render: Gemini via Googlebot infrastructure and Applebot via its own browser-based crawler [1].
Nearly everything published on this subject, including the percentages above, traces back to a single Vercel and MERJ study published in December 2024. No independent re-verification at comparable scale has been published since. Crawler infrastructure may have changed, so the correct phrasing is "according to the latest published data" rather than an assertion about a fixed property of these systems.
The distinction is not the number of scripts but whether a script creates text.
Safe, because the text is already in the HTML and the script only adds behavior: AJAX form submission, menu toggles, sliders, counters, chat widgets, consent banners, analytics.
Hides content, because the text is not in the source HTML: single-page applications in React or Vue with client-side rendering, "load more" pagination, tabs that fetch content on click, reviews and prices pulled in by a third-party widget after load, and consent screens that block content until a button is pressed.
On forms specifically: the fact that a form is submitted by script has no effect on citation, because a reading system does not fill in forms. It matters only for browser agents, and there what counts is the conventionality of the field markup, not the submission technology.
An ordinary WordPress site with a PHP theme returns finished HTML from the server by default; nothing needs configuring. The same holds for most classic content management systems. The problems come from what is layered on top, and they arise in three typical cases: a headless configuration where the system serves only as a data source while the interface is assembled on the client; page builders that render blocks as the user scrolls; and plugins that load reviews, prices, or schedules after the page has loaded.
They do, but not in the way usually assumed. A crawler does not render the page and largely does not parse stylesheets, so CSS weight in itself is nearly irrelevant. What matters is HTML structure, for two distinct reasons, neither of which is about parsing time.
First: extraction quality. The system separates the substantive part of the page from navigation, footer, and boilerplate markup. Deeply nested containers, large menus, inline vector graphics in the markup, and repeating boilerplate blocks degrade that separation, raising the chance that junk ends up in the extracted fragment while something useful is lost.
Second: token cost. Tools that feed raw HTML into a model's context window spend that window on markup. This is where the multiple-fold differences arise that Markdown exports exist to address [2].
Plus a general factor: crawlers operate on a crawl budget, and slow server responses with heavy pages consume it.
Open an address of the form view-source:https://yoursite.com in a browser and search the page for a distinctive phrase from the visible text. That is the server response without script execution: if the phrase is not there, a significant share of AI systems will not see it.
One caution about tooling: URL Inspection in Search Console is not suitable for this task. It shows the result of Googlebot's rendering, not what a crawler receives without executing scripts.
This is not an improvement, it is a precondition. Everything else in this document only makes sense once it is in place.
ROBOTS.TXT
A sign on the door. By default the door is open and nobody needs a special invitation. The reading rule is this: if a robot finds a line naming it personally, it reads only that line and ignores the general rules entirely. Which is why a personal line hurts more often than it helps.
A text file at the site root declaring where automated visitors may go.
The absence of a prohibition means permission. If there is no file at all, or nothing in it is closed off, every automated visitor, including the training crawlers of AI companies, treats the site as open. No permissions need to be issued: an Allow line adds nothing to the absence of a Disallow line. For the overwhelming majority of sites the correct robots.txt is a short file closing off administrative paths and pointing to the sitemap. That is a complete option, not a simplified one.
A robot looks for groups whose User-agent line names it. The RFC 9309 rule has two parts, and the second is often lost:
User-agent: * group applies only when no group naming it specifically exists at all.The key consequence: a specific group does not inherit rules from the general one. The appearance of a line naming a robot switches off the entire User-agent: * block for it.
Hence a typical mistake. A site owner wants to explicitly welcome AI crawlers and writes:
User-agent: *
Disallow: /wp-admin/
User-agent: GPTBot
Allow: /The result is the opposite of the intent. GPTBot now operates under its own group, where the administrative path is not disallowed, and gains access to exactly what is closed to everyone else. To do this correctly, every prohibition would have to be duplicated inside each named group.
Only when different crawlers need to be treated differently. That need arises because AI companies split their crawlers by purpose: at OpenAI, GPTBot collects training data, OAI-SearchBot serves search results, and ChatGPT-User handles user-initiated link fetches; at Anthropic the equivalents are ClaudeBot, Claude-SearchBot, and Claude-User. Blocking a training crawler does not impede citation; blocking a search crawler impedes it directly. If you do not need that distinction, it is better not to create named groups: there is no gain and the risk of error is real.
It does not improve visibility by itself. A mistake in it can nullify everything else.
SITEMAP.XML
A table of contents. Useful, but it does not by itself persuade anyone to read the book.
An XML file listing the pages of a site that should be indexed.
The crawler gets a complete list of addresses without relying on link traversal. It speeds up discovery of new pages and deeply nested sections.
Automatically, by any modern CMS or SEO plugin. Referenced by a Sitemap line in robots.txt.
The sitemap protocol is intended for indexable pages. Machine-readable resources such as JSON endpoints should not be placed there: crawlers do not discover them that way, and the Search Console report starts producing errors.
Coverage completeness. Most noticeable on sites with many pages and weak internal linking.
SEMANTIC STRUCTURE AND SELF-CONTAINED BLOCKS
Some systems take a single fragment from your page rather than the whole thing. Writing so that an excerpted paragraph still makes sense serves both them and human readers. There is no need to take it as far as mechanically chopping up the text: Google states plainly that it does not require this, and unnaturally fragmented text reads worse for people.
The practical embodiment, at the level of markup and editing, of what the source document calls atomic knowledge units.
The generalized retrieval mechanism is described like this: the system does not read the whole site but splits texts into fragments, computes their vector representations, finds those closest to the question, and passes only those to the model. Hence the conclusion that the unit of optimization is a self-contained fragment.
That description is characteristic of systems built on retrieval-augmented generation. It is not a universal law governing all AI systems, and the largest platform says so directly.
Google's official guidance of 15 May 2026 states, in its mythbusting section, that there is no requirement to break content into tiny pieces for AI to understand it better, that Google's systems are able to understand the nuance of multiple topics on a page and show the relevant part to the user, that there is no ideal page length, and that pages should be made for the audience rather than for generative search. The same list of unnecessary tactics includes llms.txt, special markup, and rewriting text for AI [19].
It does not follow that the principles below are useless. It follows that they should be defended on grounds of clarity for the reader, rather than by an assertion about how the parser works. And separately: Google's statement concerns Google Search and does not describe the pipelines of ChatGPT, Claude, or Perplexity, which genuinely are built on passage retrieval.
The correct standing of this section: a cross-platform editorial heuristic, useful both to people and to retrieval systems, but not a requirement of AI search systems. Specific chunking strategies differ between systems and are in most cases unpublished.
This is a discipline of writing and markup, not a technology. The first two points hold under any architecture; the rest are recommendations.
h2 and h3 tags rather than containers styled to look like headings: this is markup, not styling, and everything reads it.The cheapest work in this entire document. It requires no new technology and no development budget, and it pays off with readers regardless of how AI systems behave. That is the ground on which it should be defended.
ORIGINAL AND FIRST-HAND CONTENT
If the same thing is written in fifty other places, they will not pick you. If it exists only at your site, there is nothing to pick between.
Material that exists nowhere else: your own data, results from your own practice, a named methodology, observations and conclusions formed inside the company.
The mechanism is twofold.
The first concerns fragment selection. Retrieval picks the passage that answers the question, and it does so by vector proximity. If your text restates what fifty other pages say, the system has no reason to pick you over a more authoritative source with the same content. Your own numbers, results from specific cases, an observation from practice, all create fragments that exist nowhere else. When a query touches them, you have no competitors.
The second concerns the external channel. First-hand data gets cited by others, and third-party coverage is what supplies the bulk of AI citations [12].
This is editorial work, not technical: publishing your own statistics, writing up real cases, articulating methodologies, taking a reasoned position on contested questions in your field. A formally measurable test: can a verbatim equivalent of your claim be found in another source.
No. Models maintain no separate assessment of your page's uniqueness. Indirect mechanisms do the work: vector-proximity search means near-duplicate content competes against more authoritative copies of the same meaning, and Google's long-standing deduplication and content-usefulness mechanisms feed its AI features too, since Google confirms these run on the same ranking systems as ordinary search [19].
The part of the work most resistant to copying. A competitor can reproduce your markup and structure in a week. Your own data they cannot reproduce.
OPEN-FORMAT FAQ
A ready answer to a ready question. Exactly what the system is looking for to drop into its response. Whether it sits behind a toggle does not matter; what matters is that the text is in the page rather than loaded after a click.
A questions-and-answers section where the answer text is present in the HTML immediately rather than being expanded on click by a script.
A question-and-answer pair structurally matches the shape of an extractable fragment: it is self-contained, its boundaries are obvious, and it answers a stated question. This is an argument about the form of the content, and it does not depend on markup.
The requirement is not that the answer be visually expanded, but that the answer text be physically present in the delivered HTML. If the markup looks like this:
<div class="answer" hidden>answer text</div>and the script only toggles visibility, the text is in the document and a reading system receives it. The problem arises in a different case: when a click triggers a network request and the text is created only afterwards. Then it is absent for anyone who does not execute scripts.
In other words, a visual accordion is not in itself a violation. Deferred loading of the content is.
A third-level heading with the question, a paragraph with the answer, all the text in the source server response.
As of 7 May 2026 Google stopped showing FAQ rich results in Search, and support in Search Console reports and the Rich Results Test is being withdrawn in stages in June and August 2026 [46]. This was the final stage of a three-year withdrawal: back in August 2023 eligibility had already been restricted to a narrow set of government and health sites.
The practical consequence: the one proven application of FAQPage markup has disappeared. The type remains a valid schema.org vocabulary term, it can be left on pages, Google confirms that unused structured data causes no problems, and other crawlers continue to parse it. But there is no basis for promising a visibility gain from it. The correct category for it today is optional semantic markup: add it if convenient, skip it if it creates maintenance overhead.
It is important not to fuse two separate questions. What lost its value is the markup. The content format, meaning an open question-and-answer pair in the page text, lost nothing at all, and the argument for it rests entirely on text structure rather than on schema.
A direct channel: the phrasing of a question in an FAQ matches the phrasing of a user's query, and the answer is extracted whole.
CONTENT CURRENCY
Some pages go stale and need reviewing. Some do not go stale and need no touching, as long as what is written there is correct.
The correspondence of what is published to the current state of affairs. Two cases need distinguishing, because the requirements differ.
Two levels of claim are worth separating here, because they are frequently mixed.
The observation: pages not updated within a quarter lose citations three times more often, and roughly 30 percent of brands retain visibility across consecutive AI answers [9]. This is the result of an observational study on a large sample, and as an observation it is robust.
What does not follow from it: that the signals listed below carry precisely those weights in the algorithms. Ranking weights for ChatGPT, Claude, Perplexity, and Google AI Mode are unpublished, and reconstructing them from correlation is not possible. Moreover, regularly updated pages differ systematically on other dimensions too: they more often cover competitive topics, they are maintained by stronger editorial teams, they simultaneously accumulate links and improve their structure. Any of these factors could explain the difference.
What is known reliably is the set of signals these systems can observe at all: the Last-Modified response header, the lastmod field in the sitemap, the datePublished and dateModified properties in markup, the visible date on the page, and the actual difference in content between crawls. The last of these is the only one that cannot be faked, and that is a common-sense observation rather than a measured quantity.
The quarterly rule applies to content whose answer changes over time: prices, service descriptions and scope, comparisons, guides, analytical material, anything answering the question "how do things stand now".
Permanent pages such as contacts, the about section, or a founder's biography do not need updating in that sense. What matters there is not freshness but accuracy and the absence of contradictions with external sources. A contacts page unchanged for two years is entirely fine if the phone number is correct and matches the directory profiles.
A review calendar assigned separately by page type rather than applied across the board. Real change to content, not a cosmetic edit.
Updating the modification date without changing the content is a recognizable tactic and works against you. Many content management systems update dateModified on any save, including a typo fix or a plugin action, which devalues the signal. The date should reflect a substantive update.
The only factor listed here that requires ongoing work rather than a one-time implementation. That same property makes it the natural basis for a recurring engagement.
pages not updated within a quarter lose citations three times more often
AIROPS · [9]
GROUP 2
Everything that answers the question "who are you and why should this be believed".
| Tool | Who reads it today | Channel | Who it applies to |
|---|---|---|---|
| JSON-LD markup using the schema.org vocabulary | Search engines, AI crawlers | Retrieval | Everyone |
| External entity anchors | All systems building knowledge graphs | Retrieval | Everyone |
| Third-party mentions | All retrieval systems | Retrieval | Everyone |
| Canonical internal fact registry | Nobody externally; it is an internal tool | Operational | Two or more points of presence |
| Drift detection | Your own monitoring | Operational | Anyone whose data changes |
JSON-LD MARKUP USING THE SCHEMA.ORG VOCABULARY
Labels on facts, in a language machines interpret identically. It works exactly to the extent that a real fact sits under the label rather than an advertising phrase. And what the label says must match what a person sees on the page.
They are often spoken of as one, but they are separate layers.
schema.org is a vocabulary: an agreed list of entity types and their properties. Organization, Person, Product, LocalBusiness, FAQPage, and inside them properties such as openingHours, priceRange, hasCredential.
JSON-LD is a notation, one of three ways to express that vocabulary on a page (alongside Microdata and RDFa) and the one recommended today. The full correct phrasing: markup in JSON-LD format using the schema.org vocabulary.
A <script type="application/ld+json"> element holds an object in which each fact is labeled with a standard property name. The system does not have to guess that one string on the page is a phone number and another is a founding year.
Via an SEO plugin, a theme template, or by hand. Placement is valid in both <head> and <body>; both positions are supported, and the settled convention favors <head>.
Google officially documents two methods of generating structured data dynamically, through Google Tag Manager and through custom JavaScript, and processes markup that appears in the DOM after rendering [45]. So for Google, the claim that "dynamic JSON-LD is invisible" is incorrect.
However, systems that do not execute scripts will not receive such markup, and they are the majority. The correct recommendation reads: for maximum cross-platform availability, structured data should be delivered in the source server response. Google will process script-injected markup, but a significant share of AI crawlers will not see it. Google's own recommendation also favors server-side delivery, since rendering adds a separate stage and a delay.
One widely circulated figure is worth unpacking, because it is usually quoted without its second half.
Ahrefs analyzed 6 million URLs and found markup present on 53 percent of AI-cited pages against roughly 18 percent of non-cited ones, nearly three times as often [8]. That figure is cited everywhere as proof that markup raises visibility. The same team then tested whether the relationship was causal: they tracked 1,885 pages that added JSON-LD between August 2025 and March 2026, matched them against 4,000 control pages with comparable citation levels, and measured the change. There was no meaningful lift on any platform [10].
The explanation the authors themselves give for the gap: markup is found on better-maintained and technically more mature sites, and such sites simultaneously publish stronger content, accumulate more links, and rank better. The correlation reflects site quality, not the effect of markup [10].
Other measurements give a softer but uneven picture. AirOps together with Kevin Indig, across 16,851 queries and 353,799 pages, found a citation rate of 38.5 percent with JSON-LD present against 32.0 without it [42]. Otterly.AI presented at BrightonSEO in April 2026 the results of a sitewide rollout across more than 2,000 URLs: growth in Google AI Overviews and AI Mode citations alongside declines in ChatGPT, Gemini, and Copilot, and no effect in Perplexity [43]. The effect is platform-dependent, and the Google ecosystem responds noticeably more than the rest.
Both major search companies affirm the usefulness directly: Fabrice Canel of Microsoft stated in March 2025 that markup helps Microsoft's language models understand content for Copilot, and Google's structured data engineer Ryan Levering has said much the same [11].
A study published in February 2026 tested whether the presence of markup predicts citation, using 730 citations from ChatGPT and Gemini across 75 commercial queries with a control group drawn from Google organic results, 1,006 pages in total [41].
The headline result is null. After model correction, the presence of markup does not predict citation (OR = 0.678, p = 0.296), nor does entity richness (OR = 1.001) or schema-to-query alignment (OR = 1.068). Moreover, within Google's own results the share of pages carrying markup among cited and non-cited pages was statistically indistinguishable, 43.1 against 44.8 percent.
The dominant predictor turned out to be something else entirely: position in ordinary organic search results (OR = 0.762 per position, p < 0.001). Pages at position one were cited in 43 percent of queries; at position seven, in 5 percent. The authors' conclusion: citation is substantially mediated by the search backend ranking that precedes content evaluation at the AI level.
One exception within that null result: pages carrying Product or Review schema with populated concrete attributes (price, aggregate rating, specifications) were cited in 61.7 percent of cases against 41.6 for pages with generic types such as Article, Organization, and BreadcrumbList (p = 0.012). The advantage was most pronounced among lower-authority domains, which the authors read as factual payload in structured data partially compensating for weak authority signals.
One cannot conclude from it that rich markup raises citation. There is an obvious confounder: a page whose markup carries a price, rating, and specifications almost certainly contains those same concrete facts in its visible text as well. It is quite possible the system is selecting facts and the markup merely correlates with their presence. The authors themselves phrase the conclusion cautiously: markup with extractable factual content may confer a modest advantage on lower-authority domains, whereas generic markup confers none, and the primary lever remains organic ranking position.
A caveat on the status of the source: this is a preprint that has not been peer reviewed, the author represents an agency in this same field, the sample is small, and a note discloses AI assistance in research design and manuscript preparation.
It is not about a citation lift but about whether the work is meaningful: if you are going to add markup, it should carry verifiable facts rather than marketing copy. An Organization type carrying nothing but a name and a logo gives the system nothing under any scenario. The same type with an address, opening hours, a price range, external profile identifiers, and a license at least carries an extractable claim. This is an argument that empty markup is pointless, not that full markup has proven benefits.
Google's rule is that structured data must represent the main visible content of the page and must not be applied to content hidden from the user [50]. A discrepancy here is classified as a policy violation, not a technical defect. In practice: do not mark up a price that is not on the page, do not mark up reviews the user cannot see, do not mark up questions whose text differs from what is visible.
It concerns factual claims addressed to the user, not all markup indiscriminately. Machine-oriented properties are not required to appear as text and are not hidden claims: @id, sameAs, canonical identifiers, machine-readable URLs, organization identifiers, technical relationships between entities. Their presence in markup while absent from visible text is normal and useful.
The distinction matters practically: an audit conducted against an over-broad reading of the rule leads to the removal of sameAs and @id, precisely the properties responsible for binding to external anchors.
It is cheap, it is set up once, it pins down entity identity and removes ambiguity in how facts are understood. Some types still unlock rich results in ordinary search, but the list of such types is shrinking: FAQ was removed from it in May 2026 and HowTo earlier [46]. There is no basis for treating markup as a lever for AI citation growth. There is a basis for treating it as inexpensive hygiene that removes ambiguity.
EXTERNAL ENTITY ANCHORS
The difference between "I wrote on my own site that I hold a license" and "the license appears in a state registry". There are intermediate steps between them: a map listing is not a certificate, but it is also not merely your word, because the platform at least checked it.
Records about your organization or about you in sources you do not control and that external systems already trust.
A system building knowledge about the world needs to determine that mentions under different names refer to the same object. That process is called entity resolution. An anchor is a record to which such mentions attach. Its defining property is that it has passed through someone else's process: moderation, verification, licensing, editorial rules.
Below they are separated by tier.
| Tier | Source | What it actually establishes |
|---|---|---|
| Independent verification | Licensing, professional, and government registries | Credentials, right to operate, fact of registration. Checked by a third party with authority |
| Operational confirmation | Google Business Profile, moderated industry directories | Existence, location, hours. Passes a platform check, but not certification |
| Curated graph | Wikidata, Google Knowledge Graph | A stable entity identifier and its relationships. Community-edited or algorithmically derived, not attested |
| Self-declaration on someone else's platform | LinkedIn, Crunchbase | Stated by the subject, but in an environment with reputational costs for discrepancy |
What all of these share is that the record lives outside your control and participates in stitching mentions together. What differs is how far it constitutes evidence.
Each by its own rules: a claim and verification in Google Business Profile, editing Wikidata under community rules, maintaining an entry in a professional registry, completing a profile in an industry directory. The work is organizational, not technical.
Every system building a knowledge graph, and every retrieval system indirectly, through the sources that rely on those records.
It raises external systems' confidence that mentions under different names refer to the same object, and it adds corroboration wherever the source genuinely verifies. A simple test of the distinction: if you can change the record tomorrow without anyone's agreement, that is self-declaration in someone else's environment, not independent corroboration. Your own site is neither.
The phrase "this turns a claim into a confirmed fact" should be applied only to the top tier of the table. For the rest it is more accurate to speak of independent corroboration and confidence in entity resolution.
THIRD-PARTY MENTIONS
When you are asked whom to trust, you look not at what a person says about themselves but at what others say about them. It works exactly the same way here.
Articles, reviews, ratings, discussions, and profiles where someone else talks about you.
A retrieval system answers on the basis of what it found for the query, and what it finds is predominantly not your site. An analysis of more than 25 million links found that earned third-party coverage accounts for 84 percent of AI citations, with the figure holding between 82 and 89 percent across three editions of the study [12]. By other data roughly 85 percent of brand mentions originate on external domains, making citation via third-party coverage 6.5 times more likely than via owned properties [13].
The picture is platform-dependent. In Google AI Overviews the share of brand-owned sites is the highest across platforms, around 59.8 percent of citations [13]. The direction is common; the proportions are not.
Publications in industry outlets, expert commentary, presence in reviews and rankings, customer reviews, participation in domain-specific discussion.
Judging by converging measurements, the weightiest contribution to the probability of being named, and at the same time the only element that can be neither coded nor configured.
A caveat on the strength of that claim: this is a robust observation across large samples, not an established law of ranking. Behavior differs between platforms and between query classes, as the Google AI Overviews difference above already shows.
CANONICAL INTERNAL FACT REGISTRY
One table recording how things actually are, so that everywhere else says the same thing.
Your own database in which every fact about the business exists in one place, in structured form, with its source, verification date, and publication level recorded.
It solves the problem of data drifting apart. A company's phone number appears in the site header, the footer, the contacts page, the markup, the Google profile, three directories, and a newsletter signature. When it changes, half those places get updated.
The practical form of the registry looks like this:
| Fact | Value | Source | Verified | Publication | Where published |
|---|---|---|---|---|---|
| Phone | +1 555 010 2030 | internal | 2026-08-01 | public | site, markup, GBP, directories |
| Founded | 2014 | incorporation | 2026-01-10 | public | site, Wikidata |
| Consultation price | 150 USD | price list v4 | 2026-08-20 | public | services page, FAQ |
| License | No. 12345 | state registry | 2026-06-01 | public | site, Person markup |
| Headcount | 12 | HR | 2026-07-01 | internal | nowhere |
A spreadsheet in Airtable or Google Sheets is enough to start. In mature form it becomes a database from which text, markup, and directory feeds are generated.
Nobody externally. It is an operational tool, and there is nothing wrong with that: it delivers three things otherwise unattainable. A single source for generating everything else. A reference against which live pages can be compared. Control over what is permitted to be published at all, which is critical in regulated industries.
The word "canonical" here carries an operational sense, not an authoritative one. The registry is canonical for you: it determines which version of a fact is correct inside the organization. External systems do not treat it as a source of truth, because any organization can write anything about itself on its own domain. Authority arises in the anchors from the previous section. The precise formulation of the relationship: the registry is the input, the anchors are the output, and consistency between them is what reads as credibility.
DRIFT DETECTION
An automatic check that everywhere says the same thing and that it has not gone stale.
Three related but distinct concepts from the source document's final layer.
Technically this is the simplest part of the entire architecture. A scheduler fetches live pages, extracts markup and key text fragments, compares them against the registry, and sends a notification on mismatch. An extension: the same reconciliation against external profiles via their APIs.
Your own monitoring. There is no external consumer, and none is needed.
It rests on the measurable effect of currency [9] and eliminates contradictions between sources, which directly reduce the chance that a system will repeat your version of a fact. Beyond that, it is the only element of the architecture requiring ongoing work, which makes it the natural basis for a recurring engagement.
citation via third-party coverage 6.5 times more likely than via owned properties
AIROPS · [13]
GROUP 3
Everything that lets a machine query a structured interface instead of reading a page.
An important preliminary note: the agents in this group are different and do not overlap. The tools here address three non-overlapping populations, and they should not be conflated.
NLWeb stands apart: it addresses the first and third populations simultaneously, since it exposes both a question-answering endpoint and an MCP server.
| Tool | Who reads it today | Channel | Who it applies to |
|---|---|---|---|
| llms.txt | Agents in dev environments, audit tools | Agentic | Documentation, API products, dev tools |
| llms-full.txt | The same | Agentic | Only with substantial documentation |
| Accessibility tree and layout stability | Browser agents, screen readers | Both | Everyone |
| REST API and JSON profile | Only those given the address | Agentic | When data changes often |
| OpenAPI | Developers, agent frameworks | Agentic | When an API exists |
| MCP | MCP clients, on explicit connection | Agentic | Products with actions |
| NLWeb | Experimental deployments | Both | Catalogs, large content libraries |
| WebMCP | Origin trial, isolated consumers | Agentic | E-commerce, booking |
| agents.json | Purpose-configured agents | Agentic | API providers |
LLMS.TXT
A table of contents written specifically for AI. Search engines do not read it; developers' assistants do.
A Markdown text file at the site root: a heading, a short project description, and sections with links to key material and one-line notes on each.
When an AI tool fetches an ordinary page it receives HTML together with navigation, consent banners, advertising scripts, and a footer. All that structural noise competes for a limited context window against the content that is actually needed. Companies serving Markdown instead of HTML have reported token consumption falling by up to a factor of ten [2]. The file provides a map: here are the sections, here is what is in each.
By hand or with a generator, placed at the site root.
Precision matters here, because a great deal of contradictory material circulates about this file.
AI search crawlers barely request it, and five independent measurements of differing kinds confirm this. Otterly.AI: 84 requests out of more than 62,100 AI bot visits over 90 days, or 0.1 percent, worse than an average page of the site [14]. Limy.AI: 408 requests out of 515 million events over 90 days, filtered to GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot, and Google-Extended [15]. Ahrefs across the logs of 137,000 domains: 97 percent of files received zero requests [16]. Weekerp: zero requests out of 68,759 AI bot requests over a month, and the most frequent requesters of the file were not AI systems but site analysis tools [17]. Trakkr across 37,894 AI-cited domains: zero advantage [18].
Google's position is stated plainly: in its updated generative search guidance of 15 May 2026, llms.txt is placed among the markup not required for AI features [19], while earlier Gary Illyes confirmed the absence of support and John Mueller compared the file to the obsolete keywords meta tag, on the grounds that a self-declared signal cannot be verified [20].
Real consumers of the file do exist, they are simply different: agents in development environments (Cursor, Claude Code, Copilot, Windsurf), MCP servers for documentation access, and assistants embedded in SaaS products working over their own documentation. The list of who publishes the file is telling: OpenAI, Anthropic, Stripe, Cloudflare, Mastercard, Vercel, Microsoft Teams SDK [2]. These are platforms whose buyer is a developer.
Since May 2026 the file is also checked automatically: Lighthouse 13.3 on 7 May added the Agentic Browsing category to the default configuration, and PageSpeed Insights inherits it within about two weeks [21]. What is checked is not only presence but format: a first-level heading, sufficient length, the presence of links [22]. An important detail: when the file is absent the audit returns not-applicable rather than a failure, since providing the file remains optional. So the existence of the check in the tool should not be read as Google expecting the file.
For products with documentation and APIs, real value for the buyer's agents. For local services and most B2B service businesses there is no practical benefit, but the cost is close to zero, and with the arrival of the Lighthouse audit the file's absence became visible to anyone running a check.
LLMS-FULL.TXT
All the documentation in one lump. Useful if there is a lot of documentation. Risky if you make a copy of every page and leave it open to search.
The extended variant: not a map of links but the entire documentation text collected into one file.
A tool receives all the content in a single request instead of dozens of page fetches.
Generated from documentation sources, updated when they change.
The same audience as llms.txt.
A common approach is to create separate Markdown copies of every page on a site. At scale this is usually pointless and creates surplus URLs that consume crawling and generate noise in canonical selection.
A caveat against overstating it: duplicate content is not in itself a spam policy violation for Google; the engine groups duplicates and selects a canonical version [51]. So this is about inefficiency and canonicalization noise, not ranking suppression.
The practical conclusion: if such representations are needed by agents, define a canonicalization and indexing policy for them and do not spawn uncontrolled alternative URLs. There is no universal requirement to block such a file from indexing.
ACCESSIBILITY TREE AND LAYOUT STABILITY
What makes a site usable for blind users makes it intelligible to an AI assistant. One piece of work, three reasons.
The accessibility tree is a simplified representation of a page's structure that the browser builds for assistive technologies. Layout stability is measured by the CLS metric.
In its guidance on building agent-friendly sites, Google notes that agents work with content in three formats: screenshots, HTML source, and the accessibility tree [22]. The tree is processed more efficiently than full HTML and far more efficiently than a screenshot. Stability matters because agents that take screenshots get confused when the layout keeps shifting.
Ordinary accessibility work: correct roles, labels, field labels, a meaningful heading structure, reserved space for images and embeds.
Browser agents and screen readers. This is a rare case where a single piece of work serves human accessibility, agent readiness, and ordinary quality metrics at once.
The most rational entry point into the agent topic: the work pays off regardless of whether agent forecasts come true, because people need it and search engines account for it.
REST API AND JSON PROFILE
A separate door for programs. The door exists, but nobody comes through it until you personally hand out the address.
A way of serving data to programs rather than to a browser. A JSON profile is the simplest form: a single static document at a fixed address holding facts about the organization.
Instead of parsing a page, a program requests an address and receives a structured response: {"name": "...", "founded": "...", "phone": "..."}. It does not have to guess where on the page the phone number sits.
A dedicated route in the application, or a static file. WordPress ships with a REST API.
Only those explicitly given the address. There is no mechanism by which a crawler would discover and call your endpoints on its own: it makes one request for HTML and leaves. This is the key difference from JSON-LD markup, which sits inside the page and therefore reaches a reading system automatically.
Useful where data changes often and there is a specific consumer: partners, your own applications, integrations. As a visibility instrument it does not work today.
OPENAPI
Instructions for your API, written so a program understands them and not only a human.
A formal machine-readable description of an API: which addresses exist, what parameters they take, what they return, how to authenticate. Formerly called Swagger.
A single YAML or JSON file replaces documentation written for humans. Clients, test harnesses, and agent tool definitions are generated from it.
Written by hand or generated from code. Many frameworks do this automatically.
Developers and agent frameworks to which the API has already been connected. This is precisely why both agents.json and AI Manifest build on top of OpenAPI: it is a ready-made contract that does not need reinventing [23].
Any interface intended to be called externally needs a machine-readable contract. OpenAPI is the standard for HTTP and REST; GraphQL, gRPC, and event-driven interfaces have their own forms of schema description, and substituting OpenAPI there is unnecessary. The requirement should be phrased as: an interface must have a machine-readable contract, and for REST that contract is OpenAPI. It is not a visibility signal in any form.
MCP
A standard connector through which AI plugs into someone else's system. Useful if you have something to plug in, and if someone deliberately plugs you in.
A protocol standardizing how a language model connects to external tools and data.
A client (Claude, Cursor, an IDE) connects to a server. The server declares a list of available tools with typed parameters. The model picks the one it needs and calls it. The integration is written once against the protocol rather than again for each model-service pair.
By writing an MCP server that wraps your business logic. This is development, not configuration.
MCP clients, on explicit connection. Two levels need separating here, and they are easily conflated.
The protocol itself contains no mechanism by which an agent arriving at an arbitrary site would discover that site's MCP server: it was designed on the assumption that the server being connected is already known [24]. Hence the attempts to close that gap with the manifests in the next group.
The ecosystem has already acquired such a layer. The official MCP Registry launched in preview on 8 September 2025 as an open catalog and API for discovering publicly available MCP servers, with participation from Anthropic, GitHub, PulseMCP, and Microsoft; the catalog specification is open, which allows compatible sub-registries to be built, and in October 2025 the API was frozen at v0.1 [47]. Third-party catalogs and marketplaces exist alongside it.
So the claim that "discovery does not exist" is too broad today. Discovery exists, but it is catalog-based rather than site-based: an agent finds your server in a registry, not on your domain.
It becomes meaningful if you have a product with actions or data someone will want to automate: SaaS, an API service, a platform, a data source.
An important clarification about entering someone else's workflows. Suppose a site provides weather forecasts and its owner wants the source used in other people's agentic solutions. A technical interface is necessary here but not sufficient: nobody will discover your interface on their own. A developer chooses a source by documentation, reliability, price, and license terms, and finds it in specific places: MCP server catalogs, package managers, repositories, API aggregators, reviews and comparisons. So the work splits in two: the interface itself with its specification, and distribution. Distribution for an MCP server has a concrete address today: publication in the official MCP Registry and in relevant third-party catalogs [47], plus package managers and documentation. This is the one scenario in which the whole of Group 3 is not preparation for the future but the product itself.
NLWEB
The site stops being a document that has to be parsed and starts answering questions directly.
A Microsoft project presented at Build 2025. Its author is R.V. Guha, who was involved in creating RSS, RDF, and Schema.org.
A site stands up two endpoints. The first takes a natural-language question and returns a structured answer in schema.org terms. The second exposes the same functionality as an MCP server so agents can list tools and call them [25]. Under the hood is search over the site's own content with answer generation. Microsoft frames the ambition this way: NLWeb could play a role for the agentic web analogous to the role of HTML.
By deploying the open-source project and indexing your own content. Cloudflare offers a managed variant that crawls the site, indexes it, and stands up the endpoints, but in their documentation it is marked as public preview for experimentation, with production use directed to contacting them directly [26].
Experimental deployments. Named early participants: Shopify, Snowflake, O'Reilly, Tripadvisor, Eventbrite, Hearst.
Most meaningful for catalogs, large content libraries, and e-commerce, meaning wherever there is a lot of content and it is structured.
WEBMCP
The site tells the AI assistant "here is what I can do and what data that needs", instead of the assistant staring at the page and guessing.
The same idea as MCP but inside the browser and without a server component.
A page registers typed functions via navigator.modelContext; a declarative variant using HTML form markup also exists. A browser agent receives a list of what can be done and the exact parameters, instead of taking a screenshot and guessing where to click. Control is inverted: rather than the agent parsing the interface, the site declares its capabilities. The saving is substantial: a structured tool call consumes on the order of 20 to 100 tokens against more than 2,000 for a single screenshot [27].
Two paths.
Declarative, if the form already exists: attributes on the existing markup, from which the browser synthesizes a field schema.
<form toolname="book_consultation" tooldescription="Book a consultation">
<input name="full_name" toolparamdescription="First and last name">
<input name="phone" toolparamdescription="Contact phone number">
<input name="preferred_date" toolparamdescription="Preferred date, format YYYY-MM-DD">
</form>Imperative, when control over the logic is needed:
if (window.isSecureContext && navigator.modelContext) {
navigator.modelContext.registerTool({
name: "book_consultation",
description: "Book an initial consultation",
inputSchema: {
type: "object",
properties: {
full_name: { type: "string" },
phone: { type: "string" },
preferred_date: { type: "string" }
},
required: ["full_name", "phone"]
},
execute: async (args) => { /* booking logic */ }
});
}Implementation constraints: secure context only, top-level browsing context only. The interface surface changes between revisions: the provideContext and clearContext methods were removed in the March 2026 revision, leaving registerTool and unregisterTool; the attribute names of the declarative variant are given differently across sources because the draft is still being edited [44]. Writing code today is possible, but on the expectation of rewriting it.
Technically nothing prevents declaring a tool that collects information about health, financial circumstances, or other protected categories. It should not be done, and the reason is not convenience.
The agent is a separate party in the chain. What a person tells an agent enters its context window and may be transmitted to the operator of the AI system. For an organization this is an additional data transmission channel that did not previously exist.
Whether such a channel is permissible is not universal and depends on the industry, jurisdiction, contractual relationship with the model operator, the presence of a data processing agreement, enterprise plan configuration, and who in the specific arrangement acts as controller and who as processor. No general conclusion of "this is not allowed" or "this is allowed" follows from that, and drawing one in a document of this kind would be wrong.
The engineering principle holds regardless of the legal characterization: data minimization. An agent-facing tool collects the minimum fields sufficient for the action, meaning contact and time, and everything else is collected through your own channel after identity confirmation. For protected data categories, the permissibility of the channel is assessed separately and before launch.
Separately and without qualification: do not expose tools that read existing records, or the agent gains the ability to enumerate other people's data. This is a security question, not a compliance one.
Firm facts: the specification is being developed in a W3C Community Group, with editors from Google and Microsoft, announced on 10 February 2026, with a public origin trial in Chrome from version 149 and a dedicated audit in Lighthouse [21][27]. Vendor statements: Google named Expedia, Booking.com, Shopify, Credit Karma, TurboTax, Redfin, Etsy, Instacart, and Target among those experimenting, but that is an origin trial announcement, not confirmed production deployment. An independent assessment as of July 2026: the standard has everything except users, deployment on real sites is close to zero, and mainstream agents do not call these tools [28]. The first news from the consumer side came on 26 August 2026, when OpenAI reported WebMCP support in the ChatGPT desktop browser [29].
A bet on the coming years for anyone with transactional scenarios: purchase, reservation, booking, application submission. For everyone else it is premature.
AGENTS.JSON
Instructions covering not just "which buttons exist" but "in what order to press them to get something done".
An open specification from Wildcard AI describing API-to-agent interaction contracts on top of the OpenAPI standard. Current version 0.1.0 [23].
OpenAPI describes individual endpoints but does not describe that solving a practical task requires several calls in a particular order. An example from the specification's own documentation: the Gmail API has separate endpoints for searching threads, listing messages in a thread, and sending a base64-encoded reply, and the agent needs to understand their sequence. agents.json adds the notions of flows (call chains) and links (substituting the result of one call into a parameter of the next). Its principles: build on OpenAPI, optimize the schema for models rather than for humans, leave orchestration to the calling agent, require minimal changes to existing APIs [23].
A JSON file referencing an existing OpenAPI specification.
Agents specifically configured to work with this specification.
This specification is sometimes described online as an Anthropic standard. That is incorrect; the author is Wildcard AI.
84 requests for llms.txt out of more than 62,100 AI bot visits over 90 days — worse than an average page of the site
OTTERLY.AI · 90-DAY EXPERIMENT · [14]
GROUP 4
A separate category of files trying to solve one problem: telling an agent what a site can do and on what terms it can be engaged.
| Tool | Who reads it today | Channel | Who it applies to |
|---|---|---|---|
| ai.json (AI Manifest) | Nobody by default so far | Agentic | Watch list |
| agent-manifest.txt | Nobody by default so far | Agentic | Media, databases (legal angle) |
| ai-agent.json | Nobody by default so far | Agentic | Agent developers |
| ai-me.json, ai-catalog.json | Nobody by default so far | Agentic | Watch list |
The group's shared problem. robots.txt says where a robot may not go. sitemap.xml says which addresses exist. Neither says what the site can do or on what contract it can be engaged. Agents are left either parsing pages or guessing at interfaces. Hence the emergence of competing formats.
The shared state of play. This is a formative phase in which no format has been adopted by a standards body and none is read by mainstream agents by default. The authors of individual specifications acknowledge this directly: the ai-agent.json specification states that several competing formats exist, including the A2A protocol's agent-card.json, ERC-8004 registration files, and robots-trust.json, and that none has become a practical standard [30]. The authors of ai-me.json write just as plainly that no major AI agent reads their file by default [31].
AI.JSON (AI MANIFEST)
A business card for agents. The format is sensible, but so far nobody is asking for it.
A Community Draft at version 0.1: an attempt to give a site a single machine-readable business card for agents. It lives at the standard path /.well-known/ai.json. The .well-known directory is a long-established convention: addresses within it are reserved for service files, so an agent does not have to guess where to look and simply requests a fixed address [32].
The manifest itself describes what the organization is, which machine interfaces it has, and where they are located. All detailed interface description is delegated outward to a separate OpenAPI or JSON Schema specification that the manifest references: the author did not reinvent interface description.
The third component of the bundle addresses the question of whether the domain owner really did publish this. It uses a commonly accepted set of formats collectively known as JOSE, with public keys published in a separate file at /.well-known/jwks.json. It works like this: the organization signs the manifest with its private key, and anyone can take the public key from the published directory and verify the signature. There is also /.well-known/ai-crl.json, a revocation list: if a key is compromised, an entry is added and signatures made with that key cease to be considered valid.
A practical analogy: the manifest is a business card, the key directory is a signature specimen posted in plain view, and the revocation list is a notice that the old specimen is no longer valid.
Its claimed properties: discoverability through standard placement, interoperability through reliance on OpenAPI, MCP, and agents.json, and verifiability through the key directory.
A JSON file at the stated path. Validators and a ready-made continuous integration workflow exist.
Nobody by default. The registry is voluntary and the specification has not passed through IETF or W3C.
AGENT-MANIFEST.TXT
robots.txt answers only the question "where may a robot go". This file tries to answer three others: what may be done with my content (train a model, use it in answers, perform actions), by what means it is best to work with me (here is an interface address, use it instead of parsing pages), and on what terms (an access key is required for that).
The point is to have the rules not in the text of a terms-of-service page, which a machine does not read, but in a file a machine does read.
The legal argument advanced by the format's authors is that violating a condition published in writing and in machine-readable form is harder to explain away as accidental. Note that this is the authors' argument rather than settled practice: there are no court decisions today giving such a file independent weight, and no legal standard for machine-readable access policies has formed.
A format in the spirit of robots.txt, plain text, renamed from agents.txt in March 2026.
It declares permissions by usage type (training, retrieval-augmented generation, actions), a preferred interface, the address of an OpenAPI specification, the address of an MCP server, plus blocks for individual agents with authentication requirements [33].
Two arguments. The first is rational: when a site declares an MCP server or an API, a well-built agent is better off using them, since that is faster and more reliable than parsing pages. The second is legal: a published machine-readable policy materially strengthens a position in disputes over unauthorized access when it has been ignored [33]. The second argument is non-trivial and carries independent value for content rights holders.
Media, databases, publishers, meaning anyone for whom unauthorized content collection is a commercial problem.
AI-AGENT.JSON
A way for agents to find each other. It has almost nothing to do with a company website.
The reverse direction from all the preceding. This is a manifest of the agent itself rather than of a site: an agent publishes its identity, capabilities, and addresses at /.well-known/ai-agent.json so other agents can discover it [30]. The specification was published on 28 March 2026.
Alongside it exist ai-me.json (site identity) and /.well-known/ai-catalog.json, which lists a publisher's agentic resources: MCP servers, agent cards, skill sets, and ordinary HTTP interfaces.
Agent developers, not owners of ordinary websites.
a structured tool call consumes on the order of 20 to 100 tokens against more than 2,000 for a single screenshot
WEBMCP SPECIFICATION · [27]
GROUP 5
The layer answering the question "why should this data be believed".
| Tool | Who reads it today | Channel | Who it applies to |
|---|---|---|---|
| Fact metadata: source, date, version, status | Your internal loop | Operational | Regulated industries |
| Cryptographic hashes | Your internal loop | Operational | Where data tampering is a risk |
| Digital signatures over data | No external consumer yet | Agentic | Watch list |
| Reverse verification endpoint | No consumer yet | Agentic | Concept |
| C2PA, Content Credentials | Major platforms, regulators | Retrieval | Media, photography, generative services |
| Web Bot Auth | Cloudflare, Amazon, Akamai, OpenAI | Agentic | E-commerce, publishers |
FACT METADATA: SOURCE, DATE, VERSION, STATUS
Every fact carries a passport: where it came from, when it was checked, who confirmed it.
Four fields accompanying every fact in the registry.
Additional columns in the registry from Group 2. Technically trivial, organizationally a matter of discipline.
The internal loop. External systems do not request these fields.
In regulated industries this is not bureaucracy but a requirement: the ability to show where every public claim came from and who is accountable for keeping it current. Plus the basis for staleness detection.
CRYPTOGRAPHIC HASHES
A hash is a tamper seal: you can see the box was opened. A signature is a tamper seal bearing your stamp: you can see it was opened and that you were the one who closed it. Neither says anything about whether what is inside is true.
Two different mechanisms that are frequently confused.
A hash is a short string computed from content. Change a single character and the string becomes entirely different. It answers the question "has the content changed".
A signature is the output of a signature algorithm that takes a message and a private key as input and produces a value verifiable by anyone holding the corresponding public key. Verification answers two questions at once: whether the message has changed, and whether the signature corresponds to that specific key.
The common explanation that "a signature is a hash encrypted with a private key" describes the particular case of classic RSA and is incorrect as a general definition: modern algorithms such as Ed25519 work differently and perform no encryption of a hash at all. The practical meaning is the same; the internal mechanics differ.
Hashing with standard libraries. Signatures require key management: generation, storage, rotation, revocation. The formats are described in AI Manifest via JOSE and JWKS.
A signature proves origin and integrity, not truth. A signed false claim remains false; it is simply now known who signed it.
There is no external consumer for signed business data today. No AI crawler verifies a publisher's signature.
REVERSE VERIFICATION ENDPOINT
The concept is right: give the machine a way to ask you whether what it read somewhere is true. But so far nobody asks, and if they did, an answer from an interested party does not by itself create trust. The only version that works is the one where an independent party does the checking.
The idea from the source document: an AI system that has encountered a claim about a company somewhere queries the company's endpoint and receives an answer as to whether the claim matches reality.
Publishing facts on your own site does not correct outdated or distorted information about you that has already spread across aggregators, directories, and discussions. Reverse verification in theory closes exactly that gap: instead of you publishing and hoping to be read, the consumer comes to check before repeating.
There is no consumer. Three reasons: the system does not know the endpoint exists; it has no grounds for accepting an answer from an interested party; and this is an additional network round trip in a chain everyone is optimizing for speed. The second reason is fundamental: it is the same self-declaration defect that has historically kept self-declared signals from taking hold.
Google's ClaimReview schema and Fact Check Tools API. ClaimReview is a markup system with which publishers tag verified claims, developed through an open process involving the Duke Reporters' Lab, the fact-checking community, Google, Bing, and Jigsaw [34]. The API provides search over verified claims and an interface for managing the markup [35]. The markup is submitted to DataCommons.org, with the publisher first authorized through Search Console [34].
The precise status today: ClaimReview rich results were removed from Google Search in June 2025, in a batch alongside six other markup types [49]. So it is no longer a search visibility mechanism. Fact Check Explorer and the Fact Check Tools API continue to operate, meaning the instrument lives inside the specialized fact-checking ecosystem rather than in general search.
It should not be read as a visibility instrument. Its value here is different and architectural.
The fundamental difference from the reverse verification idea: there the claim is checked by a third party rather than by the subject of the claim. It is precisely the externality of the verifier that creates trust. This is the direction in which the source document's idea could be developed into something workable.
C2PA, CONTENT CREDENTIALS
A passport for a photograph: who shot it, what processed it, whether AI was involved. It has nothing to do with data about a company.
An industry standard for attesting the provenance of media files.
A signed manifest recording creation and edit history is attached to the file. Three stages: signing, embedding, verification, with verification requiring no network call back to the signer, since all necessary certificates travel inside the manifest [36]. Version 2.3 was released in January 2026.
Adobe, OpenAI, Google in Gemini, Search, and Chrome, Samsung in the Galaxy S25 line, Canon. Regulatory pressure is real: Article 50 of the European AI Act and California's SB 942 require machine-readable disclosure of generated content, and the standard supplies the cryptographic layer for that [36].
A tool without support for the standard can save an image while silently stripping the manifest container. The absence of a manifest does not prove forgery; it means only the absence of verifiable provenance [36].
Media, stock photography, newsrooms, generative services. Not applicable to business facts: the standard concerns images and video.
WEB BOT AUTH
Rather than you proving to the AI that you can be trusted, the AI proves to you that it is who it claims to be. A pass at the door, not a stamp on a document.
A mechanism by which a bot cryptographically proves its identity on every request.
Request signing per the HTTP Message Signatures standard (RFC 9421), an Ed25519 key, a Signature-Agent header, and a published directory of public keys. This replaces the spoofable user-agent string and brittle IP lists with provable identity [37]. In February 2026 Cloudflare, together with Amazon Bedrock AgentCore, introduced an open registry format in which each entry carries the agent's name, operator details, expected request rate, and keys [38]. The IETF has chartered a working group [37].
Sites behind Cloudflare can enable rules of the form "show product details only to verified bots" or "publish prices only to verified agents" [38].
As of 12 August 2026 the IETF datatracker lists nine active drafts on this subject, all nine individual submissions, none formally adopted by a working group [37].
The industry's direction of travel on cryptographic trust runs the opposite way from the sixth layer. The sixth layer supposes that you sign your data so that it will be believed. The industry is building a mechanism in which the agent's request is signed so that you can decide whom to admit. This is not a contradiction of the idea but a different vector of the same need, and it is the one with deployments and money behind it.
E-commerce, publishers, anyone being scraped heavily.
agentic traffic today is concentrated in three industries taking around 98 percent of volume: media, e-commerce, and travel
HUMAN SECURITY · [39]
The same set of tools produces different results in different industries. Below is the mapping of business type to a sensible scope of work.
The main channel today is retrieval. Agentic action for local services already exists, primarily inside Google: agentic booking has been rolled out for restaurants, events, and beauty and wellness, and an expansion into home services has been announced [7]. Denying that the channel exists would be wrong.
What is unknown is its scale and commercial contribution. In the industry breakdown of agentic traffic, services do not appear as a separate line [5][39], and appointment booking via a browser agent has not been publicly measured in any source.
What follows is a priority, not a denial: invest in retrieval and local search readiness considerably earlier than in your own interfaces, MCP, and manifests. And this strengthens the conclusion rather than weakening it: Google's agentic flow for local services runs not through your MCP server but through local search results and your business listing. The system contacts those already present there, meaning retrieval remains the entry condition for the agentic scenario as well.
What to do: server rendering, semantic structure, an open FAQ, LocalBusiness and Person markup, Google Business Profile, reviews, licensing registries, local mentions, consistent contact data everywhere, regular updating.
What not to do now: MCP, APIs, manifests, data signatures.
One of the categories where the agentic channel already has direct practical meaning, because the buyer works in a development environment with an agent. This explains why llms.txt is published by exactly these companies [2].
What to do: everything from the previous section plus llms.txt, llms-full.txt where documentation is substantial, OpenAPI, and an MCP server if the product has actions.
Both channels are active. E-commerce and media form the two largest categories of observed agentic traffic, and leadership between them has shifted from month to month [5][39]. This is also where the new payment protocols are aimed [3].
What to do: everything from the baseline set plus early attention to WebMCP and Web Bot Auth, accessibility tree quality, layout stability, and structured product data.
The main channel is retrieval, plus the specific task of controlling content collection.
What to do: the baseline set plus agent-manifest.txt for the legal position, C2PA when working with original images and video, and Web Bot Auth under heavy automated collection.
Retrieval only, weighted toward external anchors.
What to do: profiles in professional registries, publications, verifiable credentials, third-party mentions, Person markup with links to external profiles. Your own site is needed as the point those mentions point to, but authority is not created by it.
There is no settled definition of the term, and that is worth acknowledging directly. In the industry it is used chiefly as a marketing phrase. Other formulations are taking hold: Google speaks of agent-friendly sites and named the corresponding audit category Agentic Browsing [21][22]. Part of the industry uses the shorthand B2A, business-to-agent.
Even so, there is a substantive shift behind the term, and it can be stated precisely.
An ordinary website is designed for one consumer: a human with a browser. Everything else, from search robots to AI systems, is served as an afterthought, parsing what was intended for someone else.
| Audience | What it needs | How it is verified |
|---|---|---|
| Human | A clear interface, speed, convenience | Ordinary quality metrics |
| Reading system (retrieval) | Text in the source HTML, self-contained blocks, explicit facts, currency | A request without script execution |
| Acting system (agent) | Stable structure, a correct accessibility tree, declared capabilities | The Agentic Browsing audit |
From this follows a working definition:
A site designed for machine consumption is one whose content is available without script execution, structured into self-contained blocks, furnished with machine-readable labels on its facts, consistent with external corroborating sources, kept current, and, where transactional scenarios exist, declaring its capabilities explicitly.
What is deliberately excluded from that definition: the presence of any particular files or protocols. The set of formats is currently unstable, and building a strategy around a specific file means tying yourself to a specification that may not survive the next two years. The definition is built on properties rather than on tools, because the properties will hold whatever the outcome of the format wars.
A useful five-minute maturity check: request the homepage without script execution and see whether the site still makes sense. If it does, the foundation is there. If it does not, no root-level file will compensate.
The criteria are grouped by implementation priority. Every item is phrased so it can be verified.
LEVEL 1
The first three metrics are official Core Web Vitals thresholds. The fourth is not one of them and is given as an internal target.
/robots.txt. The generation method is irrelevant: a file on disk, an application route, a web server configuration, or a CDN handler are indistinguishable to a robot. Check the response, not the source.LEVEL 2
h1 through h3 tags and the hierarchy is unbroken.LEVEL 3
sameAs links to external profiles.@id, sameAs, identifiers, technical relationships): their absence from visible text is normal.+1 713 555 0100 and (713) 555-0100 describe the same phone number and are not a discrepancy. A different number, a different address, or different hours is a discrepancy.LEVEL 4
dateModified property in markup, the lastmod field in the sitemap, and the visible date on the page. Two typical problems: the content management system updates the date on any save, including a typo fix, which devalues the signal; or the date is updated deliberately without changing the text, which is a recognizable tactic and works against the site.LEVEL 5
Before working through this level, one question is worth answering: do agents come to you at all. Agentic traffic today is concentrated in three industries taking around 98 percent of volume: media, e-commerce, and travel [39]. Professional services, local services, and healthcare do not appear as separate lines in that data. If your business is not in the first three, most of this level is premature, and the right decision is to return to it in a quarter rather than implement it now.
The manifests from Group 4, signatures over published data, and reverse verification of claims are excluded not because the ideas are wrong but because they have no consumer today. The checklist is composed of items that produce an effect given the current state of the ecosystem. The positions in Group 4 and part of Group 5 are worth keeping under observation and reviewing quarterly: this is an area where the state of affairs changes quickly.
Evidence tiers. This field mixes documents of very different weight, and without a label they all carry the same visual status. Each source is assigned a tier:
No tier means true or false. The tier indicates what a claim rests on and how independent the verification was.
The A1 and A2 split matters: a normative standard and a vendor statement about its own product are different things, though both come from a first party.
General caveat for sources [4], [5], [6], [39], [40]: the data is collected on a single vendor's protection platform and reflects that vendor's customer base, which skews toward media, commerce, and travel.
navigator.modelContext with the registerTool and unregisterTool methods; the declarative variant via form attributes with schema synthesis; the secure context and top-level browsing context requirements; removal of the provideContext and clearContext methods in the March 2026 revision. https://github.com/webmachinelearning/webmcp/blob/main/declarative-api-explainer.md/.well-known/ai.json path, the pairing with OpenAPI and JSON Schema, JOSE and JWKS keys, the jwks.json and ai-crl.json files./.well-known/ai-agent.json; enumeration of competing formats (the A2A protocol's agent-card.json, ERC-8004 registration files, robots-trust.json) with an acknowledgment that no practical standard has emerged.