33 Eyewear Stores Tested for AI Agent Readiness

By · October 19, 2026

Between 9 and 18 October 2026 I ran 36 North American eyewear storefronts through our agent-readiness checker. They belong to 35 companies, since Kits and OptiContacts are one business. Three blocked the checker itself, so 33 have a score. The average is 1.9 of 9, and most of that number was decided by the platform the store runs on, not by anything the store built.

33 eyewear stores, and the platform did most of the scoring

The 16 stores on Shopify average 3.1 of 9. The 16 on custom stacks average 0.8, and the one Magento store scored 0. Two of each Shopify store's points are credited by platform rule, and Shopify generates its llms.txt as well. Counting only what the checker found, the average across all 33 is 0.9. Counting only what the stores did themselves, it is under half a point. Not one store hosts an agent protocol of its own, and every contact-lens retailer we could read scored 0.

1.9 of 9
Average agent readiness across 33 North American eyewear stores (October 2026)
0.9
The same average counting only what the checker found, with no points credited by platform rule
0 of 33
Stores hosting MCP, A2A, ANP, AP2 or an OpenAPI file of their own

This is the second data set I have run this way. The first was 50 mid-market DTC brands across five verticals, and the shape repeats: the platform hands out a floor, and almost nobody builds above it.

How eyewear stores score on AI agent readiness

The checker looks for nine things an AI shopping agent could use: MCP, UCP, WebMCP, A2A, ANP, AP2, an OpenAPI file, an llms.txt and a Wikidata entity. Each one is a plain request to a public address. No AI model decides whether anything passes.

The distribution is low and lumpy: 10 stores at 0, 2 at 1, 6 at 2, 12 at 3 and 3 at 4. Nobody went past 4.

Group Stores Average score
Sunglasses and performance brands 8 2.9 of 9
Online-first and DTC brands 14 2.1 of 9
Optical chains and retailers 7 1.3 of 9
Contact-lens retailers 4 0 of 9

Shopify vs custom: the platform decides the eyewear score

Split the stores by platform and the gap is the whole story. Shopify stores average 3.1, custom stacks 0.8. Two of those Shopify points come from the platform: Shopify supplies a storefront MCP endpoint and UCP support to every store, per Shopify's agentic commerce docs, and our checker credits them on that basis rather than finding them on the store.

Take those two points away and a Shopify store still shows about one more, usually an llms.txt file. That file comes from the platform too: Shopify's developer documentation says it manages /llms.txt for every store by default, mirroring the store's /agents.md.

So there are two numbers worth knowing. Counting what the checker found, the average across all 33 stores is 0.9. Counting only what a store did itself, the 16 Shopify stores earned 3 points between them, all from Wikidata, and the 17 custom and Magento stores earned 12. That is 0.19 per Shopify store against 0.71.

On that count the custom stores are ahead. When you read any agent-readiness score, yours included, ask which points you earned and which came with the subscription.

Contact-lens retailers scored zero for AI shopping agents

Four contact-lens retailers returned a score: EZContacts, LensDirect, Contact Lens King and ContactsDirect. All four scored 0. None had an llms.txt, a Wikidata entry or anything else on the list.

OptiContacts also scored 0; it is run by Kits, so I count it with Kits in the online-first group. 1-800 Contacts blocked the checker, so it is not in the averages.

These stores live on repeat orders and a prescription check. My reading is that this is the hardest flow for an agent to finish today, and nothing in the data points the other way. It is also the category where an agent re-ordering for a customer would make the most sense.

Wikidata was the only lever above the eyewear floor

Three stores reached 4 of 9: Pair Eyewear, Diff Eyewear and Eyemart Express. All three are on Shopify and all three have a Wikidata entity. Stores with an entity averaged 2.4; stores without one averaged 1.65.

Nobody built anything of their own. WebMCP, A2A, ANP, AP2 and OpenAPI were empty on all 33 stores. The first eyewear store that ships one real signal moves ahead of the whole category in one step.

The llms.txt gap between Shopify and custom eyewear stores

Twenty of the 33 stores have an llms.txt: 15 of the 16 on Shopify, and 5 of the other 17. The Shopify files are the platform's default, so that gap says nothing about effort. Roka is the one Shopify store without one.

