Methodology

Every check in a catalog audit

30 checks, each tied to a rule in Google Merchant Center's product data specification or to what AI shopping agents can actually read — with what it costs you and how to fix it in Shopify. Every report links its issues back here.

Google Shopping & ad feeds

Product-level checks against Google Merchant Center's product data specification. Critical ones get items disapproved; warnings throttle reach.

No Product structured data on the page

Google can't verify price/availability from the page and AI agents see an unlabelled web page instead of a product.

How to fixAdd schema.org Product (or ProductGroup) JSON-LD to the product template. Most current Shopify themes output it; if yours doesn't, add it to the product section's Liquid or use a structured-data app. The fixed JSON-LD in a report is a working template.

CriticalAd feedAI agents

Structured data block fails to parse

A broken JSON-LD block is silently ignored by every crawler — the product data in it doesn't exist for them.

How to fixRun the block through Google's Rich Results Test or the Schema Markup Validator and fix the syntax error — usually an unescaped quote or a trailing comma. In Liquid, pass every dynamic value through the json filter.

CriticalAd feedAI agents

Structured-data price differs from the live price

Merchant Center flags "Mismatched value (page crawl) [price]" and disapproves the item; repeated mismatches risk an account-level warning.

How to fixOutput each variant's current price in the JSON-LD from the same value the page shows, and make sure sale prices and Shopify Markets currency conversion update the markup too.

CriticalAd feed

Structured-data availability differs from real stock

Google disapproves for "Mismatched value [availability]"; agents recommend items that can't be bought (or skip ones that can).

How to fixGenerate availability per variant from variant.available (InStock or OutOfStock) instead of hard-coding it, with one Offer per variant.

CriticalAd feedAI agents

Offer has no priceCurrency

Without a currency the price can't be validated, so automatic item updates and price checks fail.

How to fixAdd priceCurrency to every Offer, using the visitor's currency (cart.currency.iso_code in Liquid).

CriticalAd feed

Invalid GTIN / barcode

Merchant Center rejects invalid GTINs ("Invalid value [gtin]"); the item is disapproved until fixed.

How to fixCorrect the barcode in Shopify admin (product → variant → Barcode) to the 8-, 12-, 13- or 14-digit GTIN from the manufacturer or your GS1 record. If the product has no GTIN, clear the field rather than entering a SKU.

CriticalAd feed

Missing description

Description is a required feed attribute; agents have nothing to reason over.

How to fixWrite a description that covers what the product is, what it's made of, its fit or dimensions, and who it's for.

CriticalAd feedAI agents

No product image

Image link is required — the item can't serve in Shopping at all.

How to fixAdd at least one product image, and point each variant to its own image.

CriticalAd feedAI agents

Main image below Google's minimum size

Images under 100×100 (250×250 for apparel) are disapproved.

How to fixUpload main images of at least 800×800 px; Shopify serves smaller sizes automatically, and Google's floor is 100×100 (250×250 for apparel).

CriticalAd feed

Purchasable variant priced at 0

Zero prices are rejected as "Invalid value [price]".

How to fixSet a real price on purchasable variants, or make free samples and gifts unavailable so they drop out of feeds.

CriticalAd feed

GTIN in a restricted / in-store range

Store-internal (02/04/2x) and coupon (05/98/99) ranges aren't accepted as product identifiers.

How to fixReplace store-internal or coupon codes with the product's real GTIN. If it has none, leave the barcode empty and submit identifier_exists = no in your feed.

WarningAd feed

No GTIN on any variant

Branded products without GTINs get "limited performance" in Shopping and can't be matched to the same product across sellers by agents.

How to fixAdd the manufacturer's GTIN to each variant's Barcode field. For your own brand, license GTINs from GS1; for custom or handmade items without one, submit identifier_exists = no.

WarningAd feedAI agents

Barcodes exist in Shopify but aren't exposed in structured data

The identifiers are already there — the theme just doesn't publish them, so crawlers and agents never see them.

How to fixAdd gtin to each variant's Offer in the theme's JSON-LD from variant.barcode — the data is already in Shopify.

WarningAd feedAI agents

No brand in structured data

Brand is required for most new products in Shopping and is the first filter agents apply.

How to fixAdd brand to the JSON-LD (most themes use product.vendor) and make sure the vendor field holds the actual brand name.

WarningAd feedAI agents

Apparel item: color / size / gender / age group not published

Google requires these for apparel in key markets (US, UK, DE, FR, JP, BR), and agents filter on them. If they only live in app metafields, no crawler or agent can see them.

