Learn / Platforms

Headless storefronts and AI agents

A headless storefront is not inherently unreadable to agents, and a purely client rendered one usually is. The distinction is whether the facts exist in what the server sends or only after the client application has run, and modern rendering choices make that a setting rather than a rebuild for most stacks.

Headless is not the problem. Rendering entirely on the client is. A headless storefront that server renders its product pages is as readable as any other, and one that ships an empty shell plus a bundle is effectively a store with no product data.

The distinction that matters

An agent takes the cheapest path to an answer. If your price is available in the served markup it reads it there and stops. If it is not, it does not usually escalate to rendering your application, so the price does not exist as far as your candidacy is concerned.

So the question is never which framework. It is whether the four facts, price, availability, variants and terms, are in the response.

Three ways to fix it without a rebuild

  1. Server render the product page. Most modern frameworks make this a routing decision rather than a rewrite.
  2. Emit structured data server side alongside whatever the client renders, so the facts are published even when the view is built on the client. See how to add product schema for AI agents.
  3. Publish a complete feed, which covers enumeration independently of how any page renders. See how to publish a product feed for AI agents.

The third is the cheapest and the least complete: it makes your catalogue readable and leaves your product pages unreadable to anything that lands on one directly.

An API is not a substitute

Teams with a good API often assume it covers this. It does not: an API serves consumers who know it exists, have credentials and read documentation. An agent arriving from a shopper’s question has none of those and reads what is public.

The checkout is the other half

Headless storefronts usually pair with a custom checkout, which is where the mechanical failures concentrate. See custom checkouts and AI agents.

Questions

Do I have to abandon a client rendered front end?

No. You have to make sure the facts an agent needs exist in the served response. Server rendering the product page, or emitting structured data server side alongside a client rendered view, both achieve that without changing the architecture.

Is a JSON API enough for agents?

Not on its own. An API is for consumers you have a relationship with. An agent arriving cold reads the public page and any published feed, without credentials and without documentation.

How do I know which parts are missing?

Request a product URL and read the raw response. Whatever is not in it does not exist for an agent that stopped there, and that is most of them most of the time.

Scan your store