Is your storefront agentic?

Is Shopify agent-ready? What you get by default and what to fix

Shopify-hosted stores include several agentic-commerce files by default: a UCP profile, a shopper MCP endpoint, OAuth metadata, llms.txt and a sitemap. What Shopify does not guarantee is theme-level product data, such as complete Product JSON-LD and return and shipping structured data, or that no app or CDN blocks AI agents.

Updated · By the Medusa team

Shopify-hosted stores include several agentic commerce protocol files by default. Other checks depend on your theme and apps. This guide maps each check in the agent-ready ecommerce score to what a stock Shopify store gives you, then lists the fixes in priority order.

What does a Shopify store give AI agents by default?

On the Shopify-hosted storefront domain, Shopify serves a Universal Commerce Protocol (UCP) profile, a shopper-facing MCP server, OAuth metadata, /llms.txt, /agents.md and a sitemap (Shopify agents docs). Shopify’s Agentic Storefronts are “active by default for eligible stores” in ChatGPT, Google AI Mode, Gemini, Microsoft Copilot and Meta. You manage them in Sales channels → Agentic.

“Theme” in the tables below means the result depends on your theme. We checked against Dawn, Shopify’s reference theme.

Access

Check Default on Shopify What to do
AI agents not blocked Usually open. When agents get blocked, the block usually comes from a CDN, WAF or bot-protection app. Allow AI user agents in any proxy or app in front of the store.
robots.txt The generated file allows crawling, disallows /cart and /checkout, and lists the sitemap. Leave it alone, or customize it carefully (see below).
No CAPTCHA Depends on your apps Remove CAPTCHA scripts from the homepage, product pages and cart.
No content gates Depends on your age, geo and consent apps Don’t replace the page HTML with a gate.

Product data

Check Default on Shopify What to do
Product facts in HTML Liquid renders on the server Keep price and stock out of JS-only app blocks.
Product JSON-LD Theme. Dawn outputs it. Add {{ product | structured_data }} if the raw HTML has none.
Variants modeled The filter outputs ProductGroup for products with variants Use the filter rather than hand-written JSON.
Return and shipping data Missing in Dawn and in the filter Add MerchantReturnPolicy and OfferShippingDetails.
OpenGraph price tags Dawn outputs og:price:amount and og:price:currency None for Dawn-based themes.

Discovery

Check Default on Shopify What to do
Sitemap Generated automatically and listed in robots.txt Publish products to the Online Store channel.
Canonical and status codes Dawn outputs canonical_url Keep the canonical tag in theme.liquid.
Performance Theme and apps Remove unused app scripts.
Markdown alternative Not served. In our calibration scans, Accept: text/markdown returned 404. Low weight. You can skip it.
llms.txt / agents.md Served by Shopify None

Operability

