How to Read Your Shopify products.json Like an AI (Step-by-Step Audit)
By Steve Merrill | April 28, 2026
There's a URL on every Shopify store that AI shopping tools crawl before they decide whether to recommend your products. Most merchants don't know it exists. It's public. No login required. And what's in it is usually not what merchants think.
It's /products.json.
I was on a sales coaching call a few weeks ago, walking through store audits with a group, and I asked everyone to open their products.json. Most had never seen it. One merchant had 400 products. Her endpoint returned 30 and stopped. She had no idea the rest of her catalog was essentially invisible to AI crawlers pulling from the default endpoint.
That's the gap I want to fix today.
What is products.json and why does it matter for AI shopping?
Your Shopify store's products.json is the structured data feed that AI shopping agents actually read. Not your product pages. Not your images. The raw JSON.
ChatGPT Shopping, Perplexity, and Google AI Overviews all pull product data from structured feeds. Shopify's catalog syndication layer -- the one that powers the Agentic Commerce Protocol integration -- is built on top of this data. What's in your products.json is what ends up in the AI recommendation pipeline.
The difference between a product that gets recommended and one that gets skipped often comes down to five fields most merchants ignore.
How do you access your store's products.json?
Open your browser and go to: yourstore.myshopify.com/products.json
That's it. Public. No API key. Anyone can read it -- including AI crawlers.
By default you get 30 products. To get up to 250:
yourstore.myshopify.com/products.json?limit=250
And paginate with:
yourstore.myshopify.com/products.json?limit=250&page=2
If you have a large catalog, AI tools do paginate through all pages. But if your first 30 products have thin data, you've already lost the recommendation before they get to page 2.
What does a weak products.json look like?
Here's what I see constantly in audits. A product entry that looks like this:
{
"title": "Blue Shirt",
"body_html": "Great shirt. Perfect fit.",
"product_type": "",
"vendor": "My Store",
"tags": [],
"variants": [{"price": "39.99", "sku": ""}]
}
An AI agent reading that has almost nothing to work with. "Blue Shirt" matches approximately zero buyer queries. "Great shirt" is not a product description. Empty tags mean no keyword matching. No product type means no category classification.
That product doesn't get recommended. It gets skipped.
What fields actually matter for AI recommendations?
Field 1: title
Your product title is the primary matching signal. AI agents use it to determine whether your product is relevant to a buyer's query.
"Blue Shirt" is not a title. "Men's Classic Fit Blue Oxford Shirt - Button-Down Collar - Sizes S-3XL" is a title. Specific. Descriptive. Contains the actual words buyers use when asking ChatGPT to find a product.
According to Schema.org's Product specification, a useful product name includes brand, material, style, and size range when relevant. AI agents are trained on this convention. Your titles should follow it.
Field 2: body_html
This is your product description. AI agents need at least 150 words of specific, factual copy to match a product to buyer queries confidently.
"Great shirt. Perfect fit." is not a description. It's a placeholder. And it's why AI skips you.
The body_html field should answer: What is this? Who is it for? What makes it different? What problems does it solve? What materials, dimensions, or specs does it have? Those are the signals AI agents match against buyer intent.
Field 3: product_type
This field classifies your product in Shopify's taxonomy. Empty or generic product types (like "Default" or "Apparel") hurt your visibility in AI category searches.
Use the Shopify standard product taxonomy where possible. "Men's Dress Shirts" is more useful to an AI agent than "Shirts".
Field 4: tags
Tags are how AI agents match your products to queries that don't exactly match your title. A product titled "Classic Oxford Shirt" that's tagged with "office wear, business casual, interview outfit, professional clothing, button-down" will get matched to far more buyer queries than the same product with no tags.
Think of tags as your long-tail keyword coverage inside the product feed itself.
Field 5: variant data
Look at the variants array for each product. Each variant needs its own price, sku, inventory_quantity, and weight. Missing variant data causes AI agents to treat all sizes and colors as identical -- and sometimes recommend the wrong variant, which leads to abandoned carts and returns.
Variants with inventory_quantity: 0 and no inventory_policy: "continue" flag will often be excluded from recommendations entirely. If you've had out-of-stock variants sitting in your feed for months, they're actively dragging down your recommendation rate.
How do you fix a weak products.json?
You don't edit the JSON directly. The feed is generated automatically from your Shopify catalog. To fix it, fix your products.
Here's the order of operations I recommend:
Start with your top 20 products. These drive most of your revenue, so the return on fixing them first is highest.
For each one:
- Expand the title to include brand, material, style, and use case
- Rewrite the description to at least 200 words with specific, factual copy
- Set the product_type field using Shopify's standard taxonomy
- Add 8-15 specific tags covering use case, audience, material, and occasion
- Check every variant: confirm SKUs are filled, inventory quantities are current, and prices are accurate
After you update products in Shopify admin, the changes flow into products.json within minutes. Reload the endpoint to verify.
What should your products.json score look like after an audit?
A strong products.json for AI recommendations has:
- Titles averaging 8+ words with brand, material, or style included
- Descriptions averaging 200+ words per product
- Product type field filled for every product
- Tags averaging 8+ per product, covering multiple query variations
- Zero variants with empty SKU fields in your top-selling products
- No products with inventory_quantity of 0 unless marked continue or discontinued
Most stores I audit score well below this. The gap is real. And it's fixable in an afternoon if you start with your top 20 products.
FAQ
What is Shopify's products.json?
products.json is a public API endpoint on every Shopify store (yourstore.myshopify.com/products.json) that returns structured product data in JSON format. It's the primary feed AI shopping tools like ChatGPT Shopping and Perplexity crawl to index your catalog.
Do AI shopping tools use products.json?
Yes. ChatGPT Shopping, Perplexity, and Google AI Overviews all pull product data from structured feeds. Shopify's products.json is one of the primary sources, alongside the Shopify Catalog syndication layer that feeds directly into the Agentic Commerce Protocol.
How many products does products.json show?
By default, products.json returns 30 products per page. You can increase this to 250 with ?limit=250, and paginate with ?page=2, ?page=3, etc. to get your full catalog. AI crawlers typically paginate through all pages.
What fields matter most in products.json for AI visibility?
The five highest-impact fields are: title (descriptive, not generic), body_html (at least 150 words of specific product copy), product_type (accurate category), tags (detailed, keyword-rich), and variant data including price and inventory_quantity.
Can I edit products.json directly?
No. products.json is generated automatically from your Shopify product catalog. To improve what shows in the feed, you update your products in the Shopify admin -- titles, descriptions, product types, tags, and variant data all flow into products.json automatically.
Want to know exactly how your store looks to AI right now? Check Your Store's AI Readiness →