On a custom stack llms.txt is a choice, and the cheapest point on the list. Twelve of the 17 custom and Magento stores have not taken it.

What the AI crawler test shows, and what it does not

Before each run the checker sends a request with an ordinary browser user-agent. If that is refused, the store is blocking our checker and I read nothing into the rest. That happened on three stores: Clearly, Pearle Vision and 1-800 Contacts.

For the other 33 the checker sent 18 requests, each carrying the user-agent of a known crawler such as GPTBot, ClaudeBot, PerplexityBot or Bingbot. Twenty-five stores answered all 18. Eight refused some or all of them: Warby Parker and Blenders Eyewear refused all 18; EyeBuyDirect, FramesDirect, LensCrafters and Target Optical each let 3 through; ContactsDirect let 2 through and Zenni Optical 15.

Of those, I read the robots.txt of Warby Parker, EyeBuyDirect, LensCrafters and Target Optical by hand. None names an AI crawler, so the refusals happen at the firewall.

That does not prove those stores block ChatGPT or Claude. Our requests come from our own servers and only claim to be those crawlers. A firewall that checks whether a request claiming to be Bingbot really comes from Microsoft will refuse ours, and it should.

The data shows how each store treats a request that claims to be a known crawler and cannot prove it. Your own server logs are the place to see how real crawler traffic is treated.

How to raise your eyewear store's agent readiness this week

  1. Open yourstore.com/llms.txt. If it returns an HTML page or a 404, add one. On Shopify it is generated for you; confirm it still resolves.
  2. Look up your brand on wikidata.org. If an entry exists, check that its official website statement lists your current domain, including after a rebrand.
  3. Read your firewall's bot rules. Find what it does with requests that claim to be Google, Bing, OpenAI or Perplexity crawlers, and decide whether that is what you want.
  4. Separate platform points from your own. Request each address in the method below on your own domain and see which ones answer because of something you built.
  5. Ship one signal nobody in eyewear has. An agent card or an OpenAPI file puts you first in the category, not tied.

Every eyewear store's agent readiness score

Sorted by score; each store name opens its full result page. "(platform)" marks a signal credited because the store runs on Shopify. An asterisk marks a floor: LensCrafters and Target Optical each refused six of the checks and ContactsDirect four, so a signal behind a refused check could exist and not be counted.

Store Platform Score Signals found Crawler requests answered
diffeyewear.com Shopify 4 of 9 MCP (platform), UCP (platform), llms.txt, Wikidata 18 of 18
eyemartexpress.com Shopify 4 of 9 MCP (platform), UCP (platform), llms.txt, Wikidata 18 of 18
paireyewear.com Shopify 4 of 9 MCP (platform), UCP (platform), llms.txt, Wikidata 18 of 18
blenderseyewear.com Shopify 3 of 9 MCP (platform), UCP (platform), llms.txt 0 of 18
bonlook.com Shopify 3 of 9 MCP (platform), UCP (platform), llms.txt 18 of 18
felixgray.com Shopify 3 of 9 MCP (platform), UCP (platform), llms.txt 18 of 18
goodr.com Shopify 3 of 9 MCP (platform), UCP (platform), llms.txt 18 of 18
knockaround.com Shopify 3 of 9 MCP (platform), UCP (platform), llms.txt 18 of 18
lookoptic.com Shopify 3 of 9 MCP (platform), UCP (platform), llms.txt 18 of 18
moscot.com Shopify 3 of 9 MCP (platform), UCP (platform), llms.txt 18 of 18
newlook.ca Shopify 3 of 9 MCP (platform), UCP (platform), llms.txt 18 of 18
ombraz.com Shopify 3 of 9 MCP (platform), UCP (platform), llms.txt 18 of 18
peepers.com Shopify 3 of 9 MCP (platform), UCP (platform), llms.txt 18 of 18
shadyrays.com Shopify 3 of 9 MCP (platform), UCP (platform), llms.txt 18 of 18
sunski.com Shopify 3 of 9 MCP (platform), UCP (platform), llms.txt 18 of 18
eyebuydirect.com Custom 2 of 9 llms.txt, Wikidata 3 of 18
framesdirect.com Custom 2 of 9 llms.txt, Wikidata 3 of 18
lenscrafters.com Custom 2 of 9 * llms.txt, Wikidata 3 of 18
roka.com Shopify 2 of 9 MCP (platform), UCP (platform) 18 of 18
warbyparker.com Custom 2 of 9 llms.txt, Wikidata 0 of 18
zennioptical.com Custom 2 of 9 llms.txt, Wikidata 15 of 18
eyeglassworld.com Custom 1 of 9 Wikidata 18 of 18
glassesusa.com Custom 1 of 9 Wikidata 18 of 18
americasbest.com Custom 0 of 9 none 18 of 18
contactlensking.com Custom 0 of 9 none 18 of 18
contactsdirect.com Custom 0 of 9 * none 2 of 18
eyeconic.com Custom 0 of 9 none 18 of 18
ezcontacts.com Custom 0 of 9 none 18 of 18
kits.com Custom 0 of 9 none 18 of 18
lensdirect.com Custom 0 of 9 none 18 of 18
opticontacts.com Custom 0 of 9 none 18 of 18
payneglasses.com Magento 0 of 9 none 18 of 18
targetoptical.com Custom 0 of 9 * none 3 of 18

