Why ChatGPT can't find your prices and where they hide
One test page hid eight prices in eight places, and only the ones a customer could read came back from the five AI systems.
Co-Founder, Vyzz
Read your own page the way a customer reads it
Open your services page on your phone and read only the words printed on the screen. That's close to what a ChatGPT or Gemini answer is working from when it goes to your site for a customer.
Two rounds of real testing this year point at the same practical thing. A fact that exists only in your page's code, where no visitor ever sees it, has a poor chance of turning up in the answer. Your price is the usual casualty. So is the area you cover, and so is the answer to the question people ask you on the phone every day.
Eight prices on one page, in eight hiding places
Last October a team at searchVIU built one test page for a made-up product line. Seven products carrying eight prices, each price parked in a different spot on the page. One product got two prices on purpose, in two different hiding places, to see which one an assistant would pick up.
Some prices were typed into the visible page text where any visitor could read them. Some were written onto the screen by JavaScript. The rest went into structured data (a block of code in the page that labels facts for machines). Most of that code sits where no visitor sees it. Your website builder writes it for you and you never think about it again.
Then they asked five AI systems to list the products and the prices. ChatGPT, Claude, Gemini, Perplexity and Google AI Mode, five queries each.
Every price that came back was a price printed where a customer could read it.
The price stored only in that code block came back zero of five, and so did a code label written in by JavaScript. Two other code-label formats got tested twice over, once printed on the page and once tucked into a meta tag where no visitor sees it. Both were read when the price was printed and missed when it was hidden.
ChatGPT found 3 of the 8 prices, and all 3 of them were printed in visible text. Gemini did best at 4 of 8, and it was the only system that went to the page at the moment of the question and read the price JavaScript had written onto the screen. Perplexity found 1 of 8 and Google AI Mode found 2 of 8. Both of them returned that same JavaScript-written price too, out of a stored copy of the page they had made earlier, the way index-based systems work.
Claude found 0 of 8 prices, and it read all 7 product names and descriptions correctly. That result is the one I keep coming back to. A system read every product name on that page and couldn't tell you what a single one cost, because the names were printed on screen while the prices sat in code nobody reads.
searchVIU is careful about the edge of what they showed, and I want to carry that carefully too. Their tests cover the moment an assistant fetches your page live, right when somebody asks. The code labels may still be doing work earlier, while a search engine reads and stores a copy of your page, and that goes double for systems built on top of a search index.
What happened when 1,885 real pages added the code labels
Ahrefs came at the same question from the field. They found 1,885 pages that added the code labels between August 2025 and March 2026. They matched each one against 3 comparison pages from other websites with similar past citation levels (4,000 comparison pages in all), then compared the 30 days before the change against the 30 days after, across Google AI Overviews, Google AI Mode and ChatGPT.
The number of times AI answers pointed at those pages barely moved. Across the three places they measured, the readings came in at +2.4% on Google AI Mode, +2.2% on ChatGPT, and -4.6% on Google AI Overviews. The authors call the first two close enough to zero that they don't count. They read the third as small but real against the matched pages, and they say plainly that they cannot pin that dip on the code labels themselves. Both groups of pages were already sliding before anything changed.
Ahrefs also ran a first pass over 6 million web addresses. Pages that AI cites were almost 3 times more likely to carry the code labels, and 53% of AI-cited pages have it. Their own reading of that number is worth quoting back to anybody who waves it at you. Businesses that bother with code labels also bother with everything else on the page, and the everything else is what carries them.
So if somebody is selling you code labels as the fix, the Ahrefs number is the one to ask them about.
What neither study says
Neither team says the code labels are dead, and I'm not going to say it either.
Ahrefs is direct about the edge of their sample (every page they tracked was already heavily cited before the change, with more than 100 appearances in Google AI Overviews). Their result speaks to pages that AI already points at plenty, and it shows that adding code labels will not push one of those higher. It says nothing about a page nobody is seeing yet, where the labels may still help it get read and stored in the first place. Nobody has measured that one cleanly yet.
Ahrefs also lists live reasons to keep the code: the extra detail Google shows under a normal search result, voice assistants, and the databases search engines keep about who your business is.
Don't rip anything out. If your web person put code labels in, leave them there. What these two studies support together is narrow and it's enough to act on. A fact that exists only in the code, and nowhere a customer could read it, does not make it into the answer.
The five-minute check
Open your own site on a phone. Read only what your eyes can see on the screen, and look for four things: your price or a price range written out as a sentence, the area you cover named in plain words, your opening hours, and the answer to the question customers ask you on the phone every week.
If any of those exists only in a plugin settings box or a theme option, write it into the page as a sentence a person could read. A dental office can put "A same-day crown runs $950 to $1,400 depending on the material" on the services page in a few minutes. An HVAC company can put its $89 diagnostic fee and the metro area it covers into the first paragraph of the contact page in about the same. A medspa can price its most-booked treatments in a short paragraph instead of a downloadable menu.
Most owners never chose to hide any of this. A price went into a booking plugin because that's where the plugin asked for it. A service area went into a theme setting because the setup wizard had a box for it. The website builder took those entries and wrote them into the code for machines, and the visible page kept the photo and the headline about caring service. Nobody decided that.
It costs a few minutes per page and it doesn't need a developer.