We read 82 online stores' product pages. One was ready for AI shopping.
When a shopper asks an assistant "which one should I buy", the assistant compares six things: price, stock, rating, returns, shipping and a product identifier. We opened a real product page on 82 stores and counted how many state each one. Two of the six are nearly universal. The other four are almost nobody.
What stores actually state
Share of the 61 graded product pages stating each field
Show the numbers as a table
| Field | Stores | Share |
|---|---|---|
| Price | 60 / 61 | 98% |
| In stock or not | 59 / 61 | 97% |
| GTIN or MPN | 24 / 61 | 39% |
| Rating / reviews | 9 / 61 | 15% |
| Returns policy | 6 / 61 | 10% |
| Shipping & delivery | 5 / 61 | 8% |
The split is the whole finding
Price and stock come out at 98% and 97% because Shopify, WooCommerce, PrestaShop and Magento emit them automatically. You did not do anything to earn those, and neither did your competitor.
The other four are the ones a merchant has to add on purpose — and 52 of the 61 stores are missing three or more of them. That is the opportunity: the fields that decide which store an assistant names are exactly the fields almost nobody has bothered with.
Why these six? They are what a shopping answer is made of. Without price and stock an assistant cannot answer at all. Without a rating it has nothing to rank you by, so it ranks the store that has one. Returns, shipping and a GTIN are the tie-breakers — and a GTIN is also how an assistant knows your listing and a competitor's are the same physical product.
How we measured it
- Sample: 82 domains drawn from the Tranco long tail, filtered to stores. Not a random sample of all e-commerce, and small stores are over-represented by design — those are the ones with something to gain.
- One real product page per store, found the way a crawler finds one: links from the homepage, then the sitemap, then one hop through a category listing. 17 of the 82 gave us no reachable product page at all, and 4 more had one with no machine-readable product data whatsoever. Both groups are excluded rather than scored zero — which makes every percentage above slightly generous.
- We read what the page states in
Productmarkup — JSON-LD or microdata, both count. Variant markup that splits one product across several nodes is merged, so a rating on the parent counts for the child. - We read the page only. A merchant feed may carry more; an AI crawler does not get the feed.
- A field counts if it is stated, not if it is good. We did not check whether the values are accurate.
One correction worth stating, because it changed a number: our first pass read only the first 1.5 MB of each page and reported one store as having no product markup at all. Its JSON-LD was at 2.09 MB — real, just below our cut. We now read the graded page in full. Any tool that measures this, ours included, is wrong about big pages until it does.
What to do about it
Pick the biggest gap and state it in your product markup. For most stores that is a rating, then returns, then shipping. You do not need a new platform or an app for this — it is a block of JSON-LD on the product template.
See where your store sits
Paste your URL. We open a real product page on your site, count the same six fields, and hand you the markup for the ones you are missing — pre-filled from your own page. Free, no email, a few seconds.
Check my store →