Facts placed only in schema came back in zero of 12 AI answers
Summary
Four AI assistants returned no fact that lived only in a page's schema markup across Botpresso's 12 test answers, because their fetch tools hand the model extracted text with the markup stripped out.
Put any fact you need an assistant to repeat into visible body copy, and keep the schema saying the same thing.
Facts placed only in schema markup came back in none of the 12 answers that ChatGPT, Perplexity, Claude and Gemini gave about three test pages, according to a test by Botpresso, an SEO consultancy. Each page carried an author, researcher or founder name in JSON-LD or Microdata with no equivalent in the visible body copy.
Akarsh K, the Botpresso SEO who ran the tests, built the pages to re-check a LinkedIn post by Mark Williams-Cook, founder of the SEO agency Candour. Per Botpresso’s account, Williams-Cook put a company address only in JSON-LD, asked ChatGPT and Perplexity for it, and both returned the address, which looked like proof that assistants read markup as ordinary text. The Botpresso pages pushed the same idea harder. One had visible text with the author and location only in JSON-LD, one had a blank body with a 96-word JSON-LD article, and one had no visible content at all, with a JSON-LD block and a Microdata block that named different founders.
Ten of the twelve answers reported that the page did not name the author, the researcher or the founder. The likelier explanation sits in the fetch layer rather than in the models. Asked why it had come up empty, Claude told the testers that “the fetch returned only extracted text” and that “an author tag or schema markup may exist in the raw HTML” the tool never passed on. Botpresso’s piece also cites Rick Ramos, who ran a larger controlled version of the test with 1,644 live fetches, finding that none of 280 pages pulled through Anthropic’s fetch tool still carried their JSON-LD. Markup that is stripped before the model sees the page cannot put a fact into an answer.
Two answers did not come back empty, and those are the ones to worry about. On the page whose only content was JSON-LD and Microdata naming a founder, Perplexity returned a different name, Abraham Baffoe, with a LinkedIn source label, because it had answered from the web instead of from the page. Gemini did something comparable on the blank page with the JSON-LD article, saying the page was empty and then offering general context on its five stages from outside the page. An answer that names a person is not evidence that anything on the page was parsed.
What the test exercises is the live path, where a user hands over a URL and the assistant fetches it on the spot. Botpresso’s piece does not test the other route, where an assistant answers from a search index whose crawler did read the HTML, so a schema-only fact may still reach an answer secondhand through Google or Bing. For anything a practitioner can check and control, the live fetch is the path that matters, and it is the one dropping the markup.
What to do
- Put the fact in text a reader can see. Author names, locations, founders, prices and dates belong in the body copy if you need an assistant to repeat them, with the schema saying the same thing.
- Keep the schema regardless. It still earns search features, which is a separate job from citation. Adding schema did not raise AI citations in an Ahrefs study either, so expect nothing more from it on the assistant side.
- Read the source labels on any answer you are using as evidence. A LinkedIn or web badge means the assistant retrieved from elsewhere, not that it parsed your markup.
- Re-run somebody else’s demo on your own page before acting on it. Advice about what makes content visible to assistants has a weak record under testing, and llms.txt turned out to have no measurable link to AI citations across 300,000 domains.