ARC · Answers

Which online stores block AI agents?

Some stores turn AI agents away with bot challenges or blocks, often by accident through their security settings. ARC records when a store returns a bot challenge and shows the HTTP evidence on that store's page. Its tracker shows how many checked stores blocked ARC's latest attempt, and its blocked-agent rates by platform.

Short answer

ARC records two different things. An HTTP block is a bot challenge or refusal on ARC's own check. A robots rule is text in robots.txt that disallows an answer-agent token. Neither one is a score of zero, and a store that is absent from the list was not found to be blocking. Absence is not a pass.

How blocking shows up

A bot challenge, a human check, or a robots rule. The store page shows the HTTP evidence when ARC's check was blocked. A robots disallow is a rule, not proof that every agent was turned away.

What ARC's data shows

ARC saved checks, accessed 2026-10-13 for the HTTP block count. Names, when listed, are from the open dataset snapshot 2026-10-12.

Latest saved check recorded an HTTP block: 441 of 4,421 (10%)MeasuredNot a zero score. Failed checks are outside this rate.

robots.txt disallows an answer agent: 142 of 3,894 (3.6%)MeasuredMeasured only where the dataset has a yes or no. A missing row is not a block.

Index stops that were a human check or a door block are in the table below. They are a published stop reason, not a rank of bad stores.

ARC open dataset snapshot 2026-10-12. Index browser tests stop at add-to-cart. Nothing is bought.

Measured scored stores: 77MeasuredA published score whose dataset row is evidence=measured. Rates below use only these stores.

Inferred scores: 6InferredKept out of the rates. An inferred score is not treated as a failure or a success.

No published score: 6Not measuredRetest pending or not finished. A missing score is not a zero, and it is not a mark against the store.

5 of 5 shoppers added to cart: 32 of 77Measured

0 of 5 shoppers added to cart: 18 of 77Measured

0 of 5, but a checkout link still came back: 13 of 18MeasuredMeasured scores only, snapshot 2026-10-12. Inferred scores and stores with no published score are outside this count. The protocol check said yes. The browser test did not get the product into the cart.

Median score: 83Measured

Highest score in this snapshot: 86 of 100MeasuredIndex tests stop at add-to-cart, so a clean cart pass does not score 100. The formula is on the methodology page.

Published stop reason where at least one shopper missed add-to-cart (45 of 77 Measured stores):

Stop reasonStores
Couldn't add it to the cart32
Blocked at the size picker8
Stopped by a human-check3
Store blocks automated agents at the door2
Shoppers that added to cartMeasured stores
0 of 518
1 of 56
2 of 51
3 of 52
4 of 518
5 of 532

Blocking by platform

Share of checked stores whose robots.txt blocks answer agents. Platforms with fewer than 20 completed checks are marked too few to judge.

PlatformCheckedValid UCPCheckout linkStorefront MCPWebMCPCheckout WebMCPBlocks answer agents
Shopify1,8001,720 of 1,800 (95.6%)1,470 of 1,800 (81.7%)1,696 of 1,800 (94.2%)1,680 of 1,800 (93.3%)1,536 of 1,536 (100%)11 of 1,798 (0.6%)
Not detected1,28119 of 1,281 (1.5%)17 of 1,281 (1.3%)18 of 1,281 (1.4%)0 of 1,281 (0%)Not measured79 of 1,276 (6.2%)
Salesforce Commerce Cloud1590 of 159 (0%)0 of 159 (0%)0 of 159 (0%)0 of 159 (0%)Not measured10 of 159 (6.3%)
WooCommerce780 of 78 (0%)0 of 78 (0%)0 of 78 (0%)0 of 78 (0%)Not measured6 of 76 (7.9%)
Adobe Commerce / Magento680 of 68 (0%)0 of 68 (0%)0 of 68 (0%)0 of 68 (0%)Not measured1 of 68 (1.5%)
Squarespace580 of 58 (0%)0 of 58 (0%)0 of 58 (0%)0 of 58 (0%)Not measured1 of 58 (1.7%)
BigCommerce5045 of 50 (90%)0 of 50 (0%)0 of 50 (0%)0 of 50 (0%)Not measured1 of 50 (2%)
Wix2922 of 29 (75.9%)0 of 29 (0%)0 of 29 (0%)0 of 29 (0%)Not measured0 of 29 (0%)
PrestaShop (too few stores to judge)190 of 19 (0%)0 of 19 (0%)0 of 19 (0%)0 of 19 (0%)Not measured0 of 19 (0%)
Lightspeed (too few stores to judge)20 of 2 (0%)0 of 2 (0%)0 of 2 (0%)0 of 2 (0%)Not measured0 of 2 (0%)

Is your store blocking agents by accident?

Open the store page and read the block line. If ARC saw a challenge, the page says so. You can allow a known agent in the security settings without turning off protection for everyone else. ARC does not prescribe a vendor.

How to allow good agents without opening the door to scrapers

Ask the security vendor about verified bots and signed requests (HTTP message signatures, RFC 9421). Visa's Trusted Agent Protocol uses that kind of signature. ARC does not measure whether a store accepts those signatures. That is not measured.

Stores whose snapshot row says blocks_ai_answer_agents is yes (107). This is a robots finding, not a verdict that the store is closed to every agent. The full list is in the open dataset.

Frequently asked questions

Which online stores block AI agents?
Some stores turn AI agents away with bot challenges or blocks, often by accident through their security settings. ARC records when a store returns a bot challenge and shows the HTTP evidence on that store's page. Its tracker shows how many checked stores blocked ARC's latest attempt, and its blocked-agent rates by platform.
Why would a store block AI agents?
Usually its bot protection treats an agent like a scraper. Often nobody chose it on purpose.
How does ARC know a store blocks agents?
When ARC's check gets a bot challenge, the store page says so and shows the HTTP evidence.
Is a blocked store scored zero?
No. ARC labels it as blocking automated agents. It is not a zero score.
Can I see the full list?
Yes. The open dataset (CC-BY-4.0) includes each store's latest check result.

On ARC

Cite this: ARC, arcreport.ai, accessed 2026-10-13, CC-BY-4.0. Protocol figures: ARC saved checks, accessed 2026-10-13 (13 October 2026). Index browser figures: ARC open dataset snapshot 2026-10-12. Platform figures: ARC saved checks, accessed 2026-10-13.

Every figure is labelled Measured, Inferred or Not measured. Not measured is not zero. A missing result is not a mark against a store. ARC stops before payment.