How AI engines resolve conflicting pricing across your website
You raised your base subscription price from $49 to $99 per month six months ago. Your main pricing page reflects the change, your billing system is updated, and your sales team quotes the new rate. Yet when a prospective customer asks ChatGPT or Perplexity how much your product costs, the engine responds that plans start at $49 per month.
When you investigate, you discover the source: an unlisted campaign landing page from 2023, a forgotten product update on your blog, or a feature comparison page that was never updated.
Large language models do not evaluate web pages the way human readers do. They do not know that your current main pricing page carries more authority than a two-year-old blog post unless their retrieval architecture explicitly tells them so. When multiple pages on your domain offer competing facts, search-augmented engines retrieve fragments from several URLs and attempt to merge them into a single answer. Understanding how retrieval-augmented generation models handle these contradictions is the only way to correct the outputs.
How retrieval models handle contradictory URLs on one domain
When a user submits a prompt like "How much does Brand X cost?", search-enabled AI engines trigger a multi-step retrieval pipeline. First, an answer crawler or search API fetches candidate documents from the web. Next, a retrieval model breaks those documents into text chunks, ranks them by relevance to the user prompt, and feeds the top candidate chunks into the model context window. Finally, the model synthesizes those chunks into a prose response.
If your domain contains two pages with different numbers, the retrieval step frequently pulls chunks from both pages. A chunk from your live pricing page might say that the Starter tier costs $99 per month. A chunk from an old promo page might say the Starter tier costs $49 per month.
Generative models lack an inherent sense of recency or canonical hierarchy. Unless the retrieved chunk explicitly contains temporal context like a publication date, or the engine prompt forces a preference for newer pages, the model treats both figures as candidate facts.
Depending on how the text fragments are processed, the model usually responds in one of three ways:
- It selects the older price because the legacy page has stronger internal link signals or clearer surrounding text matching the query.
- It selects the newer price on one run, then switches to the older price on the next run.
- It combines the figures, generating a hallucinated statement such as "Plans range from $49 to $99 per month for the base tier."
Because these models are probabilistic, testing a prompt once in a web browser tells you very little. A prompt executed at 9:00 AM might retrieve your current pricing page and return $99. The same prompt executed at 9:05 AM might retrieve the legacy landing page and return $49.
Diagnosing pricing drift with systematic testing
To diagnose whether conflicting internal pages are causing citation errors, you need to map every page on your domain that references pricing numbers.
Traditional site crawlers and search tools like Screaming Frog or Ahrefs are genuinely better at this initial audit step than any AI monitoring tool. A standard crawler can scan your site directory, extract every instance of a dollar sign or numerical pattern, and output a list of legacy pages containing stale numbers. Standing does not perform deep site crawling for content audits; traditional SEO software remains the right tool for finding forgotten pages.
Once you identify candidate URLs containing old figures, you must evaluate how AI engines weigh those pages against your actual pricing page. This requires structured prompt execution rather than single search queries.
Single-prompt testing tools, including platforms like Peec AI or Profound, run a query once and report a single pass or fail output. If an engine returns the correct $99 price on that single run, those platforms record your brand as correctly cited. They miss the hidden variance caused by conflicting index chunks.
To get an accurate measurement, run a fixed prompt basket repeatedly across all major search-enabled engines: ChatGPT, Perplexity, Gemini, Claude, and Google AI Overviews.
In Standing, we execute each question five times per engine per scan. We then apply a Wilson score interval to express the engine's reliability as a range. If an engine returns your correct current price in three out of five test runs, its reliability score is 60, plus or minus 38 on a 95% confidence interval. A wide confidence interval alerts you that retrieval layers are pulling conflicting data fragments behind the scenes, even if the model got the answer right on your first manual test.
Caching layers, index latency, and crawler configuration
Once you locate legacy pages with stale pricing, the obvious fix is to edit them, delete them, or set up 301 redirects to your primary pricing URL. However, removing the source text from your server does not instantly update AI engine responses.
AI engines rely on intermediate caching layers. Search APIs like Bing, Google, or custom web indices store cached text extracts of your pages. Even after you delete a page, its text fragment may persist in external search caches for days or weeks. Until those search caches refresh, answer engines will continue to read the old prices.
A common mistake founders make during this cleanup phase is blocking web crawlers via robots.txt. Blocking crawlers often worsens pricing hallucinations because teams confuse training crawlers with answer crawlers.
Training crawlers gather data to train baseline language models. Answer crawlers fetch live web data to answer a specific search query in real time.
The distinction matters:
- GPTBot, ClaudeBot, and Google-Extended are training crawlers. Blocking them prevents model creators from using your site in future model training, but it does not stop real-time retrieval engines from looking at your site today.
- ChatGPT-User, Claude-SearchBot, OAI-SearchBot, and Perplexity-User are answer crawlers. These bots execute live queries on behalf of users.
In our scan of 33,670 domains with readable robots.txt files out of a 54,082 domain panel, 5,497 domains block at least one AI agent. However, 2,576 domains block at least one answer crawler, while 5,080 block the training crawler GPTBot. In a separate census of 4,226 active Y Combinator companies, 3,755 had readable robots.txt files, and 253 blocked at least one AI crawler.
If you block answer crawlers like ChatGPT-User or Perplexity-User to keep engines off your site, those engines cannot fetch your updated /pricing page. When forced to answer a user prompt about your business without live access to your current page, the engine falls back on stale third-party review sites, cached snippets, or historical training data. Blocking answer crawlers guarantees that stale pricing will persist far longer than necessary.
Resolving contradictions and what not to buy
Fixing pricing contradictions across AI engines requires methodical cleanup and realistic timelines:
- Audit your domain for legacy pricing references using a site crawler, and either update, delete, or 301-redirect those URLs to your active pricing page.
- Ensure your active pricing page includes clear header text and structured context stating that the listed prices represent current, active tiers.
- Keep answer crawlers like ChatGPT-User, Perplexity-User, and Claude-SearchBot unblocked so retrieval engines can fetch updated pages immediately.
- Monitor engine outputs across multiple runs over several weeks until caching layers flush out old index chunks.
Do not buy tools or plugins that claim to solve AI search accuracy using schema markup or llms.txt files. There is no empirical evidence that adding JSON-LD schema or an llms.txt file causes retrieval models to prefer one URL over another or resolve internal pricing conflicts.
Similarly, do not pay agencies that promise guaranteed pricing accuracy in AI responses. Generative engines are non-deterministic systems. No third party can guarantee that a specific prompt will return a specific pricing number on every run.
If you need to monitor pricing citation accuracy across multiple engines with statistically valid error bounds, Standing offers plans starting at Track for $100 per month across 3 domains, Optimize for $300 per month across 5 domains with custom prompt baskets, and Agency for $500 per month covering 50 domains with automated monthly rescans.
See where you actually stand
Run a free check on your domain. Five AI surfaces, the real buying questions, about a minute. No signup.
Run a free check