Google Shopping disapprovals almost always trace back to one of about fifteen feed issues, and each error message maps to a specific fix in Merchant Center or your product data. Start in Merchant Center under Products then Diagnostics, sort by affected items, and fix the top two error types first; they usually account for most of the damage.
The 15 errors, causes and fixes
| Error | Cause | Fix |
|---|---|---|
| Price mismatch | Feed price differs from page price; slow sync vs price changes | Move feed sync to hourly; use sale_price for promotions instead of editing price |
| Availability mismatch | Feed says in stock, page says sold out | Sync stock at the same frequency as prices; check app conflicts on Shopify |
| Invalid or missing GTIN | Made up barcodes, reused manufacturer codes, blanks | Use real GTINs; genuinely barcode free products set identifier_exists to false |
| Promotional overlay on image | Text, badges, watermarks baked into images | Clean product on plain background; promotions belong in the promotions feed |
| Generic image | Placeholder or logo instead of the product | Photograph every variant; minimum 100×100, aim far higher |
| Missing required attribute | No colour or size on apparel, no age group, etc | Populate category required attributes; apparel is the strictest set |
| Wrong product category | Miscategorised items triggering wrong rules | Set google_product_category manually on flagged items |
| Restricted content flag | Claims language in titles or descriptions | Rewrite to the Blog 8 compliant column |
| Landing page error | 404s, redirects, geo blocks on feed URLs | Crawl every feed URL from the target country monthly |
| Mismatched currency or language | Feed currency differs from page currency for the target country | Align feed target country with the actual serving page |
| Duplicate products | Same item submitted multiple times with different IDs | One ID per product per country; dedupe app output |
| Shipping mismatch | Feed shipping differs from checkout reality | Configure shipping in Merchant Center to mirror your live rates exactly |
| Adult flag false positive | Automated misreading of imagery or wording | Contest through Diagnostics if genuinely wrong; adjust wording if borderline |
| Title truncation or keyword stuffing | Titles over limits or stuffed with search terms | Brand, product type, key attribute, in that order, human readable |
| Tax misconfiguration (US) | Missing or wrong tax settings for US targeting | Complete tax settings before enabling US countries |
Platform notes
Shopify: most errors above come from the sync gap between price and stock changes and the feed app’s schedule; the native Google channel now syncs frequently, third party apps vary, check yours. WooCommerce: feed plugins commonly mishandle variable products, sending parent items without variant attributes; confirm each variant carries its own ID, price, GTIN and image.
When disapprovals signal a bigger problem
Item disapprovals are routine maintenance. The escalation signal is disapprovals citing misrepresentation or repeated restricted content, which colour the account’s trust score and precede suspensions. If those words appear in Diagnostics, run the full Blog 6 sweep now, while it is still cheap.
The ongoing hygiene routine
Weekly: five minutes in Diagnostics, fix anything new. Monthly: crawl feed URLs, spot check twenty listings against their pages for price and stock, re read titles on best sellers. Quarterly: full attribute audit and a claims re check on descriptions. Feeds rot quietly; the routine is what keeps a clean account clean.
FAQs
Why do my Shopping products keep getting disapproved? Usually one or two systemic causes, most often price or availability mismatches from slow feed syncing, or missing required attributes. Diagnostics sorted by affected items shows you where to start.
Do I need real GTINs? Yes where products have them. Invented or reused GTINs cause disapprovals and erode account trust. Barcode free products should set identifier_exists to false.