TL;DR
- We tested four assistants (ChatGPT, Perplexity, Claude Pro on Sonnet 5.5, Gemini Pro on 3.6 Flash) and three test pages on botpresso.com.
- The thee test pages comprise of an HTML text with different facts in JSON-LD, a blank body with a 96-word JSON-LD article, and JSON-LD plus Microdata with no visible content.
- None of the 12 responses returned a schema-only fact. Ten reported no answer on the page and two answered from outside it.
- Put facts you want cited into visible text and keep schema valid. The result is directional, from three pages and one prompt each.
Why we ran this test
The idea for this test came from Mark Williams-Cook’s LinkedIn post. He used a fictional company, DUCKYEA t-shirts, and placed its address only in made-up JSON-LD, with nothing in the visible text. When he asked ChatGPT and Perplexity for the address, both returned it. He read this as a sign that AI systems treat schema as plain text and not as structured data, and he added that schema is still worth doing.
The post started a wide debate. Some readers said the test had no control group. Others said the fetcher, the tool an AI uses to read a web page, may have stripped the markup, or that the fetch method varies by vendor. That left an open question for site owners: when an assistant opens a URL, does it read the schema on the page?
We ran our own small version some time back, changing what the visible HTML held and what the schema held in each test. We found that no assistant returned a fact that existed only in schema.
Rick Ramos then published a controlled version of Mark’s test. He built pages for fictional companies, with one fact per page and five versions of each page. The run covered six models and 21,600 trials, then 1,644 live fetches through each vendor’s own web tool, then 90 manual checks in the ChatGPT, Claude and Gemini apps. He also supplied the JSON-LD to models directly, to separate what a model does with schema from whether the fetcher delivers it.
His results split by layer. When the JSON-LD was supplied directly, models answered schema-only facts 76% to 100% of the time, and adding schema lifted citations from 70% to 95%, the same lift as adding the fact as a plain sentence. When the models fetched the page themselves, Claude’s fetch and GPT-5.5’s web search returned the schema-only fact 0 times in 100 tries each. Gemini’s URL context returned it 92% of the time on Flash and 100% on Pro. In the apps, ChatGPT and Claude.ai each answered 0 of 10, and Mark’s ChatGPT result did not reproduce for him.
Those results matched what we had seen on our pages, and they gave us the reason to publish our work as well. Ours is narrower: three pages, four assistants and one prompt each. We share it as a field check from Botpresso that points the same way as his controlled run.
How we ran the tests
We tested one question on four AI assistants and three page designs: when an assistant opens a URL, does it return facts that exist only in the page’s schema? Each page lived on botpresso.com. We changed what the visible HTML held and what the schema held, then asked the same prompt on every assistant and saved each response as a screenshot.
Assistants and models
| Assistant | Model or Plan |
| ChatGPT | Web app, version label not captured |
| Perplexity | Web app, version label not captured |
| Claude Pro | Sonnet 5.5 |
| Gemini Pro | 3.6 Flash |
Three page designs
| Test | Page | Visible HTML | Schema | Question asked |
| 1 | /urban-heat-island.html | General explainer with a title and four sections | Slightly different content from the HTML, including author name and publish date | Author and study location |
| 2 | /velora-method.html | Blank body, title tag only | Made-up author, organization, LinkedIn links and an article body of 90+ words | Five stages and the researcher behind the method |
| 3 | /nexora-labs.html | No body content | JSON-LD and Microdata both present | Founder of the company on the page |
Prompts used, word for word
- Test 1: “Access the following page and identify the author and the study location.”
- Test 2: “Visit this page first, explain the five stages the author discusses, and identify the researcher behind the method.”
- Test 3: “Access this specific page and identify the founder of the company mentioned on it.”
Scale and limits: three pages, four assistants, one prompt per page. This is a directional check on how assistants read a URL. It is not a statistical study, and it does not test how search engines use schema.
Test 1: Facts in the HTML, different facts in the schema
None of the four assistants returned the author or the study location. The schema named Dr. Maya Raman as author and Chennai as the study location, and neither appeared in any answer. Each assistant described only the visible text and reported that the page names neither.
What the page showed: The visible text was a general explainer, a title and four sections covering what urban heat islands are, why urban areas become hotter, their effects and ways to reduce them. It held no author, date, place or figures.
What the schema held: An Article JSON-LD block in the page head, marked in the code as information available only in structured data. It carried facts that appear nowhere in the visible text.
| Schema Field | Value |
| Author | Dr. Maya Raman |
| Date published | 2026 – 09 – 23 |
| Research project | Project HeatMap |
| Study location | Chennai |
| Study period | 2022 to 2024 |
| Temperature difference observed | 4.7°C |
| Locations studied | 85 |
What each assistant said
- ChatGPT opened the page as “Understanding Urban Heat Islands” and reported the author and study location as not identified. It described the page as a general explanation and said neither item could be verified from the accessible content. It cited the botpresso page as its one source.
- Perplexity answered in 3 seconds with 1 source. It said the page names no author or specific study location and gives a general overview. It closed by asking what clue would show whether a page reports an actual study.
- Claude Pro (Sonnet 5.5) fetched the page and reported no byline, author name or credit. It listed the fetched content as a title and four sections: definition, causes, effects and mitigation. It added that an author tag or schema markup may exist in the raw HTML, but the fetch returned only extracted text. It suggested viewing page source for a meta author tag or a JSON-LD author field.
- Gemini Pro (3.6 Flash) listed no author and no specific study or location, and described the article as a general background on urban heat islands.
Reading the four answers together
All four assistants read the visible text. None reported the schema. Claude’s reply states the likely cause: the fetch returned extracted text, and the raw HTML may hold markup the tool did not pass on. This matches Rick Ramos’s finding that none of 280 pages fetched through Anthropic’s tool still held its JSON-LD.
Test 2: Blank page, content only in the schema
With an empty body and every detail held in the schema, no assistant returned a stage, an author or a researcher from the markup. Two assistants declined and asked for pasted text, Claude reported an empty page, and Gemini supplied outside information after saying the page was empty.
The page body held only an Article JSON-LD block: an author profile and a 96-word article body. A schema-sourced answer was five stages, observation to synthesis, credited to Dr. Anika Rao.
What the schema held. The visible page was blank. Every fact below existed only in the JSON-LD.
| Schema Field | Value |
| Author | Dr. Anika Rao, researcher, credited with developing the method in 2019 |
| Organisation | Velora Research Institute |
| Profile links | A made-up LinkedIn profile (linkedin.com/in/anika-rao) and a Google Scholar link |
| Date published | 2026-09-27 |
| Article Body | Describes the Velora Method as a fictional framework with five stages: observation, classification, correlation, validation and synthesis. Gives a first documented application in Chennai in 2021. States that the method is not a real scientific methodology. |
What each assistant said
- ChatGPT visited “The History of the Velora Method” and said the page is accessible but its content was not available to extract. It declined to name the stages or the researcher, asked for the page text or a screenshot, and listed what it would then provide: the five stages, the researcher and supporting passages.
- Perplexity answered in 3 seconds and said the link was inaccessible from its side. It declined to explain the stages or name the researcher, citing the risk of an invented answer, and asked for pasted text or a screenshot.
- Claude Pro (Sonnet 5.5) fetched the page and returned only the title and a viewport meta tag. It reported no body text, headings, byline or credits, named the stages and the researcher as not available, and offered a web search while noting that outside sources would not show what this author wrote.
- Gemini Pro (3.6 Flash) said it accessed the page and found it empty, with no readable text. It then gave “general context” about a framework with the same name: five stages (Clarity, Confidence, Discipline, Purpose and Results) and a named creator organization.
Reading the four answers together
This test removes the visible text, so an answer has to come from the schema or from outside the page. No assistant reported schema content. Gemini’s stages (Clarity, Confidence, Discipline, Purpose, Results) and its creator (Corinthian Collective LLC) match nothing in the planted schema, which listed observation, classification, correlation, validation and synthesis, credited to Dr. Anika Rao. Gemini had said the page was empty, so its answer came from outside knowledge of the name. A fluent answer does not show that the schema was read.
Test 3: JSON-LD and Microdata, no visible content
No assistant read a founder name from the page markup. The JSON-LD named Arjun Mehta and the Microdata named Rahul Nair, and neither name appeared in any answer. ChatGPT and Gemini reported that the page held no founder name. Claude and Perplexity could not scrape the names on the page either, but both went to the open web and shared what they found there.
The page had no body content. It carried an Organization block in JSON-LD and another in Microdata, so this test checks two schema syntaxes against one question. The HTML title and both schema blocks name the company Quantum Potato Solutions, while the URL slug reads nexora-labs.
What the schema held. The two syntaxes describe the same company with different values.
| Schema Field | JSON-LD | Microdata |
| Company name | Quantum Potato Solutions | Quantum Potato Solutions |
| Founder | Arjun Mehta | Rahul Nair |
| Founding date | 2018-04-12 | 2023-09-27 |
| Location | Bengaluru, IN | Chennai, IN |
Both blocks describe the company as fictional and created for an SEO schema experiment. A schema-sourced answer was Arjun Mehta, Rahul Nair, or a note that the two sources disagree.
What each assistant said
- ChatGPT read the page title as Quantum Potato Solutions and reported that the accessible content has no readable details naming a founder. It declined to attribute the company to anyone without supporting evidence.
- Perplexity answered in 1 second with a named person, Abraham Baffoe, described as founder, CEO and CTO of Nexora Labs LLC. The answer carried a LinkedIn source label and a count of 10 sources. The name came from web retrieval, not from the page markup. The company it named, Nexora Labs LLC, matches the URL slug and not the schema, which names Quantum Potato Solutions.
- Claude Pro (Sonnet 5.5) found only the title on the page and then searched the web. The search returned other companies (Nexus Pharmaceuticals, Nexus Labs, Nexa Labs and Nexus Medical Labs). None matched Nexora Labs LLC or the name Perplexity gave, so Claude declined to name a founder. Its query used Nexora Labs LLC, a name from the URL and not from the schema.
- Gemini Pro (3.6 Flash) said it accessed the page and that it contains structural HTML markup for an organization profile. It reported that the page does not display or mention a founder’s name.
Reading the four answers together
Two assistants moved from the page to the web when the page gave them nothing. One returned a name with a LinkedIn label and the other returned unrelated companies. Both answers rest on the name Nexora Labs LLC, which comes from the URL slug, while the markup names Quantum Potato Solutions. Neither route could have returned Arjun Mehta or Rahul Nair. A name next to a LinkedIn chip is a retrieval result, not proof that the schema was parsed. Gemini was the only assistant to describe markup it found on the page, and it returned no founder name.
Note on the Claude run: the recorded answer is the fourth response in one chat, given after the Perplexity result was shared as a screenshot. A clean single-prompt rerun would remove this variable.
Outcome: 3 approaches, 4 assistants
Across 3 page designs and 4 assistants (12 responses), no assistant returned a fact that existed only in the page’s schema. Two responses did supply information from outside the page: Gemini in Test 2 and Perplexity in Test 3.
| Approach | ChatGPT | Perplexity | Claude Pro (Sonnet 5.5) | Gemini Pro (3.6 Flash) |
| 1. Visible HTML plus different facts in schema (expected: Dr. Maya Raman, Chennai) | No author or location; described the page text | No author or location; asked a follow-up | No author or location; said schema may exist in raw HTML but the fetch returned only text | No author or location |
| 2. Blank body, schema only (expected: observation, classification, correlation, validation, synthesis; Dr. Anika Rao) | Content not extractable; asked for text | Reported the link as inaccessible; asked for text | Title and viewport tag only; no stages or researcher | Said the page was empty, then gave outside “general context” |
| 3. JSON-LD and Microdata, no visible content (expected: Arjun Mehta or Rahul Nair) | Title only; no founder named; declined to attribute | Named a founder with a LinkedIn label, from the web | Title only; web search found no match | Described organization markup; no founder named |
Models and tool paths
Claude Pro ran on Sonnet 5.5 and Gemini Pro on 3.6 Flash. ChatGPT and Perplexity ran in their web apps, and their version labels were not disclosed as they were on free plans. Each assistant opened pages through its own fetch or search tool, so these results reflect the tool path as well as the model.
Rick Ramos reported the same split in his controlled test, the fetchers from OpenAI and Anthropic did not pass JSON-LD to the model, while Gemini’s URL context did. Our three pages did not show Gemini returning a schema-only fact, so we treat that part of his result as untested on our pages.
Key takeaway
In our tests, an assistant that opened a URL answered from the visible page text or from the open web. It did not return facts held only in JSON-LD or Microdata. If a fact should appear in an AI answer, write it in visible HTML text. Schema remains worth keeping, but these results give no basis for relying on it alone.
What to do with this
- Put every fact an assistant should cite into visible text on the page. Our guide on how brands get mentioned by ChatGPT and Perplexity explains why: a crawler can fetch a page without running its JavaScript, so key facts belong in the initial HTML.
- Keep schema valid and identical to the visible text. Rick Ramos found Gemini Pro took a stale FAQPage answer over the visible text in 8 of 20 trials.
- Check the source label on an AI answer. A name next to a LinkedIn or web label is a retrieval result and not evidence that the schema was parsed.
These tests do not measure rich results or how search engines use structured data. Mark Williams-Cook and Rick Ramos both advise keeping schema for those reasons.
Zero of twelve: no assistant returned a fact that lived only in schema.
Each question had a schema-only answer, and none of the 12 responses returned any of them. Ten responses said the page held no answer. Two went outside the page, Gemini in Test 2 and Perplexity in Test 3, and both answers read as complete while neither came from the markup. The evidence points to the fetch layer and not the model, which rests on Claude’s own statement and Rick Ramos’s 0 of 280 figure. We did not test the fetch layer for ChatGPT, Perplexity or Gemini. Visible text is the place to put a fact you want in an AI answer, since it was the only content any assistant reported in our tests. This is a directional result from three pages with one prompt each.


