More people are asking an AI assistant "what's a good X under $50" and buying from the answer. If your store never shows up, it is usually not a ranking problem. It is that the model literally cannot read your product.

A shopper sees a nice product page: photo, price, an "in stock" badge, an add-to-cart button. All of that is rendered by your theme, in the pixels. ChatGPT, Perplexity, and Google's AI shopping read something different: the structured data in your page source. If the price, currency, and availability are not in Product and Offer JSON-LD, the model has nothing concrete to quote, so it recommends a competitor whose markup it can read.
The specific things worth checking on a product page:
- Product schema exists and describes the item on the page (not a generic site-wide blob).
- Offer with price and priceCurrency that a machine can read, not just a styled number.
- Availability (InStock / OutOfStock) present and matching what the page shows.
The buy button being visible is not the bar. The bar is machine-readable. Has anyone here actually traced whether their product pages emit this, or is it one of those things you assume the theme handles?
Assumed my theme handled it. Nope.
Product schema was there but the Offer had no price. A currency app injected the price after load, so the AI saw no price and skipped it.
View source, don't inspect the DOM. Source is what the crawler gets.