How to fixPublish color and size as variant options, and gender and age group as product metafields that both your JSON-LD and your feed read (Shopify's Google & YouTube app uses the mm-google-shopping namespace).

WarningAd feedAI agents

Material / color / pattern not in structured data

These are the attributes Google and AI agents filter on; they're absent from the machine-readable layer.

How to fixPublish color, material and pattern in the JSON-LD (the Product properties of the same names), filled from variant options or metafields.

WarningAI agentsAd feed

Very thin description (< 150 characters)

Short copy limits which searches the item can match in Shopping and gives agents nothing to quote.

How to fixExpand the description past 150 characters with material, dimensions, use and care — the facts agents quote and feeds match on.

WarningAd feedAI agents

Title over 150 characters

Google truncates at 150 characters; the words that sell get cut.

How to fixKeep titles under 150 characters, ideally under 70, with brand, product type and the key attribute first.

WarningAd feed

Promotional text or shouting in title

"Free shipping", "SALE" or ALL-CAPS in titles violates Shopping editorial policy.

How to fixRemove promotional text, prices and all-caps words from titles; run offers as Merchant Center promotions instead.

WarningAd feed

No product type

Without a product type, mapping to Google's taxonomy (and bidding by category) falls back to guesswork.

How to fixFill in the product type (or Shopify product category) for every product so it maps cleanly to Google's product taxonomy.

WarningAd feedAI agents

Very short title (< 25 characters)

Feed titles that include brand, product type and key attribute get more impressions.

How to fixLengthen the feed title to brand + product type + key attribute, e.g. "Acme Women's Merino Crew Sweater – Navy".

InfoAd feedAI agents

No return / shipping policy in structured data

Google shows shipping and returns annotations only when they're marked up; agents compare stores on exactly this.

How to fixAdd hasMerchantReturnPolicy and shippingDetails to the Offers in your JSON-LD, or configure return and shipping policies in Merchant Center.

InfoAI agentsAd feed

AI shopping agents

What ChatGPT, Perplexity and Google AI Mode need to recommend a product: machine-readable facts, visible without JavaScript.

Product structured data only appears after JavaScript runs

Google renders it eventually, but most AI crawlers (OAI-SearchBot, PerplexityBot, ClaudeBot) don't execute JavaScript — to them the product has no structured data at all.

How to fixRender the JSON-LD server-side in the theme's Liquid instead of injecting it with an app script, so it's in the HTML crawlers download. If an app adds it, look for a server-side output setting or switch apps.

CriticalAI agents

No material, measurements or specs in the product data

Agents filter on facts ("merino, under 300g, machine-washable"). With none, the product can't match those queries.

How to fixAdd the facts shoppers filter on — material, dimensions, weight, care — to the description and, better, to metafields published in the JSON-LD as additionalProperty.

CriticalAI agents

Variants aren't described in structured data

Agents can't tell which sizes/colors exist or are in stock, so they can't answer "do you have it in M, in blue?"

How to fixDescribe the product as a ProductGroup with hasVariant, or one Offer per variant, so each size and color carries its own price, availability, SKU and GTIN.

WarningAI agents

Specs buried in prose, not structured

Facts exist in paragraphs but not as attributes; agents and feeds have to guess, and usually drop them.

How to fixMove specs out of paragraphs into product metafields and publish them as additionalProperty name/value pairs in the JSON-LD.

WarningAI agents

Images have no alt text

Crawlers and agents that don't run vision read nothing from the images.

How to fixAdd alt text to product images in Shopify admin, describing the product, its color and the view.

InfoAI agents

Store-wide

Checks that apply to the whole storefront rather than a single product.

robots.txt blocks AI shopping/search agents

These crawlers power product answers in ChatGPT search and Perplexity; blocking them removes the store from those answers.

How to fixRemove the Disallow rules for search and assistant crawlers (OAI-SearchBot, ChatGPT-User, PerplexityBot, Claude-SearchBot) in Shopify's robots.txt.liquid. Training crawlers can stay blocked.

CriticalAI agents

Refund or shipping policy page missing

Agents and Google's merchant listings look for these policies before recommending a store.

How to fixPublish refund and shipping policies in Shopify admin (Settings → Policies) so they're served at /policies/, and link them from the footer.

WarningAI agents

robots.txt opts out of AI training crawlers

Fine as a policy choice — noted so it isn't confused with blocking shopping agents.

How to fixNothing to fix. Keep it if you don't want your content used for model training; it doesn't affect shopping answers.

InfoAI agents

Run all 30 checks on your store

Free, read-only, about a minute. You'll also get your five worst products rebuilt.

Run free audit