UCP Score for catalog.shopify.com
77 out of 100, grade B: nearly there. The missing 23 points are spread across Discovery and Conformance and Capabilities. One spec break on the status page isn't counted in the score.
Discovery 85Conformance 88Capabilities 53release 2026-08-25
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "OnlineStore",
"name": "Yourstore",
"url": "https://yourstore.com",
"logo": "https://yourstore.com/logo.png",
"sameAs": [
"https://twitter.com/yourstore",
"https://www.instagram.com/yourstore"
],
"contactPoint": {
"@type": "ContactPoint",
"telephone": "+1-800-000-0000",
"contactType": "Customer Service"
}
}
</script>
Drop into <head> or end of <body>. Use OnlineStore (more specific) when the entire site is an ecommerce store; Organization is the generic fallback.
# llms.txt # Public brief for AI agents about Yourstore # About One or two sentences on what you sell, who you sell to, and any defining context (founded, mission, sustainability stance, etc.). # Product Categories - Category one - Category two - Category three # Policies - Returns: e.g. 30 days, full refund - Shipping: e.g. Free over $30, 3-5 business days - Any other policy worth surfacing (cruelty-free, vegan, made-to-order, etc.) # Agent Capabilities - UCP profile: /.well-known/ucp - Supported flows: cart, checkout, tokenized payment, etc. - Anything explicitly NOT supported (e.g. "no subscription products via agent") # Contact [email protected]
Save as /llms.txt at your site root. Plain text, written for an LLM audience. The format is informal: these section headings are a working convention, not a spec. Replace the placeholders with your own brand details and update when policies or product lines change.
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://yourstore.com/</loc>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://yourstore.com/products</loc>
<changefreq>daily</changefreq>
</url>
<!-- one <url> entry per indexable page -->
</urlset>
Most ecommerce platforms generate sitemap.xml automatically. If yours does not, generate one and serve it at /sitemap.xml.
{
"keys": [
{
"kty": "EC",
"crv": "P-256",
"x": "<base64url x>",
"y": "<base64url y>",
"kid": "store-2026-10",
"use": "sig",
"alg": "ES256"
}
],
"ucp": { ... }
}
Create a P-256 (ES256) key pair: ES256 is the one algorithm every UCP agent must be able to check. Add the public key to a "keys" list at the top level of your UCP profile, as in the example, with its own "kid", and keep the private key on your server. The spec recommends a new key every 90 days: publish the new one next to the old, sign with it, and remove the old key a week later.
HTTPS, UCP profile reachable, AI bot access, Open Graph tags, Mobile viewport metaShow
- HTTPS · Profile URL uses https://
- UCP profile reachable · HTTP 200
- AI bot access · robots.txt allows /.well-known/ucp
- Open Graph tags · og:title and og:type/url present
- Mobile viewport meta · <meta name="viewport"> present
Profile passes schema validation, Protocol version present and well-formedShow
- Profile passes schema validation · No structural errors
- Protocol version present and well-formed · Version: 2026-08-25
Transports declaredShow
- Transports declared · MCP
The score measures what the profile declares across the three areas above. These break a rule in the spec that agents follow, so they can stop an agent before the score matters.
