Summary
Buyers now ask AI engines what software costs before they ever visit a pricing page. When ChatGPT, Gemini, Perplexity, Claude or Copilot quote an old plan, a wrong currency or a price from a review site, you lose deals without knowing it. The fix is a pricing page that machines can read and quote: prices in server-rendered HTML, plans described in plain sentences, Product and Offer schema, a pricing FAQ, consistent third-party listings, and a recurring check of what each engine actually says about your price.
The short answer
To get AI engines to quote your prices correctly, put every price in plain server-rendered HTML, describe each plan in one self-contained sentence (plan name, price, billing period, currency, what is included), add Product and Offer structured data, answer pricing questions in an on-page FAQ, show a real “last updated” date, and align every third-party listing (G2, Capterra, comparison articles) with the same numbers. Then test pricing prompts in each engine every month.
Why AI Engines Get Your Pricing Wrong
“How much does X cost?”, “Is X cheaper than Y?” and “Does X have a free plan?” are among the most common commercial prompts in any software category. They come late in the buying journey, when the buyer is already building a shortlist. A wrong answer at that moment is expensive: a prospect who reads that you start at $299 per month when you actually start at $49 simply never reaches your site.
AI engines get pricing wrong for a handful of predictable reasons:
- The price is invisible to crawlers. Many pricing pages load plans with JavaScript, a currency switcher or a monthly/annual toggle. AI crawlers such as GPTBot, ClaudeBot and PerplexityBot generally do not execute JavaScript, so they see an empty table.
- The price is ambiguous. “$39” next to a toggle can mean per month, per user, or per month billed annually. A model has to guess, and it often guesses wrong.
- Older sources outrank your page. Review sites, comparison listicles and Reddit threads quoting your 2024 pricing keep being retrieved long after you changed plans.
- Training data is frozen. When an engine answers from memory instead of a live search, it repeats whatever was true at its training cutoff.
- Your page never states the obvious. If “free trial”, “free plan” or “custom pricing for enterprise” are only implied by button labels, the model has nothing to quote.
The good news: unlike rankings, pricing accuracy is mostly under your control. Each cause above has a concrete fix.
Make Prices Readable Without JavaScript
Start with the most basic test. Fetch your pricing page with JavaScript disabled, or run curl on the URL and search the raw HTML for your prices. If you cannot find “49” in the source, neither can most AI crawlers.
Fixes, in order of effort:
- Server-render or statically generate the pricing table. In Next.js, Nuxt or Astro this is the default; in a client-only React app it usually means moving the pricing data into the build.
- Render the default state in HTML. If you have a monthly/annual toggle, render both prices in the markup (for example “$49 per month, or $39 per month billed annually”) instead of swapping numbers with a script.
- Pick a canonical currency. Geo-based currency switching is fine for humans, but serve one default currency in the HTML and state it explicitly (USD, EUR).
- Do not block AI crawlers. Check robots.txt and your CDN or bot-protection settings so GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot and Bingbot can reach /pricing. Our AI crawler access guide covers the details.
Write Pricing in Extractable Sentences
AI engines do not quote tables well. They quote sentences. A grid of checkmarks is easy for a human to scan and hard for a model to turn into a correct answer. Add a short text layer that a model can lift verbatim.
Open the page with a one-paragraph pricing summary, for example: “Acme has three plans. Starter costs $49 per month for up to 3 users. Growth costs $149 per month for up to 10 users and adds API access. Enterprise has custom pricing. All plans include a 14-day free trial, and annual billing saves 20%.” That paragraph alone answers most pricing prompts.
Then, under each plan card, write one self-contained sentence that repeats the plan name, price, unit, billing period and the two or three features that matter most. Rules that help extraction:
- Always state the unit: per month, per user, per seat, per 1,000 credits.
- Spell out what “starting at” means and what drives the price up.
- Name what is free explicitly: free plan, free trial length, credit card required or not.
- Say “custom pricing” or “contact sales” in words for enterprise tiers, plus a typical starting point if you are comfortable sharing one.
- Use the same plan names everywhere: site, docs, invoices, review sites.
The quotability test
Copy any single sentence from your pricing page and paste it on its own. If someone reading only that sentence would know the plan, the price, the billing period and the currency, a model can quote it correctly. If not, rewrite it.
Add Structured Data and a Pricing FAQ
Structured data does not persuade a model to recommend you, but it removes ambiguity about facts. On a pricing page, mark up your product with SoftwareApplication or Product schema and each plan as an Offer with price, priceCurrency and, where relevant, a UnitPriceSpecification for the billing period. Keep the schema values identical to the visible prices: a mismatch is worse than no markup. Our structured data guide shows the full pattern.
Next, add a pricing FAQ to the same page. Each question should mirror a real prompt, and each answer should start with the direct answer in the first sentence. Good candidates:
- How much does [Product] cost?
- Does [Product] have a free plan or free trial?
- Is [Product] cheaper than [main competitor]?
- What is included in the [plan] plan?
- Do you offer discounts for annual billing, startups or nonprofits?
- How does pricing work for enterprise teams?
Finally, show a visible “Pricing last updated” date and change it only when prices or plans actually change. Engines that run live searches weigh freshness, and a dated page helps them prefer it over a two-year-old listicle. See our content freshness guide for how to refresh without gaming dates.
Fix the Third-Party Sources That Contradict You
Even a perfect pricing page loses if ten other pages disagree with it. When Perplexity or ChatGPT search answers a pricing prompt, they often cite review platforms, comparison articles and community threads alongside, or instead of, your site. If those sources show old numbers, the model either repeats them or hedges with a vague range.
Run a source cleanup after every pricing change:
- Update your profiles on G2, Capterra, GetApp, Product Hunt and any marketplace or integration directory that shows prices.
- Email the authors of comparison and “best tools” articles that rank or get cited for your category, with the new pricing and a link to the page.
- Update your own docs, help center, changelog and old blog posts that mention prices.
- Reply to Reddit or community threads that state outdated pricing, transparently and as the company.
- Check your Wikipedia or Wikidata entry if you have one.
The fastest way to find the culprits is to look at what the engines cite when they get your price wrong. That list of URLs is your to-do list. For persistent errors, our guide on fixing AI hallucinations about your brand walks through escalation options.
How to Monitor Pricing Accuracy in AI Answers
Pricing accuracy is not a one-time project. Answers drift as engines refresh their indexes, as competitors publish comparisons and as you change plans. Treat it as a metric.
Build a small pricing prompt set of 10 to 20 prompts: “how much does [brand] cost”, “[brand] pricing”, “[brand] free plan”, “[brand] vs [competitor] price”, “cheapest [category] tool”, and the same questions in every language you sell in. Run them across ChatGPT, Gemini, Perplexity, Claude, Copilot and Mistral, and log three things for each answer: whether the price is correct, outdated or invented; which sources were cited; and whether you appear at all on the “cheapest” and “best value” prompts.
Re-run the set monthly and within a week of any pricing change. Expect live-search engines like Perplexity and Copilot to pick up changes within days, and answers that rely on model memory to lag much longer. The gap between the two is the reason your third-party cleanup matters.
Track pricing prompts with Refine
Refine runs your prompts every day across ChatGPT, Gemini, Perplexity, Claude, Copilot and Mistral, flags inaccurate or negative mentions, and shows exactly which sources each engine cited. Add a “Pricing” tag to your pricing prompts and you get a running view of whether AI engines quote your current prices, and which pages to fix when they do not. Start with a free [AI visibility audit](/audit).
Your pricing page used to be a conversion page. In AI search, it is also a reference document. Write it so a machine can quote it in one sentence, keep every other source consistent with it, and check the answers every month. That is how you make sure the price a buyer hears from AI is the one you actually charge.
Short on time? Have an assistant summarise this page for you.

