Skip to main content
High priority Commerce

Pricing and AI Visibility: How Agents Compare Your Products

Recently updated
#pricing#promotions#schema-org#ai-visibility#shopify
Share

Why pricing matters more for AI than for humans

A human visitor compares 3 to 5 stores before buying. An AI agent like ChatGPT Shopping, Perplexity, or Google AI Mode compares hundreds of stores in seconds. Price is the first sorting criterion: if your price is unreadable or inconsistent, your product is eliminated before it is even evaluated on quality.

Since early 2026, AI shopping agents index prices in real time to build comparison tables. A product with properly structured pricing in schema.org appears in these comparisons. A product whose price is only rendered via JavaScript or embedded in an image is simply invisible.

How AI agents read your prices

AI agent price reading hierarchy in 3 levels: 1. Schema.org JSON-LD (most reliable), 2. Native HTML (usable but less reliable), 3. JavaScript only (invisible to AI crawlers)
Figure 1 - Price reading hierarchy: what AI agents see (and don't see)

AI crawlers follow a strict reading hierarchy to extract prices:

  1. Schema.org (Offer.price + priceCurrency): the most reliable source. AI agents read the JSON-LD in the page’s <head>. If the price is there with the currency, the product is immediately comparable.
  2. Native HTML: if schema.org is missing, agents look for the price in the HTML DOM (tags like <span>, <p> with classes such as .price, .product-price). Less reliable, but usable.
  3. JavaScript only: if the price only appears after JavaScript execution (dynamic widget, third-party app), most AI crawlers cannot see it. Your product drops out of the comparison.

The rule is straightforward: if it is not in schema.org or static HTML, it does not exist for AI agents.

The 5 pricing signals AI evaluates

1. Base price (Offer.price + priceCurrency)

The foundational signal. Every product page must contain in its JSON-LD:

"offers": {
  "@type": "Offer",
  "price": "29.90",
  "priceCurrency": "EUR",
  "availability": "https://schema.org/InStock"
}

Without price and priceCurrency, the AI agent cannot compare your product. It is excluded from rankings.

2. Compare at price (original vs discounted)

On Shopify, the compareAtPrice represents the pre-discount price (the strikethrough price). When properly exposed, AI agents identify your product as being on sale and prioritize it in β€œbest deals” recommendations.

The compareAtPrice must always be higher than the current price. If your current price is 29.90 EUR and your compareAtPrice is 24.90 EUR, that is an inconsistency that AI agents detect immediately - and your credibility takes a hit.

3. Variant pricing

Modern AI agents evaluate prices per variant (size, color, volume). If your schema.org contains only a single product-level price while your variants have different prices, the agent displays a potentially incorrect price.

Each variant should have its own Offer block with its specific price. On Shopify, recent themes (Dawn, Refresh) automatically expose per-variant prices in JSON-LD. Older themes require a manual edit to the main-product.liquid template.

4. Currency consistency

AI agents cross-reference the currency declared in schema.org (priceCurrency) with the currency displayed on the page. If your schema.org says EUR but your page shows $29.90, the agent detects an inconsistency and reduces confidence in all of your structured data.

This issue is common on multi-currency stores that use conversion apps without syncing the schema.org. The currency must be identical across the JSON-LD, the displayed HTML, and the OG meta tags.

5. Price + availability = recommendable

An AI agent only recommends a product that is both in stock and has a readable price. Missing availability: InStock in your schema.org, even with a correct price, excludes your product from recommendations. Both signals must be present together.

Common Shopify pricing mistakes

Here are the most frequent pricing errors that Verity Score detects on Shopify stores:

  1. Price only in a JavaScript widget: some apps (currency converters, bundle builders) display the price via JS without updating the JSON-LD. Result: the price is invisible to AI crawlers.

  2. Inverted compareAtPrice: the strikethrough price is lower than the current price (29.90 EUR crossed out for a current price of 34.90 EUR). AI agents interpret this as a price increase, not a promotion.

  3. Inconsistent multi-currency: the store displays prices in CAD for Canadian visitors, but the schema.org stays in EUR. The AI agent sees two different prices for the same product and loses confidence.

  4. Missing priceCurrency: the schema.org contains "price": "29.90" without "priceCurrency": "EUR". Without a currency, the price is unusable for international comparison.

Promotions and AI visibility

AI agents actively search for promotions to recommend the best offers. To make your promotions visible, structure them in schema.org:

  • Discounted price: use priceSpecification with price (discounted price) and referencePrice (original price) in the Offer block.
  • Promotion dates: add priceValidUntil so the agent knows when the offer expires. Promotions with an end date rank better because they create verifiable urgency.
  • Promo codes: if your promotion requires a code, mention it in native HTML (not only in a JavaScript pop-up). AI agents like ChatGPT Shopping and Perplexity Shopping can read and pass promo codes to their users.

Priority actions checklist

  1. Verify the JSON-LD on every product page: Offer.price, priceCurrency, and availability must be present and correct
  2. Fix compareAtPrice: it must always be higher than the current price (never inverted)
  3. Expose per-variant prices: every variant with a different price needs its own Offer block
  4. Sync currencies: the currency in schema.org, HTML, and OG meta must be identical
  5. Structure your promotions: add priceValidUntil and priceSpecification for every active offer
  6. Test with a crawler: disable JavaScript and verify that the price remains visible in the HTML source

Next step

Pricing is a necessary but not sufficient signal. To maximize your AI visibility, combine well-structured pricing with a complete schema.org, clear shipping and return policies, and verifiable customer reviews.



Ready to check your store? Run a free GEO audit β†’

Frequently Asked Questions

How do AI agents read prices on Shopify?
AI agents read prices from schema.org Product markup (Offer.price and Offer.priceCurrency) and native HTML. If the price is only displayed via JavaScript or in an image, it's invisible to AI crawlers and your product won't be included in price comparisons.
Is the compareAtPrice (strikethrough price) visible to AI agents?
Yes, if your Shopify theme exposes it in schema.org via Offer.priceSpecification or if the strikethrough price is in native HTML. AI agents use this information to identify deals and recommend the best offers.
Why is currency consistency important for GEO?
AI agents compare prices across stores. If your schema.org says EUR but your page displays USD prices (or vice versa), the agent detects an inconsistency and reduces confidence in your data. Currency must be identical everywhere.
How do I optimize pricing to appear in ChatGPT Shopping recommendations?
Ensure every product page has Offer.price in schema.org with correct priceCurrency, variants have individual prices, compareAtPrice reflects the true reference price, and promotions are structured in schema.org (SaleEvent or priceSpecification).