Can it read the store?
Before an assistant recommends a product, it has to find it.
Shopping assistants read a shop the way a search engine does: the raw page, a list of pages, and the product data written for machines.
- 3 of 658
Stores show an assistant that does not run JavaScript almost no words at all.
- 54 of 647
Stores publish no sitemap, the list of pages a machine reads to find every product.
- 63 of 394
Product pages carry no schema.org product data, the format shopping assistants parse.
Can it check who it is buying from?
A stranger's money needs a reason to trust.
Who runs the shop, what happens if the item goes back, and whether an email in the shop's name really came from it.
- 206 of 658
Stores do not say on their home page who the business is, in a form a machine can read.
- 556 of 658
Stores let anyone send email that looks like it came from the store.
- 375 of 394
Product pages give a machine no return policy it can read.
Does it have what it needs to buy?
A price, a currency, and whether it is in stock.
Three facts an assistant needs before it can put an item in front of a shopper. Read on one product page per store, linked from its home page.
- 72 of 394
Product pages show no price an AI shopping assistant can read.
- 70 of 394
Product pages never say in a form a machine can read whether the item is in stock.
- 73 of 394
Product pages miss at least one of the price, the currency or the stock.
Of the 72 product pages with no price a machine can read, 46 still show one in the text a person reads, so an assistant has to guess which number on the page is the price. In the other 26 we found no price figure in the text we read at all (a currency sign or code written before a number).
By country and by platform
Country by country, platform by platform.
Each cell is the number of stores that fail the check, out of the stores it applies to. A cell with fewer than 50 stores is not shown, so no small group can be picked apart, and when a hidden cell could be worked out from the total and the cells beside it, the smallest of those is hidden too.
| Fails the check | Australia176 stores | Canada (outside Quebec)195 stores | United Kingdom142 stores | United States145 stores |
|---|---|---|---|---|
| Show an assistant that does not run JavaScript almost no words at all | 2 of 176 | 1 of 195 | 0 of 142 | 0 of 145 |
| Publish no sitemap, the list of pages a machine reads to find every product | 19 of 173 | 12 of 195 | 10 of 138 | 13 of 141 |
| Carry no schema.org product data, the format shopping assistants parse | 21 of 107 | 16 of 130 | 11 of 74 | 15 of 83 |
| Do not say on their home page who the business is, in a form a machine can read | 57 of 176 | 57 of 195 | 46 of 142 | 46 of 145 |
| Let anyone send email that looks like it came from the store | 141 of 176 | 168 of 195 | 124 of 142 | 123 of 145 |
| Give a machine no return policy it can read | 102 of 107 | 125 of 130 | 69 of 74 | 79 of 83 |
| Show no price an AI shopping assistant can read | 22 of 107 | 20 of 130 | 13 of 74 | 17 of 83 |
| Never say in a form a machine can read whether the item is in stock | 22 of 107 | 19 of 130 | 13 of 74 | 16 of 83 |
| Miss at least one of the price, the currency or the stock | 22 of 107 | 21 of 130 | 13 of 74 | 17 of 83 |
By the platform the store runs on
| Fails the check | Shopify351 stores | WooCommerce136 stores | Other or not detected60 stores | Squarespace58 stores |
|---|---|---|---|---|
| Show an assistant that does not run JavaScript almost no words at all | 2 of 351 | 1 of 136 | 0 of 60 | 0 of 58 |
| Publish no sitemap, the list of pages a machine reads to find every product | 10 of 351 | 18 of 131 | 9 of 59 | 0 of 55 |
| Carry no schema.org product data, the format shopping assistants parse | 25 of 290 | 14 of 52 | under 50, not shown | under 50, not shown |
| Do not say on their home page who the business is, in a form a machine can read | 68 of 351 | 58 of 136 | 36 of 60 | 14 of 58 |
| Let anyone send email that looks like it came from the store | 303 of 351 | 108 of 136 | 50 of 60 | 49 of 58 |
| Give a machine no return policy it can read | 273 of 290 | 52 of 52 | under 50, not shown | under 50, not shown |
| Show no price an AI shopping assistant can read | 31 of 290 | 16 of 52 | under 50, not shown | under 50, not shown |
| Never say in a form a machine can read whether the item is in stock | 29 of 290 | 16 of 52 | under 50, not shown | under 50, not shown |
| Miss at least one of the price, the currency or the stock | 32 of 290 | 16 of 52 | under 50, not shown | under 50, not shown |
How we counted
Sample, method, limits. Check us without us.
We sell fixes for some of these problems. Here is how to check our numbers without us.
The sample
Shops tagged in OpenStreetMap with their own website, in 22 cities: Toronto, Vancouver, Calgary, Ottawa, Edmonton, Winnipeg, Halifax, Victoria (Canada, Quebec left out); Austin, Portland, Seattle, Denver, Minneapolis (United States); Bristol, Manchester, Edinburgh, Leeds (United Kingdom); Melbourne, Sydney, Brisbane, Adelaide, Perth (Australia). We left out shops tagged with a brand, any web address listed for three or more shops, social pages and marketplaces, and services such as hairdressers and repairs. That left 12,348 shops. We checked 1,600 of them, in an order set by a fixed seed so the draw can be repeated.
Who counts as an online store
Of the 1600 sites, 11 asked crawlers like ours to stay out, so we read nothing else on them; 411 did not answer over HTTPS, answered with an error (some sites turn automated readers away at the door), or sent us to another web address; 520 showed no sign of selling online. The other 658 are the stores on this page: the site runs on a shop platform, links to a cart or checkout, says add to cart, or links to a product page.
What we read
At most four pages a site, one request at a time and at least a second apart: the robots.txt file first and alone, then the home page, the sitemap, and one product page linked from the home page (394 of the 658 stores linked to one we could read). We followed a redirect only within the same site, and only to a page its robots.txt let us read. Email settings come from public DNS records. No browser ran any script, so each page counts as a reader of raw HTML sees it. Our crawler names itself OrbylonScan and obeys robots.txt as RFC 9309 reads it.
What each check means
A price counts when the product page carries a schema.org price and its currency as JSON-LD or microdata; stock counts on a schema.org availability; a return policy on a schema.org return policy. Saying who the business is counts on a schema.org Organization, LocalBusiness or store type on the home page. Email counts when the domain has SPF and a DMARC policy of quarantine or reject.
Limits. OpenStreetMap lists the shops its volunteers mapped, so this is a sample of mapped city shops, not of every store in each country. The four countries were drawn in turn, so each has about as many sites checked as the others whatever its share of the shops, and the overall figures are a plain count across all four, not a weighted estimate for any one of them. We read one product page per store, the first one its home page links to. Passing a check means the facts are there to read; it does not mean any assistant uses them. Assistants also reach products through routes we did not measure: ChatGPT invites merchants to apply to share product data, and says catalogs on Shopify or Etsy are already integrated (chatgpt.com/merchants, read 7 October 2026). A store that fails here can still be found that way. Of the 1314 sites whose robots.txt we read, 11 tell every crawler to stay out of the home page.
Scanned 9 October 2026. Method bbf-2026-1. SHA-256 of the sorted list of web addresses checked: e4bc6a36e767ba2282072287f50307d335256909c16010cc888597fbd6390684. Every published cell as CSV: before-black-friday.csv.
Contains information from OpenStreetMap, made available here under the Open Database License (ODbL). © OpenStreetMap contributors, openstreetmap.org/copyright. Shop data as of 2026-10-09.
Is yours one of them? Find out before the shoppers do.
Our free check reads your own shop and shows, in plain words, what an AI shopping assistant can and cannot read there.
Free. No signup. Takes under ten seconds.