The state of UCP
Who publishes a UCP profile across the web, read every month, and how well the stores we check follow the spec, read every day.
Every month we read about 4 million ecommerce sites with measurable shopper traffic, the same sites each month, not only the stores we check. About 3.7 million were live ecommerce sites, and the shares below are of those. A UCP profile counts when the site serves it publicly at /.well-known/ucp and it passes the official validator; a profile behind a login or a bot wall can't be counted.
UCP by traffic rank
Every ecommerce site we read in each traffic band, by what we found. The figure on the right is the band's share of live ecommerce sites with a valid public UCP profile. The biggest sites turn automated visitors away most, so the top bands' figures are the least certain
Capabilities declared
Of the about 1.2 million sites with a valid public UCP profile; a site can declare several
Spec adoption
Every capability in the 2026-08-25 release, and the share of the about 1.2 million sites with a valid public UCP profile that declare it; a site can declare several
Every site read, by result
What a request for the UCP profile found, as shares of every ecommerce site read (about 4 million). Rows marked out of the live count are left out of the about 3.7 million live ecommerce sites; the headline 31.8% is of those live sites
| Valid UCP profile | 1.2 million | 29.3% |
| No UCP profile | 2.5 million | 62.5% |
| Unreachable (DNS, certificate, server error, timeout) out of the live count | 98,000 | 2.5% |
| Turns automated visitors away out of the live count | 160,000 | 4.1% |
| Not live: closed, password, forwards, not a store out of the live count | 41,000 | 1% |
| Profile fails validation | 23,000 | 0.6% |
UCP by platform
Live ecommerce sites on each platform; publish and valid are shares of them (publish = serves a UCP profile, valid = the profile passes)
27 of the 82 platforms we identified serve a UCP profile on at least one site; on 22, at least one passes the official validator.
| Platform | Live sites | Publish | Valid | |
|---|---|---|---|---|
| 1 | WooCommerce | 880,000 | under 0.1% | under 0.1% |
| 2 | Shopify | 720,000 | 100% | 100% |
| 3 | Wix | 400,000 | 99.6% | 98.7% |
| 4 | Squarespace | 230,000 | under 0.1% | under 0.1% |
| 5 | PrestaShop | 59,000 | 0.1% | under 0.1% |
| 6 | 1C-Bitrix | 49,000 | under 0.1% | under 0.1% |
| 7 | Tiendanube | 47,000 | under 0.1% | under 0.1% |
| Platform | Live sites | Publish | Valid | |
|---|---|---|---|---|
| 8 | OpenCart | 45,000 | under 0.1% | under 0.1% |
| 9 | Square Online | 30,000 | none | none |
| 10 | Magento | 27,000 | 0.8% | 0.5% |
| 11 | Cafe24 | 18,000 | none | none |
| 12 | BigCommerce | 16,000 | 96.9% | 96.9% |
| 13 | Shoptet | 15,000 | over 99.9% | over 99.9% |
| – | Platform not identified | 1,030,000 | 0.5% | 0.2% |
HTTP answers at /.well-known/ucp
Of the about 3.7 million live ecommerce sites
Release declared
Of the about 1.2 million sites with a valid public UCP profile
CDN in front of the store
Of the about 3.7 million live ecommerce sites, behind each CDN
Bot management in front of the store
Of the about 3.7 million live ecommerce sites: what an agent meets before the profile
The stores UCP Checker checks every day: how well UCP agents can use what they publish. Not the whole market; the wider web covers that.
What we found at /.well-known/ucp
Of the stores we check
Which release
Of the stores we check with a valid profile
What the score says
Of the stores we check that we could score
What profiles declare
Share of valid profiles; a profile can declare several
AI crawlers disallowed in robots.txt
Stores we check whose robots.txt disallows each crawler
Transports declared
Of the stores we check with a valid profile; a profile can declare several
What else an agent can read
Stores with a valid profile that also serve each
MCP tools listed
Stores that declare MCP, listing each tool the spec names
Accounts and signing
Of the stores we check with a valid profile
Rules passed least often
Share passing each UCP Checker rule, of the stores it applies to; security rules are never shown
Found and usable
Each bubble is the share of stores with a valid profile at that point: across, how many of five things an agent can find (llms.txt, WebMCP, sitemap, Open Graph, Organization schema); up, how many capabilities the profile declares
The five things: llms.txt, WebMCP, a sitemap, Open Graph tags and Organization schema. Hover or tap a bubble for what it means.
Every open proposal and recent merge in the spec repo, by area and stage; the Area and Stage filters carry the counts.
| # | Change | Area | Stage | Date |
|---|---|---|---|---|
| 1057 | Clarify the completion boundary | Payments | merged | 7 Nov |
| 1031 | Define list_price once as a reference price | – | merged | 6 Nov |
| 1021 | Use the checkout-sessions path in the UCP-Agent example | Shopping | merged | 31 Oct |
| 644 | Refactor AGENTS.md into a dual-persona playbook | Shopping | merged | 29 Oct |
| 963 | Cite the RFC 9421 sections that define the ECDSA raw r||s rule | Common | merged | 26 Oct |
| 672 | Fix checkout status lifecycle diagram to match spec prose | Payments | merged | 23 Oct |
| 891 | Clarify RFC 9728 authorization_servers issuer rules and multi-entry discovery | Common | merged · planned for 2026-12-08 | 20 Oct |
| 980 | Make discovery steps agree with Selection | – | merged | 19 Oct |
| 784 | Document required REST headers | Shopping | merged · planned for 2026-12-08 | 19 Oct |
| 731 | Repair the garbled JWT grant single-use bullet | Shopping | merged | 19 Oct |
| 881 | Clarify empty payment object on complete for deferred terms | Payments | merged · planned for 2026-12-08 | 19 Oct |
| 681 | Add tax-inclusive (VAT) totals example | Payments | merged | 19 Oct |
| 755 | Fix the fulfillment discount examples | Payments | merged | 19 Oct |
| 913 | Show the mandated headers on every 303 example | Shopping | merged | 16 Oct |
| 933 | Don't treat 304 Not Modified as a forbidden redirect | Common | merged | 16 Oct |
| 795 | Cover ucp-agent in the example signed request | Shopping | merged | 14 Oct |
| 888 | Add contributing guide to ucp.dev documentation | Common | merged | 12 Oct |
| 910 | Clarify line_items requirement in cart-to-checkout conversion | – | merged | 9 Oct |
| 789 | Require explicit buyer action before cart merge | Shopping | merged | 7 Oct |
| 883 | List supported extensions for complete_checkout | Shopping | merged | 7 Oct |
| 819 | Centralize shared REST header requirements via macro | Shopping | merged | 5 Oct |
| 869 | Clarify that authentication gates business-populated response values | Common | merged | 5 Oct |
| 889 | Add Aven logo to partner carousel | Shopping | merged | 5 Oct |
| 874 | Update landing page domain carousel images | – | merged | 30 Sep |
| 875 | Add Lodging Booking draft spec announcement to ucp.dev | Lodging | merged | 30 Sep |
Showing the 25 with the latest activity of 32. All in the spec repo ›
The wider web is our monthly market read of ecommerce sites with measurable shopper traffic; the stores we check are checked every day. Each chart says what its shares are of. Methodology → · Citing and reuse: quote any figure with credit to UCP Checker and a link to the page and month; anything more needs our permission.
