Merchant Center product data check
Most Merchant Center disapprovals on a Shopify store come from four attributes: brand, GTIN, a price that disagrees with the landing page, and stale availability. This reads your storefront’s own product structured data and tells you which of them are missing, across a sample of your catalogue.
No feed URL needed, no signup, no email. Results are cached for a day so we are not repeatedly fetching someone else’s shop.
Which product attributes Merchant Center actually rejects listings over
Google publishes dozens of attributes. Four of them cause most of the disapprovals on a Shopify catalogue, and one of the four gets accounts suspended rather than items disapproved.
Brand — the most common disapproval on a catalogue that resells
Every product with a recognisable manufacturer needs a brand. Stores that resell other people’s goods hit this hardest, because the brand often lives in the product title rather than in its own field, and Google will not infer it from the title. On Shopify the vendor field is what usually maps to it, and a catalogue imported from a supplier feed frequently has that field filled with the supplier’s name instead of the manufacturer’s. Both are wrong in the same way.
GTIN — required when the product has one, exempt when it does not
A GTIN is the barcode number a manufacturer assigns: EAN in Europe, UPC in North America, ISBN for books. If the product has one, Google requires it and disapproves the listing without it. If it genuinely has none — handmade goods, custom orders, your own private-label range — you are exempt, but you must declare that by marking the item as a custom product rather than by leaving the field blank. A blank field on a branded product reads as an omission, not an exemption.
Price mismatch — the one that suspends accounts
Google compares the price in the feed against the price on the landing page it crawls. A difference is treated as misrepresentation, and the penalty escalates from the item to the account. Three causes account for nearly all of it: a currency mismatch on a store selling into multiple markets, a sale price that applied on the storefront but not in the feed, and prices that include tax on one side and exclude it on the other. The last is the quiet one, because both numbers are correct in their own context.
Availability — correct at the moment Google looks, not at the moment you export
Availability disapprovals are rarely about a missing value. They are about a stale one: a product sold out three hours ago and the feed rebuilds tonight. A store on a daily feed rebuild spends a meaningful share of every day advertising things it cannot sell, and Google reads that as misrepresentation rather than lag. The fix is rebuild frequency or an inventory-driven update, not a better value in the field.
Fix the product record, not the feed
A disapproval corrected in the feed comes back on the next rebuild, because the product record is still wrong. The order that works is: find which attribute is missing and across how many products, correct it on the product records, rebuild, and only then resubmit. If the same SKUs keep failing after that, the problem is a mapping rule rather than the data — and that is a different investigation.
Questions about Merchant Center product data
Is GTIN required in Google Merchant Center?
It is required for products that have one — which in practice means anything carrying a manufacturer's barcode. Google treats a missing GTIN on a branded product as a disapproval, not a warning. Products that genuinely have no GTIN, such as handmade goods, custom items and your own private-label lines, are exempt, but you have to say so by marking them as custom products rather than by leaving the field empty.
Why are my products disapproved in Google Merchant Center?
In order of how often it happens on a Shopify store: a missing brand on products that resell someone else's goods; a missing GTIN on branded items; a price in the feed that disagrees with the price on the landing page, usually because of currency or a sale that did not propagate; an availability value that has gone stale; and images that are placeholders or contain promotional text. The first two are structural and affect the whole catalogue at once. The third gets accounts suspended rather than items disapproved, so it is the one to check first.
How do I fix Merchant Center disapprovals at scale?
Fix the source, not the feed. A disapproval corrected in the feed comes back on the next rebuild, because the product record is still wrong. The order that works: find which attribute is missing across how many products, correct it on the product records, rebuild the feed, and only then resubmit. If the same SKUs keep failing after that, the problem is a mapping rule, not the data.
Does this check read my product feed?
No — it reads your storefront. It finds product pages through your sitemap, samples up to twelve of them and reads the Product structured data those pages publish. That is deliberate: most merchants do not have their feed URL to hand, and the structured data on a product page is what every other machine reading your store sees, including Google, Bing and the AI assistants.
What does it mean if my product pages have no structured data?
It means machines have to guess what you sell from the HTML. Google can often manage; an AI assistant answering a shopping question frequently cannot, and will simply describe a competitor instead. On Shopify it is almost always the theme: most modern themes emit Product JSON-LD, and a theme that does not is worth fixing before any feed work.
Is anything stored when I run this check?
The result is cached against the domain for 24 hours, so a second request for the same store returns the same report instead of fetching it again. No IP address is stored — rate limiting uses a salted hash. Nothing is sent anywhere else and no email is asked for.
How this check works, and what it cannot see
It finds product pages through your sitemap, spreads a sample of up to twelve across the catalogue rather than taking the first twelve from one collection, and reads the Product structured data each page publishes. It follows redirects, respects a size and time cap per page, and identifies itself as MagistryToolsBot with a contact address.
What it cannot see: your actual feed, your Merchant Center account, or anything behind a password. A sample of twelve finds a systematic gap — a theme that never emits GTIN, an empty description field — and will miss a problem affecting a handful of products. It is a diagnosis of the pattern, not an audit of the catalogue.
It also reads only what your storefront publishes. If your feed tool enriches data after export, the feed may be in better shape than this suggests — though everything else reading your store, Google’s own crawler and every AI assistant included, sees what this sees.
Last reviewed 3 August 2026. Results cached for 24 hours per domain; no IP addresses stored. Magistry fixes these at the product record and feeds the result back into catalog and ad decisions — how feed syndication works.
