A

Protocol

HIGH

/.well-known/ucp profile is present with a `version` field

`/.well-known/ucp` is reachable and carries a top-level `version` string. Without `/.well-known/ucp`, Google's AI Mode can't identify your storefront as a UCP-conformant merchant.

What this check looks for

Google's Universal Commerce Profile is the canonical declaration AI Mode (and other agent surfaces) read to recognise a storefront as a UCP-conformant merchant. The minimum viable profile is a JSON file served at `/.well-known/ucp` with a `version` string identifying the UCP spec generation it conforms to. We fail when the file is unreachable, unparseable, or missing the `version` field.

Which AI surfaces it affects

  • Google AI Mode (UCP)100
  • Microsoft Copilot70
  • ChatGPT (ACP)30
  • Meta AI30
  • Perplexity20

Weighted against the live specs — ACP 2026-04-17, UCP 2026-04-08.

How to fix it

Publish `/.well-known/ucp` with at minimum a `version` field

Shopify

Developer
  1. Shopify doesn't natively serve `.well-known` files. Add a custom page or theme template that emits the UCP JSON at `/.well-known/ucp`, or proxy that path via a Shopify Function / CDN rule.
  2. Confirm the response is `Content-Type: application/json` (not text/html).

Platform docs ↗

BigCommerce

Developer
  1. BigCommerce doesn't serve `.well-known` paths directly. Add a Stencil custom template or use a Cloudflare Worker / edge route to serve the UCP JSON at `/.well-known/ucp`.

Platform docs ↗

WooCommerce

Developer
  1. Add a server route (e.g., via .htaccess + a PHP handler, or a WordPress mu-plugin) that serves the UCP JSON at `/.well-known/ucp`.
  2. Most WordPress shared hosts let you place a static `ucp` file under `/.well-known/`; ensure your host doesn't intercept `.well-known/` for ACME challenges only.

Platform docs ↗

Custom / headless

Developer
  1. Add a route handler that serves the UCP JSON document at `/.well-known/ucp`.
  2. Set `Content-Type: application/json` and return 200 directly (no 3xx, no auth).
<!-- /.well-known/ucp -->
{
  "version": "2026-04-08",
  "services": [
    {
      "namespace": "shopping",
      "version": "2026-04-08",
      "spec": "https://ucp.dev/2026-04-08/specification/shopping/",
      "transport": "rest",
      "endpoint": "https://example.com/ucp/shopping",
      "schema": "https://example.com/ucp/shopping/openapi.json"
    }
  ],
  "capabilities": [],
  "signing_keys": []
}

Platform docs ↗

The spec it's pinned to

  • UCP overview — profile location and shape

    The UCP specification declares `/.well-known/ucp` as the merchant's machine-readable profile. Every conformant profile MUST advertise a `version` field so agents can negotiate against the right spec generation.

  • Google UCP merchant profile guide

    Google's UCP guide instructs merchants to publish `/.well-known/ucp` with at minimum a `version` field. Without it, AI Mode and other Google surfaces cannot recognise the storefront as a UCP-conformant merchant.

Google UCP merchant profile guide

Does your store pass this check?

Run the full audit — 82 checks across five AI shopping surfaces. Most tools only check whether you get mentioned; we check whether an agent can buy from you.

Related protocol checks

← All 82 checks