Check Default on Shopify What to do
Add-to-cart in a form Dawn uses {% form 'product' %}, which posts to /cart/add Keep the form if you customize the buy box.
Variant controls Dawn uses radio inputs or <select> Make sure swatch apps keep native inputs.
Accessible names Theme Give icon-only buttons a name.
Site search /search?q= is built in Don’t disallow /search.
Policy links You create policy pages under /policies/*. Shopify links them in the checkout footer automatically. Add the policy pages to the storefront footer menu.
Semantic structure Theme One h1, landmarks and alt text.

Agentic commerce

Check Default on Shopify What to do
UCP profile Served at /.well-known/ucp None on the hosted domain
Live agent endpoint MCP at /api/ucp/mcp None
Checkout permalinks UCP permalink capability, plus /cart/{variant_id}:{qty} None
OAuth discovery RFC 9728 and RFC 8414 metadata served None
Bonus: WebMCP, rel="ucp" Both shipped None
Bonus: A2A, AI Catalog, API catalog 404 Optional

The Shopify defaults in these tables come from our live probes of Shopify storefronts on 2026-10-14. In our calibration scans, Shopify stores passed the UCP, agent endpoint, OAuth and WebMCP checks together.

How do I fix a Shopify store for AI agents, in priority order?

1. Make sure agents aren’t blocked

Shopify’s own agents.md asks server-side agents to sign their requests with Web Bot Auth. Blocks on Shopify stores usually come from what sits in front of the store, such as Cloudflare rules or a bot-protection app. Allow AI search and user-initiated agents there. Blocking training crawlers is your choice and isn’t penalized. The AI user agents guide lists the tokens.

If you customize robots.txt, add a robots.txt.liquid template. It replaces Shopify’s generated file, so build it from the robots Liquid object rather than plain text, which keeps the default rules and Sitemap: line (Shopify robots.txt docs):

{% for group in robots.default_groups %}
  {{- group.user_agent }}
  {%- for rule in group.rules %}
    {{ rule }}
  {%- endfor %}
  {%- if group.sitemap != blank %}
    {{ group.sitemap }}
  {%- endif %}
{% endfor %}

2. Confirm Product JSON-LD is in the raw HTML

Fetch a product page with curl and look for application/ld+json. In our research, one large Shopify Plus store had no JSON-LD at all in its raw HTML. If yours has none, add this to sections/main-product.liquid:

<script type="application/ld+json">
  {{ product | structured_data }}
</script>

The structured_data filter outputs a Product, or a ProductGroup for products with variants, with brand, image, price and availability. Remove any older hand-written Product JSON so the page doesn’t carry two conflicting blocks.

3. Add return policy and shipping structured data

This check is the most common fail across all the stores we calibrated against. First fill in Settings → Policies (Shopify Help). Then add a MerchantReturnPolicy and OfferShippingDetails block to your theme. Google accepts both at Organization level (return policy), so one block in theme.liquid covers the whole catalog. The values must match your written policy.

Shopify links policies in the checkout footer automatically, but agents read the storefront. Add /policies/refund-policy, /policies/shipping-policy, /policies/terms-of-service, /policies/privacy-policy and a contact page to your footer menu.

5. Keep the buy box agent-operable

Dawn’s buy box uses a {% form 'product', product %} that posts to /cart/add (form tag), with radio or <select> variant pickers. Custom themes and swatch apps sometimes replace these with clickable divs. Keep a native submit button and native inputs inside the form.

6. Headless Shopify: rebuild the defaults on your domain

Shopify’s UCP, llms.txt and robots defaults apply to the Shopify-hosted Online Store domain. In our probe, a headless brand’s custom domain returned 404 for /.well-known/ucp. A headless frontend must serve or proxy the UCP profile and llms.txt, and generate its own sitemap, robots.txt and Product JSON-LD.

Scan your store

Run the free scan on your store URL to see which of these checks your theme passes. Every failing check comes with a fix prompt you can copy. Terms are defined in the glossary.

Sources

Frequently asked questions

Does Shopify support the Universal Commerce Protocol (UCP)?
Yes. Shopify-hosted storefronts serve a UCP profile at /.well-known/ucp with a shopper-facing MCP endpoint, cart, checkout and catalog capabilities. Headless storefronts on a custom domain do not get it automatically.
Does Shopify add llms.txt automatically?
Yes. Shopify serves /llms.txt and /agents.md on storefronts. They describe the UCP flow and point agents at the store's commerce endpoints.
Does my Shopify theme output Product JSON-LD?
It depends on the theme. Dawn outputs it with the structured_data Liquid filter, but some themes and heavily customized stores ship none in the raw HTML. Scan a product page to check.
Why does my Shopify store fail the return and shipping structured data check?
The structured_data filter and Dawn do not output MerchantReturnPolicy or OfferShippingDetails. You need to add them yourself, either on the Offer or once at Organization level.
Is a headless Shopify store agent-ready by default?
No. Shopify's defaults live on the Shopify-hosted Online Store domain. A custom headless frontend must serve or proxy /.well-known/ucp, llms.txt, robots.txt and its own sitemap.

Run your store on a platform built for agentic commerce

Medusa is open-source, headless commerce with a full Store API agents can call and storefronts you control end to end.

Deploy on Medusa Cloud

Open-source commerce with a full Store API, hosted and scaled for you. Your storefront, your data model.

Storefront skills for coding agents

Teach Claude Code, Cursor or Codex to build storefronts with the patterns these checks look for.

npx skills add medusajs/medusa-agent-skills
View the skill on GitHub