How the eyewear agent readiness test was run

The checker is GEOlikeaPro's, a tool I built. The checks are deterministic requests from one server location, run between 9 and 18 October 2026. Each store was run at least twice; the numbers above are from the latest run.

Inclusion rule: the company running the store has an operating address in the US or Canada, and the store has a US or Canadian storefront with local prices and returns. I started from the eyewear retailers that come up when a US or Canadian shopper searches for glasses online, across online-first brands, optical chains, sunglasses brands and contact-lens retailers, then held every store to that rule.

Excluded: Costco and Sam's Club (optical is a department of a general retailer), Specsavers Canada (no online ordering found), SmartBuyGlasses (operator outside North America), and twelve stores whose North American operator could not be confirmed from a public source, including Oakley, Maui Jim, Costa and Smith. Visionworks refused both the checker and a person in a browser, so it could not be tested.

33 stores, one snapshot each

Thirty-three scored stores is a small sample, and each score is one reading. A restored llms.txt, a new Wikidata entry or a firewall change moves a store fast. Read this as the shape of one category in October 2026, and re-run any store for its current number.

Two categories in, the pattern holds: agentic commerce has arrived at the platform level and stopped there. The full checklist for going further is in the pillar guide.

Run the agent-readiness checker on your store and see where you land against these 33.

FAQ

How ready are eyewear stores for AI shopping agents?

Not very. Across 33 North American eyewear stores tested in October 2026, the average was 1.9 of 9 agent signals. Counting only what was measured on each store's own domain, the average was 0.9. No store hosted an agent protocol of its own.

Why do Shopify eyewear stores score higher than custom stores?

Because Shopify supplies two of the signals to every store, a storefront MCP endpoint and UCP support, and also generates an llms.txt by default. Shopify stores averaged 3.1 of 9 and custom stacks 0.8. Counting only what each store did itself, Shopify stores earned 0.19 points per store and custom stores 0.71.

Which eyewear stores scored highest for agent readiness?

Pair Eyewear, Diff Eyewear and Eyemart Express each scored 4 of 9. All three run on Shopify and all three have a Wikidata entity, which was the only signal that lifted any store above the platform floor.

Do eyewear stores block AI crawlers?

Eight of 33 refused some or all of 18 requests carrying known AI crawler user-agents, and the robots.txt files checked by hand named no AI crawler, so the refusals happen at the firewall. Because the test requests only claim to be those crawlers, this shows how a store treats unverified crawler requests, not proof that it blocks the real ones.

What is the quickest agent-readiness fix for an eyewear store?

On a custom stack, add an llms.txt: only 5 of the 17 non-Shopify stores had one. On Shopify the file is generated for you, so just confirm it still resolves. After that, check that your Wikidata entry points at your current domain.

Brands using GEO see 3× more AI citations

Start optimising your product pages for AI search engines - free tier, no credit card needed.

Start free →

Free tier · No credit card required