Pricing Page for AI Search: Stop AI Quoting Wrong Prices
A pricing page for AI search has one job: give ChatGPT, Perplexity, Claude and Google's AI one unambiguous, crawlable statement of what each plan costs, so they stop quoting old or invented prices. That means every price written in plain HTML, identical everywhere it appears on your site and your listings, on a page the AI crawlers can actually fetch.
Price is a fact buyers check before they decide, and a wrong one costs you directly. Here is why AI gets it wrong, what the research says, and the checklist to fix it.
Why AI gets your pricing wrong
| Cause | What happens | Fix |
|---|---|---|
| The model learned your old price | Answers given without a web search come from training data frozen at a cutoff: April 30, 2026 for OpenAI's flagship GPT-6 Astra and GPT-6.1 Sol, April 20, 2026 for the Instant model ChatGPT currently uses, June 2026 for current Claude models (as of October 2026). A price you changed after that is unknown to them. | Nothing you do reaches this before the next model ships. Fix the web so that model learns the right price. |
| Your site disagrees with itself | The pricing table says $49, the FAQ says $59, a 2024 blog post says $39. An AI system that reads more than one has no way to tell which is current. | Find and fix every copy in one release. |
| Prices load with JavaScript | Many AI crawlers do not run JavaScript, so a price injected by a script or a toggle may not exist for them. | Put prices in the HTML the server sends. |
| Listings carry old prices | Review sites, marketplaces and other people's comparison posts still show last year's plans, and AI can retrieve them in place of your page. | Update what you own; ask publishers to correct the rest. |
| Billing period or currency is ambiguous | "$41" (annual, per month) and "$49" (monthly) both appear with no label, and the model picks one. | Label every number with currency and billing period. |
| No public price | "Contact sales" with no number leaves nothing of yours to repeat, so any answer has to come from somewhere else. | Publish a "from" price or the pricing basis. |
| Crawlers are blocked from /pricing | A robots.txt rule or a firewall stops the search crawlers, so live answers fall back to other sources. | Allow the search crawlers and test the firewall. |
What the research says about price information
One controlled experiment tested price directly. In a 252,000-trial study across six LLMs, researchers at Sprinklr, which sells GEO tooling, put two matched product-review articles in front of each model and recorded which one it cited first (arXiv:2605.25517, May 2026). The articles differed in one factor at a time.
In all six models, the article that stated a price was more likely to be cited first: its odds were roughly 6 to more than 10,000 times higher, depending on the model. The authors call price a "gatekeeper," though their own table puts the effect below the threshold they set for that label in four of the six models. A recent date also beat a 2019 date in every model, but beat no date at all in only two or three.
Read it precisely. The articles were synthetic B2C reviews with fictional brands, each trial had two candidates already in the model's context, and the authors state "We never call a search engine." So once your page sits next to a competitor's in a model's context, the page that states its price is far more likely to be cited first; the study says nothing about getting retrieved in the first place, which is why the access steps below still come first.
The pricing page checklist
| Element | Do | Avoid |
|---|---|---|
| Plan prices | Plain text with currency and period: "$49 per month, billed monthly" | Prices in images, sliders or script-only widgets |
| Monthly vs annual | Both as labeled text: "$49/month billed monthly, or $490/year" | A discounted annual-per-month figure with no label |
| Currency | Say which currency the page shows, using the code (USD, EUR) | Silent switching by visitor location with no label on the page |
| What each plan includes | Limits as text: seats, usage, projects | Checkmark icons with no text behind them |
| Trial and refund terms | Length, and whether a card is required | Terms only in the checkout flow |
| Enterprise | A "from" price, or the basis: per seat, per usage, per module | "Contact sales" as the only information |
| Date | "Prices as of October 2026" next to the table | A page date you change without changing prices |
| URL | One canonical /pricing page; old pricing URLs redirect to it | Old pricing pages still live and indexable |
| FAQ | Plain questions and answers that repeat the same numbers | FAQPage markup added for a rich result Google retired in May 2026 |
| Structured data (optional) | Every price identical to the visible text | Schema prices that differ from the page |
On FAQ markup: Google stopped showing FAQ rich results on May 7, 2026 (Search Central updates). A pricing FAQ still helps readers; see FAQ page SEO for what changed.
Make sure AI crawlers can fetch your pricing page
Three checks, each a few minutes:
- robots.txt. Open
yourdomain.com/robots.txtand look for any rule that disallows/pricing, or that blocks OAI-SearchBot, PerplexityBot, Claude-SearchBot or Googlebot. OpenAI says sites that block OAI-SearchBot "will not be shown in ChatGPT search answers," though they can still appear as navigational links (OpenAI crawler docs). - The firewall. OpenAI's ChatGPT search help says to "confirm that the website host or content delivery network allows traffic from OpenAI's published searchbot IP addresses." Request the page as the crawler and read the status code; a 403, 429 or challenge page means something is blocking it.
- The HTML. Open the page, press Ctrl+U (Cmd+Option+U on a Mac) and search the source for your price. Vercel found ChatGPT and Claude crawlers fetch JavaScript files but "don't execute them" (Vercel crawler study). If the price is not in the source, ask your developer to render it on the server.
curl -s -o /dev/null -w "%{http_code}" -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36; compatible; OAI-SearchBot/1.4; +https://openai.com/searchbot" https://www.example.com/pricing
That command, run in a terminal, requests your pricing page with the user agent OpenAI publishes for OAI-SearchBot and prints the status code. On Windows, type curl.exe and replace /dev/null with NUL; copy the current string from developers.openai.com/api/docs/bots, since the version number changes. A 200 from your own computer is not proof, since your firewall may treat OpenAI's real IP addresses differently, but a 403, 429 or 503 is a clear warning.
Schema on pricing pages: parity, not a lever
Product or SoftwareApplication markup does not make AI quote you correctly. Google says "Structured data isn't required for generative AI search" (AI optimization guide), and an Ahrefs matched test of 1,885 pages found "no major uplift in citations on any platform."
If you use pricing markup for Google's rich results, the rule that matters is parity. Google's policies say structured data "must be a true representation of the page content" (structured data policies), and a schema price left over from last year is one more wrong copy. Our schema generator builds the JSON-LD and checks it against your visible prices.
Fix the copies of your price that live elsewhere
Your pricing page is one copy of your price among many. When you change a price, work through this list the same day:
- Your own site. Search Google for the old number on your domain, for example
site:example.com "$59", and fix blog posts, FAQs, comparison pages, docs and PDFs. - Listings you control. G2, Capterra, app marketplaces, Crunchbase and your partner directory entries.
- Other people's articles. "Best tools" lists and comparison posts that quote your old price. Email the author with the new price, the date it changed and a link.
- Your structured data and any llms.txt file. Both are easy to forget, and both are copies.
For the review cadence that catches what slips through, see how often to update content for AI. For the wider SaaS picture, see our guide to B2B GEO.
How to check what AI says about your price
Ask each platform the questions a buyer asks: "How much does [brand] cost?", "What does [brand]'s cheapest plan include?", "[brand] vs [competitor] pricing." Record the answer, the date and whether it cited sources. A cited answer came from a live search and should change once the crawler re-reads your fixed page; an uncited one may come from training data.
99Visibility's accuracy check automates the comparison: it checks AI answers against the prices and other brand facts you enter and flags wrong or outdated claims. When a wrong price will not go away, our guide to fixing AI hallucinations about your brand covers each platform's correction route.
Frequently asked questions
Why does ChatGPT show the wrong price for my product?
Usually for one of three reasons: it answered from training data older than your current price, it found an old price on your site or a third-party listing, or it could not read your pricing page at all. Check whether the answer cited sources; if it did, open them, because the wrong number is often sitting there.
How quickly do pricing changes show up in AI answers?
Live-search answers change after the platform's crawler re-fetches the page. For Google's AI features, Google says crawling can take "a few days to a few weeks." Answers from a model's training data change only when a newer model is released.
Should I use Product schema on my pricing page?
Only if you want it for Google's rich results, and only if every price in it matches the visible page. No test has shown that pricing markup improves AI answers, and Google says structured data is not required for its generative AI features.
Should I list competitor pricing on my site?
Only if you date it, link the source and keep it current. A stale competitor price makes your page a source of wrong facts about them, and no evidence shows comparison tables earn AI citations. If you cannot maintain it monthly, describe the pricing model instead of the number.
What are pricing page best practices for AI search?
Write every price in plain HTML with currency and billing period, keep one canonical pricing URL, make every copy of each price identical, publish at least a starting price for custom plans, and make sure the search crawlers and your firewall let AI reach the page. Then check the answers monthly.
Run a free 99Visibility audit to see whether ChatGPT and AI Overviews mention you and how many of your facts, prices included, they get wrong.
See what AI says about your brand
Your free audit asks ChatGPT and Google AI Overviews about your brand. Paid plans add Gemini, Perplexity and Claude, and show every answer that contradicts your facts.
Start for Free- ChatGPTMentioned, 2nd of 5 brands
- Google AI OverviewsNot mentioned
- PerplexityMentioned and cited as source [1]
- ClaudeSays $29/mo. Your pricing page says $49/mo.
Related Articles
B2B GEO for SaaS: Fix What AI Says About Your Pricing and Product
B2B GEO for SaaS is access and facts: let AI crawlers reach your pricing, integrations and docs pages, then make every price and feature claim agree everywhere.
ChatGPT Wrong Information About My Company? How to Fix It
There is no form that edits what ChatGPT says about you. Here is what works: find where the wrong fact came from, fix the source, and use each platform's report route.
How Often to Update Content for AI: A Fact-Driven Schedule
Update a page for AI when a fact on it changes, not on a calendar. A schedule by page type, what the freshness studies show, and why bumping dates backfires.


