Guides

Can AI agents read
your pricing page?

For SaaS and software companies. If your prices only appear after JavaScript runs, many AI crawlers get an empty table. How to check, and how to fix it.

Why pricing pages are at risk

A buyer may ask an AI assistant what your product costs. To answer from your own site, the tool has to read your pricing page.

Many SaaS pricing pages are built as small JavaScript apps. There is a monthly and annual toggle, a currency switcher, a seat slider, and plan cards filled in from an API after the page loads. A person sees the prices. A crawler that does not run JavaScript may get an empty shell, a "loading" message, or plan names with no numbers.

What is known about AI crawlers and JavaScript

In December 2024, Vercel published an analysis of AI crawler traffic on its network. It found that the main AI crawlers it studied, including OpenAI's and Anthropic's, fetched JavaScript files but did not run them. Google's crawler is different. Google's documentation says it renders pages with an up-to-date version of Chromium, the engine behind Chrome.

Crawlers change, and some AI tools now drive a full web browser. But you cannot know which visitor runs scripts and which does not. Prices that are in the HTML work for both.

How to check your pricing page

1. View the source

Open your pricing page. Right-click and choose View page source. Do not use Inspect, which shows the page after scripts have run. Search the source for the price of one of your plans. If it is not there, a crawler that does not run JavaScript cannot see it.

2. Turn JavaScript off

Turn off JavaScript for your site in your browser's settings, then reload the pricing page. What you see is close to what a crawler that does not run scripts receives.

3. Fetch it as a script would

A developer can fetch the page with a command-line tool and search the result.

curl -s https://yourproduct.com/pricing | grep -i "per month"

No output means the words are not in the HTML your server sends.

4. Use a free check

Or try Kavel's free AI pricing check on your pricing page.

Common causes of hidden prices

  • Plan cards filled from an API after the page loads.
  • A monthly and annual toggle where only one set of prices, or neither, is in the HTML.
  • Prices chosen by location in the browser. A crawler may get no currency, or a default one with no label.
  • Calculators and sliders with no starting values in the HTML.
  • Prices in images or in a downloadable PDF.
  • Pricing behind a sign-up or a login.
  • "Contact sales" and nothing else. That can be the right choice, but then say how pricing works, for example "priced per seat, billed annually, from [price]".

How to fix it

  • Render prices on the server. Most modern web frameworks can render a page on the server, or build it ahead of time as static HTML. The page can still use JavaScript for toggles once it has loaded.
  • Put every set of prices in the HTML. Include monthly and annual prices, and use the toggle only to show or hide them.
  • Write the key facts as text. Plan name, price, currency, billing period, what is included, limits such as seats or usage, and whether VAT or sales tax is included.
  • Label the currency. If prices change by country, decide what a visitor with no known location gets, and always show which currency it is.
  • Keep one pricing page at a stable address, such as /pricing. Link to it from your homepage and include it in your sitemap.
  • Do not block the crawlers you want. Check robots.txt and any bot settings at your host or CDN. See where blocks hide.

Add structured data

schema.org has a standard way to state prices in your page's code. For software, a SoftwareApplication with an Offer for each plan is one option. We do not know which assistants read it, or how much weight they give it. It does state your prices in a format machines can read without guessing.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "name": "Your Product",
  "applicationCategory": "BusinessApplication",
  "offers": {
    "@type": "Offer",
    "name": "Team plan, billed monthly",
    "price": "[price]",
    "priceCurrency": "[currency code]"
  }
}
</script>

Keep it in step with the visible page. If the two disagree, nobody knows which to trust. For more, see Structured data for small businesses.

What this does not promise

Readable prices do not guarantee that an assistant will quote them, recommend you, or get them right. They remove one common reason a tool cannot answer the question at all. When your prices change, check that the HTML changes too.

Check the rest of your site

SiteCheck scans your homepage for what AI agents are known to rely on: page source, robots.txt, llms.txt and sitemap. It checks whether your homepage text, headings, structured data and forms are readable without a browser. It does not test ChatGPT or any other assistant.

Written with AI. Facts about crawlers and JavaScript were checked against Vercel's published analysis and Google's documentation in October 2026.

Can a crawler see your prices? Check your pricing page, then scan your homepage for what else is in the way.

Start monthly monitoring

We scan your homepage every month and email you a report with what is new, fixed and still open. Cancel any time.

You will pay $39 a month. Price shown in your local currency.

Tell me when it's ready

We'll email you once, when this is available. No spam, and no sharing your address.