# Is WooCommerce agent-ready? Defaults and what to fix

> WooCommerce core provides server-rendered product pages, Product JSON-LD, a core sitemap, add-to-cart forms and add-to-cart URLs. It does not output return or shipping structured data or ProductGroup variants, and it has no shopper-facing UCP profile or agent endpoint yet. WooCommerce lists UCP as coming soon.

- Source: https://is-agentic-storefront.com/guides/woocommerce-agent-readiness
- Updated: 2026-10-15

WooCommerce pages render on the server, core outputs Product JSON-LD, and the classic add-to-cart is a form. Richer structured data and the [agentic commerce protocols](https://is-agentic-storefront.com/guides/agentic-commerce-protocols) layer are not in core. This guide maps each check in the [agent-ready ecommerce](https://is-agentic-storefront.com/guides/agent-ready-ecommerce) score to what a stock WooCommerce store gives you.

## What does WooCommerce give AI agents by default?

WordPress renders pages in PHP, so product facts are in the HTML that agents fetch. WooCommerce core adds Product JSON-LD ([WooCommerce wiki](https://github.com/woocommerce/woocommerce/wiki/Structured-data-for-products)). WordPress core adds `/wp-sitemap.xml` and lists it in robots.txt ([WordPress 5.5 sitemaps](https://make.wordpress.org/core/2020/07/22/new-xml-sitemaps-functionality-in-wordpress-5-5/)). On agentic commerce, WooCommerce's own page lists UCP and Stripe ACP as "Coming soon" ([WooCommerce agentic commerce](https://woocommerce.com/agentic-commerce/)).

"Theme" in the tables below means the result depends on your theme or plugins. Block themes and page builders can change any of these rows.

### Access

| Check                                         | Default on WooCommerce                                                 | What to do                                                                       |
| --------------------------------------------- | ---------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| [AI agents not blocked](https://is-agentic-storefront.com/checks/agent-access) | Depends on your host, CDN and security plugins                         | Allow [AI user agents](https://is-agentic-storefront.com/guides/ai-user-agents) in your WAF and security plugins. |
| [robots.txt](https://is-agentic-storefront.com/checks/robots-txt)              | WordPress serves a virtual robots.txt that references the core sitemap | Check your SEO plugin or physical `robots.txt` for AI bot `Disallow` rules.      |
| [No CAPTCHA](https://is-agentic-storefront.com/checks/no-captcha)              | Depends on your plugins                                                | Keep CAPTCHA off product pages and the cart.                                     |
| [No content gates](https://is-agentic-storefront.com/checks/content-gates)     | Depends on your plugins                                                | Don't swap the page HTML for an age or consent gate.                             |

### Product data

| Check                                                    | Default on WooCommerce                                       | What to do                                                               |
| -------------------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------------------ |
| [Product facts in HTML](https://is-agentic-storefront.com/checks/ssr-product-facts)       | Server-rendered                                              | None, unless a page builder loads prices with JS                         |
| [Product JSON-LD](https://is-agentic-storefront.com/checks/product-json-ld)               | Output by core: name, SKU, offers, availability, GTIN if set | Fill in SKU, GTIN and brand, and keep your SEO plugin from removing it.  |
| [Variants modeled](https://is-agentic-storefront.com/checks/product-variants)             | `AggregateOffer` price range, no `ProductGroup`              | Extend the markup with the `woocommerce_structured_data_product` filter. |
| [Return and shipping data](https://is-agentic-storefront.com/checks/return-shipping-data) | Not output by core                                           | Add `MerchantReturnPolicy` and `OfferShippingDetails`.                   |
| [OpenGraph price tags](https://is-agentic-storefront.com/checks/opengraph-product)        | Not output by core                                           | Add them with your SEO plugin or theme.                                  |

### Discovery

| Check                                                  | Default on WooCommerce                                             | What to do                                                     |
| ------------------------------------------------------ | ------------------------------------------------------------------ | -------------------------------------------------------------- |
| [Sitemap](https://is-agentic-storefront.com/checks/sitemap)                             | Core `/wp-sitemap.xml` includes public post types such as products | If an SEO plugin replaces it, make sure products are included. |
| [Canonical and status codes](https://is-agentic-storefront.com/checks/canonical-status) | Core outputs `rel=canonical` on single pages                       | None                                                           |
| [Performance](https://is-agentic-storefront.com/checks/performance)                     | Depends on hosting and plugins                                     | Use page caching and drop unused plugins.                      |
| [Markdown alternative](https://is-agentic-storefront.com/checks/markdown-alternative)   | Not in core                                                        | Low weight. You can skip it.                                   |
| [llms.txt / agents.md](https://is-agentic-storefront.com/checks/llms-txt)               | Not in core                                                        | Add `/llms.txt` (see below).                                   |

### Operability

| Check                                            | Default on WooCommerce                                                                                  | What to do                                      |
| ------------------------------------------------ | ------------------------------------------------------------------------------------------------------- | ----------------------------------------------- |
| [Add-to-cart in a form](https://is-agentic-storefront.com/checks/add-to-cart)     | Classic templates: `<form class="cart" method="post">` with `<button type="submit" name="add-to-cart">` | Keep it if your theme overrides the template.   |
| [Variant controls](https://is-agentic-storefront.com/checks/variant-controls)     | Classic templates: `<select>` for each attribute                                                        | Make sure swatch plugins keep native inputs.    |
| [Accessible names](https://is-agentic-storefront.com/checks/accessible-names)     | Theme                                                                                                   | Give icon-only buttons a name.                  |
| [Site search](https://is-agentic-storefront.com/checks/site-search)               | `/?s=term&post_type=product`                                                                            | None                                            |
| [Policy links](https://is-agentic-storefront.com/checks/policy-links)             | WooCommerce creates a draft "Refund and Returns Policy" page                                            | Publish it and link all policies in the footer. |
| [Semantic structure](https://is-agentic-storefront.com/checks/semantic-structure) | Theme                                                                                                   | One `h1`, landmarks and alt text.               |

### Agentic commerce

| Check                                                                                                                                                                                                                                               | Default on WooCommerce                                   | What to do                                            |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------- | ----------------------------------------------------- |
| [UCP profile](https://is-agentic-storefront.com/checks/ucp-profile)                                                                                                                                                                                                                  | Not in core. WooCommerce says it's coming soon.          | Wait for core support, or build the profile yourself. |
| [Live agent endpoint](https://is-agentic-storefront.com/checks/agent-endpoint)                                                                                                                                                                                                       | None for shoppers                                        | Skipped until a UCP profile exists                    |
| [Checkout permalinks](https://is-agentic-storefront.com/checks/checkout-permalinks)                                                                                                                                                                                                  | `?add-to-cart=ID` and `/checkout-link/` (partial credit) | Declare a UCP permalink capability for full credit.   |
| [OAuth discovery](https://is-agentic-storefront.com/checks/oauth-discovery)                                                                                                                                                                                                          | Not in core                                              | Needed only with an agent endpoint                    |
| Bonus checks ([WebMCP](https://is-agentic-storefront.com/checks/bonus-signals#webmcp), [A2A](https://is-agentic-storefront.com/checks/bonus-signals#a2a-agent-card), [AI Catalog](https://is-agentic-storefront.com/checks/bonus-signals#ai-catalog), [API catalog](https://is-agentic-storefront.com/checks/bonus-signals#api-catalog), [`rel="ucp"`](https://is-agentic-storefront.com/checks/bonus-signals#ucp-link)) | Not in core                                              | Optional                                              |

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

### 1. Unblock AI agents at the host and in security plugins

WordPress itself doesn't block AI bots. Blocks come from your host's WAF, your CDN, or security and anti-spam plugins. Allow AI search and user-initiated agents. Blocking training crawlers is your choice and isn't penalized. The [AI user agents guide](https://is-agentic-storefront.com/guides/ai-user-agents) lists the tokens to allow.

### 2. Complete the Product JSON-LD core already outputs

The core markup is only as good as your product data. Fill in SKU, the GTIN/UPC/EAN/ISBN field and stock status. Core reads the GTIN from that field ([source](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/includes/class-wc-structured-data.php)). Add `brand`, which Google recommends, with the `woocommerce_structured_data_product` filter ([WooCommerce wiki](https://github.com/woocommerce/woocommerce/wiki/Structured-data-for-products)):

```php
add_filter( 'woocommerce_structured_data_product', function ( $markup, $product ) {
    $markup['brand'] = array( '@type' => 'Brand', 'name' => 'Your Brand' );
    return $markup;
}, 10, 2 );
```

If your SEO plugin outputs its own Product markup, keep one complete block, not two that disagree.

### 3. Add return policy and shipping structured data

WooCommerce core doesn't output `hasMerchantReturnPolicy` or `shippingDetails`. Return and shipping data is the most common fail across all the stores we calibrated against. Add a `MerchantReturnPolicy` and `OfferShippingDetails` at Organization level. Google accepts this for the whole site ([return policy](https://developers.google.com/search/docs/appearance/structured-data/return-policy)). Or add them per product with the same filter. Keep the values identical to your published policy.

### 4. Publish and link your policy pages

On install, WooCommerce creates a **draft** "Refund and Returns Policy" page ([WooCommerce docs](https://woocommerce.com/document/refund-policy-page-guidelines/)). Edit and publish it. Then link returns, shipping, terms, privacy and contact from the footer on every page.

### 5. Keep the add-to-cart form native

The classic single-product template posts a real `<form>` with a named submit button and `<select>` variant dropdowns. Agents can operate that without JavaScript. Some themes, block layouts and swatch plugins replace these with JS-only widgets. If yours does, keep a native `<select>` or radio group inside the form.

### 6. Add an llms.txt

Serve `/llms.txt` as a Markdown file in the web root. List your main categories, policy pages, the search URL pattern (`/?s=term&post_type=product`) and how to build a cart link (`/?add-to-cart=ID&quantity=1`) ([add-to-cart URLs](https://woocommerce.com/document/quick-guide-to-woocommerce-add-to-cart-urls/)).

### 7. Plan for UCP

WooCommerce core has APIs a custom UCP implementation could use. The [Store API](https://developer.woocommerce.com/docs/apis/store-api/) is a public, unauthenticated API for products, cart and checkout at `/wp-json/wc/store/v1/`, and core has [shareable checkout links](https://woocommerce.com/document/creating-sharable-checkout-urls-in-woocommerce/). Until core support ships, you can build a UCP profile on top of these yourself. WooCommerce MCP is a different tool. It's merchant-facing, needs an Application Password and sits behind the `mcp_integration` feature flag ([WooCommerce MCP docs](https://developer.woocommerce.com/docs/features/mcp/)), so it doesn't count as a shopper agent endpoint.

## Scan your store

[Run the free scan](https://is-agentic-storefront.com/) on your store URL to see which of these checks your theme and plugins pass. Every failing check comes with a fix prompt you can copy. Terms are defined in the [glossary](https://is-agentic-storefront.com/glossary).

## Sources

- [WooCommerce: agentic commerce status](https://woocommerce.com/agentic-commerce/)
- [WooCommerce wiki: structured data for products](https://github.com/woocommerce/woocommerce/wiki/Structured-data-for-products)
- [WooCommerce source: `class-wc-structured-data.php`](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/includes/class-wc-structured-data.php)
- [WooCommerce source: add-to-cart templates](https://github.com/woocommerce/woocommerce/tree/trunk/plugins/woocommerce/templates/single-product/add-to-cart)
- [WooCommerce: add-to-cart URLs](https://woocommerce.com/document/quick-guide-to-woocommerce-add-to-cart-urls/)
- [WooCommerce: shareable checkout URLs](https://woocommerce.com/document/creating-sharable-checkout-urls-in-woocommerce/)
- [WooCommerce: Refund and Returns Policy page](https://woocommerce.com/document/refund-policy-page-guidelines/)
- [WooCommerce Store API](https://developer.woocommerce.com/docs/apis/store-api/)
- [WooCommerce MCP](https://developer.woocommerce.com/docs/features/mcp/)
- [WordPress 5.5 XML sitemaps](https://make.wordpress.org/core/2020/07/22/new-xml-sitemaps-functionality-in-wordpress-5-5/)
- [WordPress: `rel_canonical()`](https://developer.wordpress.org/reference/functions/rel_canonical/)
- [Google: return policy structured data](https://developers.google.com/search/docs/appearance/structured-data/return-policy)
- [Google: product variants structured data](https://developers.google.com/search/docs/appearance/structured-data/product-variants)
- [UCP specification](https://ucp.dev/2026-08-25/specification/overview/)

## Frequently asked questions

### Does WooCommerce output Product structured data?

Yes. WooCommerce core outputs Product JSON-LD on single product pages, with name, SKU, price, currency and availability. Variable products get an AggregateOffer price range, not a ProductGroup.

### Does WooCommerce support UCP or ACP?

Not in core yet. As of October 2026, WooCommerce lists UCP and ACP (through the Stripe Agentic Commerce Suite) as coming soon.

### Is WooCommerce MCP an agent endpoint for shoppers?

No. WooCommerce MCP is for managing the store. It requires a WordPress user with an Application Password and sits behind a feature flag. Shopping agents can't use it to browse or buy.

### Can AI agents add products to a WooCommerce cart with a link?

Yes. Core supports ?add-to-cart=ID add-to-cart URLs and /checkout-link/?products=ID:QTY shareable checkout links. Our scan gives partial credit for these. Full credit needs a UCP permalink capability.

## 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.

- [Deploy on Medusa Cloud](https://cloud.medusajs.com?utm_source=agent-friendly-scorer&utm_medium=referral&utm_campaign=markdown-cta&utm_content=%2Fguides%2Fwoocommerce-agent-readiness)
- [Medusa Cloud docs](https://docs.medusajs.com/cloud?utm_source=agent-friendly-scorer&utm_medium=referral&utm_campaign=markdown-cta&utm_content=%2Fguides%2Fwoocommerce-agent-readiness)

### Storefront skills for coding agents

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

```bash
npx skills add medusajs/medusa-agent-skills
```

[View the skill on GitHub](https://github.com/medusajs/medusa-agent-skills/tree/main/plugins/ecommerce-storefront/skills/storefront-best-practices)

---

Scan your store for free at https://is-agentic-storefront.com/