Short answer: it’s rarely “the AI got confused.” An agent that gives up on your store almost always trips on one of a small number of concrete, checkable failures between “found the product” and “completed the order” β and most of them have nothing to do with how good your content reads. Below are the ones AgentReady’s scan is built to catch, in the order an agent actually hits them.
1. Blocked before it starts
The first checkpoint isn’t the product page, it’s the front door. If robots.txt disallows every AI crawler token, or a WAF/CDN bot-management rule 403s them at the edge regardless of what robots.txt says, the agent never gets past the homepage. This is common enough that our own scoring treats it as a hard ceiling rather than one deduction among many: a store that blocks agent crawlers can’t score above 25/100 no matter how good the rest of the site is, because nothing else it does matters if the door is locked. See our robots.txt copy-paste block for the tokens that actually need allowing.
2. The bot gets a different page than the shopper does
Some stores serve AI user-agents a thinner or altered version of the page β sometimes deliberately (a bot wall), sometimes as a side effect of a CDN “bot fight” preset. An agent that gets a stripped-down page can’t find the price, the stock status, or the buy action it just watched a human version of the page display. The differential is detectable: fetch once as a browser, once as a declared agent, and compare.
3. The buy action doesn’t exist until JavaScript runs
Agents that read raw HTML β many still do β see whatever is in the initial response, not what a browser paints after scripts execute. A product page can describe the item perfectly and still have no add-to-cart action anywhere in the HTML an agent actually receives, because the button is injected client-side. The agent can tell you about the product. It cannot tell you how to buy it.
4. The page loads, but not fast enough
Agent fetchers commonly run with short timeouts and no patience for a slow origin β a page that a human waits out can be abandoned mid-load by a script. A slow response doesn’t just hurt Core Web Vitals; for an agent it can mean the difference between a completed fetch and an empty one.
5. No machine-readable return policy or shipping cost
An agent trying to quote a shopper the true total β item price plus
shipping, minus the risk if it doesn’t fit β needs shippingDetails and
hasMerchantReturnPolicy in the offer, not a link to a prose policy page.
Without them, an agent that can add the item to cart still can’t tell the
shopper what the order will actually cost, and Google’s own Merchant Center
flags exactly this gap on listings. See the field list in our
Product JSON-LD guide.
6. The homepage never points to what matters
An agent that fetches only the root page needs a signpost β a <head> link,
a sitemap reference, an HTTP Link header β to the resources it needs next.
We learned this one the hard way on our own site: an external agent fetched
agentready.market, found a page with no machine-readable pointers in it, and
concluded there was “no public API” β even though our API, MCP server and
llms.txt were all live at the time. A resource that exists but isn’t linked
from the first page an agent sees does not exist for that agent.
7. Even a clean page can still get a “no”
Pass every check above and one failure point remains outside a merchant’s control: several major agent products stop short of the purchase on purpose. Anthropic’s own docs state that Claude “won’t purchase items, create accounts, or bypass CAPTCHAs without your input,” even on a site the user has already approved β see our writeup on what that means for a merchant. Design for the handoff an agent can complete β a correct, fully loaded cart with the right variant, price and shipping visible β because that’s the part still inside your control.
FAQ
Why does my store show up fine in ChatGPT but an agent still can’t buy from it?
Being cited or described by an assistant only proves the discovery layer works β the model read your content. Buying requires a separate, transaction-specific layer: a machine-readable offer with price and availability, a buy action visible in raw HTML, and a checkout path that doesn’t block automated clients. A store can pass the first and fail the second.
Is a slow website actually a checkout problem, or just an SEO one?
Both, but the failure mode differs. A slow page still eventually ranks; it just costs conversion. An agent fetching with a short timeout can abandon the request entirely before your HTML arrives, which reads to your server logs as a completed request and to the agent as a store that doesn’t respond β a harder failure than a ranking penalty.
Can I test whether my own checkout is agent-reachable?
Yes β fetch your product page with curl using a real agent user-agent
string (GPTBot, ClaudeBot, PerplexityBot) and diff it against a normal
browser fetch of the same URL; look for the add-to-cart markup, the price,
and the availability field in both. AgentReady’s scan automates
this exact differential.
Sources
- AgentReady β robots.txt for AI Agents: The 2026 Copy-Paste Block
- AgentReady β Product JSON-LD for AI Agents
- AgentReady β Can AI Agents Buy Things Online Without a Human? (cites Anthropic’s Claude Code desktop docs on the purchase gate)
- AgentReady β Readability is not buyability
A store an agent can describe but not transact with is a brochure with extra steps. These are the seven places that decide which one yours is.