DEV Community

Cover image for I Checked 162 Shopify Stores for AI Shopping Agents. The Product Data Is the Problem.
Asad Abdullah Zafar
Asad Abdullah Zafar

Posted on Originally published at loop2tech.com

I Checked 162 Shopify Stores for AI Shopping Agents. The Product Data Is the Problem.

On 25 October 2026 I pointed a script at 271 direct-to-consumer brands that sell on Shopify and asked one question: if an AI shopping agent lands on a product page today, is it allowed in, and does it find what it needs?

162 stores could be audited. The short version: nobody is blocking the agents. The product data is what's missing.

What the script checked

For each store it:

  • confirmed the store runs on Shopify by reading its public product list
  • read robots.txt and tested 12 AI user agents against a real product URL: six search and shopping agents (OAI-SearchBot, ChatGPT-User, PerplexityBot, Perplexity-User, Claude-SearchBot, Claude-User) and six training crawlers (GPTBot, ClaudeBot, Google-Extended, Applebot-Extended, CCBot, Amazonbot)
  • opened up to three ordinary in-stock products and parsed the product JSON-LD
  • checked for /llms.txt, and whether it was Shopify's generated file or a hand-written one

A store counts as having a field when most of the pages read carry it, so one odd product doesn't decide the result.

Finding 1: robots.txt is not the problem

Zero of 162 stores blocked an AI search or shopping crawler from product pages. Two blocked any training crawler. That's mostly Shopify's default robots.txt: carts, checkouts and accounts are disallowed, product pages are open, and almost nobody edits it.

Finding 2: 94% serve an llms.txt they probably didn't write

153 stores served /llms.txt. For 135 of them (83%) it was the "Agent Instructions" file Shopify now generates, pointing agents to Shopify's own tools and checkout. Only 18 stores had written their own.

Finding 3: the fields a merchant has to add are the ones missing

Across the 156 stores whose product pages were read:

Field in product JSON-LD Share of stores
Any Product structured data 94%
Price 93%
Stock availability 91%
GTIN or barcode 40%
Review rating 24%
Return policy 14%
Shipping details 12%

Theme output covers price, brand and availability. Barcodes, ratings, shipping and returns depend on the merchant. Only 39% gave price, availability and a GTIN together, which is the minimum an agent needs to match a product across sellers. Nine big brands, several on headless builds, had no product structured data at all.

Check your own store in the console

Open a product page and run:

[...document.querySelectorAll('script[type="application/ld+json"]')]
  .map(s => JSON.parse(s.textContent))
  .flat()
  .filter(d => d['@type'] === 'Product')
  .map(p => {
    const offer = [].concat(p.offers || [])[0] || {};
    return {
      name: p.name,
      gtin: p.gtin || p.gtin13 || p.gtin12 || offer.gtin,
      rating: p.aggregateRating?.ratingValue,
      shipping: !!offer.shippingDetails,
      returns: !!offer.hasMerchantReturnPolicy,
    };
  });
Enter fullscreen mode Exit fullscreen mode

If gtin comes back undefined, fill the Barcode field on each variant in Shopify admin and check that your theme outputs it. Shipping and returns usually need a theme edit or an app, because few themes add shippingDetails or hasMerchantReturnPolicy by default.

The part developers should own

Headless and heavily customised storefronts are where this breaks. Structured data has to be rebuilt by hand, and it's easy to lose in a redesign without anyone noticing. Add a JSON-LD check to whatever runs after a theme deploy.

The full report has the method, the limits (a firewall can block bots without robots.txt saying so) and the complete dataset as a CSV, one row per store.

Full article: Are Shopify Stores Ready for AI Shopping Agents? We Checked 162 Brands

I'm Asad, I run Loop2Tech, a technology studio in Karachi building Shopify stores and custom software. If you run the snippet on your own store, I'd like to know what comes back.

Top comments (0)