By Steve Merrill · September 4, 2026
What is a Shopify structured data audit, and why does AI care?
A structured data audit is a check of the machine-readable code on your store that tells AI assistants what you sell, what it costs, whether it's in stock, and how buyers rate it. AI cares because it can't guess. When the markup is missing or wrong, ChatGPT, Gemini, and Perplexity skip your product and recommend a competitor whose data is clean.
I've run this audit on dozens of Shopify stores. The same gaps show up every time. Missing offers. Fake-looking ratings. Two Product blocks fighting each other. None of it is hard to fix. You just have to check in the right order.
This is that order. Work top to bottom. Each item tells you what to check, why AI cares, and how to fix it in Shopify.
Step 1: Is your Product schema complete?
Start here because Product schema is the spine of everything. Run one product URL through Google's Rich Results Test and confirm it detects a Product with name, image, description, sku, and brand. If any of those are blank, that's your first fix.
Why AI cares: assistants read these fields to match your product to a shopper's question. No brand, no description, and you're a blank row in their database.
How to fix in Shopify: most themes output Product JSON-LD in theme.liquid or a snippet. Check that it pulls product.title, product.featured_image, and product.description. If your theme is thin, a schema app can fill the gaps. Just don't run both. More on that in Step 9.
Step 2: Does every product have an Offer with real availability?
An Offer holds price, currency, and stock status. AI assistants filter hard on availability. A product marked OutOfStock gets dropped from recommendations, and a product with no availability field at all gets treated as unknown, which is almost as bad.
Check that each Offer includes price, priceCurrency, and an availability value from schema.org/ItemAvailability that matches your actual inventory.
How to fix in Shopify: map availability to real stock with theme logic, so InStock shows when product.available is true and OutOfStock shows when it's false. Hard-coded "always in stock" markup is the version that burns you. AI recommends the item, the shopper lands on a sold-out page, and trust is gone.
Step 3: Are BreadcrumbList and canonical tags in place?
Breadcrumbs and canonicals are the two structural checks most merchants skip. BreadcrumbList shows AI how your catalog is organized, so it understands that a product sits inside a collection inside your store. Canonical tags point every version of a page to one true URL.
Shopify creates variant URLs, parameter URLs, and collection-path URLs for the same product. Without a clean canonical, your ranking and citation signals split across all of them. Confirm each product page has a single rel="canonical" pointing to the primary product URL, per Google's guidance on duplicate URLs.
How to fix in Shopify: the default theme sets canonicals through canonical_url, but apps and custom code sometimes override it. Verify the rendered tag, not the theme file. And add BreadcrumbList markup to collection and product templates if your theme doesn't already.
Step 4: Are your Organization and contact fields filled in?
AI assistants want to know who's selling. Organization schema (or LocalBusiness if you have a storefront) gives them your name, logo, social profiles through sameAs, and a contactPoint with support details. Thin seller identity reads as low trust.
Here's the thing. A recommendation is a trust transfer. When Gemini suggests your product, it's putting its name behind you. Complete Organization data makes that easier.
How to fix in Shopify: add one Organization block sitewide with name, url, logo, sameAs links to your real social profiles, and a contactPoint with email or phone. If you have a physical location, use LocalBusiness with address and hours.
Step 5: Do you have FAQPage, review, and AggregateRating markup that's real?
FAQPage schema on product and support pages feeds AI the exact buyer questions it's trying to answer. Review and AggregateRating markup give it social proof. Both help, but only when they're honest.
Confirm ratingValue and reviewCount are backed by reviews that actually show on the page. Google's review snippet documentation is clear that ratings must reflect genuine, visible reviews. Faked or hidden ratings are a fast way to get markup ignored or penalized.
How to fix in Shopify: most review apps (Judge.me, Loox, Yotpo) emit AggregateRating automatically. Confirm it's rendering, and confirm the count matches what a shopper sees. For FAQs, mark up real questions, not filler you wrote to game the schema.
Step 6: Does dateModified update when your page changes?
Freshness is a signal AI leans on for commerce, where price and stock move constantly. If your dateModified shows a date from two years ago, assistants may treat your data as stale and reach for a source that looks current.
Check that dateModified reflects the last real change to price, inventory, or copy, not the day the theme was installed.
How to fix in Shopify: bind dateModified to product.updated_at so it moves when the product does. On blog and page content, tie it to the actual edit date. Small field. Big trust signal.
Step 7: Are duplicate or conflicting schema blocks polluting your pages?
This is the pitfall that quietly wrecks the most stores. Your theme emits Product schema. Then a review app emits its own. Then an SEO app adds a third. Now a product page has two prices and two different rating values, and AI has no idea which to believe.
We audited a store last month that had three AggregateRating blocks with three different scores. The assistant just ignored all of them. Blank.
How to fix in Shopify: run the product URL through the Rich Results Test and count the detected Product items. There should be one. If there are two or more, decide on a single source (usually the theme for Product, the review app for ratings) and disable the duplicates in the other tools.
How does this connect to agentic commerce?
Clean structured data is the entry fee for the next phase of AI shopping. Agents are starting to compare and buy on a shopper's behalf, and they read structured data to do it. A store with broken schema is invisible to that traffic before the race even starts.
This is the exact groundwork our agentic-commerce readiness work at WRKNG Digital starts with. Audit the data, fix the gaps, then build toward agent-ready checkout. You can't skip the first step and expect the rest to hold.
Frequently asked questions
Does Shopify add structured data automatically?
Partly. Most Shopify themes emit some Product schema, but coverage is uneven and often incomplete. You still need to audit for missing offers, availability, breadcrumbs, and Organization fields, and to remove duplicate blocks added by apps.
Which structured data matters most for AI shopping visibility?
Product schema with a complete Offer, real availability, and AggregateRating backed by visible reviews. Those fields tell AI assistants what you sell, whether it's in stock, and how buyers rate it, which is exactly what a recommendation needs.
How do I find duplicate schema on my Shopify store?
Run a product URL through Google's Rich Results Test and view the detected items. If you see two Product entries or two different AggregateRating values, your theme and a review or SEO app are both emitting schema. Keep one source and disable the other.
How often should I run a structured data audit?
Do a full audit once a quarter and a quick spot check after any theme change, app install, or catalog migration. Those three events break schema more than anything else.
Get your store agent-ready
Run this checklist top to bottom and your store stops being a blank row in the AI's database. If you want help fixing the gaps and building toward agent-ready checkout, see our agentic-commerce readiness work.

