Free instant website audit · 190,000+ sites checked · no card, no account
Custom Web Audits
← All free tools
🛒

Product Feed / Merchant Center Checker

Analyze your Google Merchant Center product feed (RSS/XML or TSV/CSV) for missing required attributes, missing GTIN/MPN identifiers, malformed prices, invalid availability/condition values, duplicate ids, broken images and policy-violating titles — the exact issues that get products disapproved or suppressed.

⚡ Interactive demo — sample data
2 of 3 sample products have at least one issue: one is missing a GTIN/MPN identifier, one has a malformed price.
SKU-1001 Trail Running Shoe — all required attributes present, valid GTIN + brand, correct price format Looks good
SKU-1002 Winter Jacket — missing GTIN/MPN and no identifier_exists override Issue
SKU-1003 Water Bottle — price '$24.99' is not in the required 'NUMBER CCY' format Issue

About this tool

Analyze your Google Merchant Center product feed (RSS/XML or TSV/CSV) for missing required attributes, missing GTIN/MPN identifiers, malformed prices, invalid availability/condition values, duplicate ids, broken images and policy-violating titles — the exact issues that get products disapproved or suppressed.

How it works

Paste your product feed URL
Give us the direct URL to your Google Shopping / Merchant Center feed — an RSS 2.0 or Atom XML feed with the g: namespace, or a TSV/CSV export. We fetch it directly, the same way Google's crawler would.
We parse every product and check it against Merchant Center's rules
Each item is checked for the required attributes (id, title, description, link, image_link, price, availability, condition), a valid GTIN/MPN + brand identifier or an identifier_exists override, correctly formatted price and currency, valid availability and condition values, duplicate ids, and insecure (http://) links. We also spot-check a sample of your image_link URLs to see if any are actually broken.
Get a feed-health score and a downloadable list of problem SKUs
You get a 0–100 feed-health score, a ranked list of the issues most likely causing disapprovals, and a CSV of exactly which products have which problem — so you can fix your product data source instead of hunting through the Merchant Center diagnostics page one item at a time.

What we check

  • Required attributes — Confirms every product has id, title, description, link, image_link, availability, price and condition — the baseline set Merchant Center requires on essentially every item.
  • Product identifiers (GTIN / MPN / brand) — Google requires a GTIN or MPN plus a brand for most products, or an explicit identifier_exists=false override for items that genuinely have none (private-label goods, handmade items, etc.). Missing this is one of the most common disapproval reasons.
  • Price format and currency — Price and sale_price must be a number followed by a three-letter ISO currency code (for example '29.99 USD'). Formats like '$29.99' or a bare number are flagged.
  • Availability and condition values — availability must be one of in stock, out of stock, preorder or backorder; condition must be new, refurbished or used. Anything else is rejected by Merchant Center.
  • Duplicate product ids — Two items sharing the same id are treated as duplicate offers and get disapproved. We flag every id that appears more than once in the feed.
  • Insecure links — Flags product link and image_link values still served over http:// instead of https://.
  • Image reachability — Spot-checks a sample of your image_link URLs with a live fetch to catch broken images before Google's crawler does.
  • Title quality — Flags titles that are too short to be useful, too long (over 150 characters, where they get truncated), or contain promotional language like 'sale', '% off' or excessive exclamation points — which Shopping ads policy disallows in titles.
  • google_product_category / product_type — Recommended (and required for some verticals) attribute that helps Google understand and correctly target your product. Flagged as a warning when both are missing.

Common issues we catch

  • Missing GTIN/MPN + brand — The single most common cause of item disapprovals. If your product genuinely has no manufacturer identifier, set identifier_exists to false explicitly — leaving it blank does not count as an override.
  • Price attribute doesn't match the currency format Google expects — Many carts export price as just a number, or with a currency symbol like '$' instead of a currency code. Merchant Center wants 'NUMBER CCY', e.g. '49.99 USD'.
  • availability value doesn't match Google's exact vocabulary — Custom values like 'Available', 'In Stock Now' or '1' aren't recognized. Map your platform's stock status to exactly in stock, out of stock, preorder or backorder.
  • Duplicate ids after a feed regeneration or platform migration — Common after moving carts or re-exporting a feed with a different id scheme — old and new ids can briefly coexist and collide.
  • Images served over http:// on an otherwise https:// site — Happens when image URLs are pulled from an older CDN mapping or a third-party image host that wasn't migrated to HTTPS along with the rest of the site.
  • Broken image_link after a CDN or image-host migration — If product images move to a new host or bucket but the feed still points at the old paths, every image_link in the feed can go stale at once.
  • Promotional text baked into the title field — Titles pulled straight from a marketing-written product name often include phrases like 'On Sale Now!' or 'Free Shipping' — these are against Shopping ads policy and get the item's title (or the whole item) flagged.

Where this matters

  • Google Merchant Center / Shopping ads — The primary target — this checker mirrors the attribute and format requirements Merchant Center enforces at the item level before your products can serve in Shopping ads and free listings.
  • Shopify, WooCommerce, BigCommerce & other cart platforms — Most carts auto-generate a Google Shopping feed via a plugin or native integration. This tool checks the output feed regardless of which platform generated it.
  • Custom / hand-rolled feeds — Works against any RSS 2.0 feed using the g: namespace, an Atom feed, or a plain TSV/CSV export with recognizable column headers (id, title, price, availability, etc.).
  • Multi-channel feed tools — If you generate one master feed and syndicate it to Google plus other channels, fixing issues here typically cleans up the same problems everywhere else the feed is used.

Frequently asked questions

What is a Google Merchant Center product feed?
It's the structured file (usually XML/RSS or a TSV/CSV) that tells Google what you sell — product names, prices, images, availability and identifiers. Google Shopping ads and free product listings are built entirely from this feed, not your website pages directly.
Why was my product disapproved even though the page looks fine?
Merchant Center evaluates the feed data, not your live page. A product can look perfect on your site but still get disapproved if the feed attribute for price, availability, or an identifier is missing, malformed, or out of sync with the page.
What does 'identifier_exists' mean?
It's an explicit flag you set to false when a product genuinely has no GTIN, MPN or brand (for example, a fully custom or handmade item). Without it, Google assumes an identifier should exist and disapproves the item for missing one.
What price format does Google require?
A number followed by a space and a three-letter ISO currency code, e.g. '29.99 USD'. Currency symbols ('$29.99') or a bare number without a currency code are not accepted.
How many products does this tool check?
Up to the first 2,000 items in your feed per run. If your feed has more, we note that the results are based on a truncated sample rather than silently dropping the rest.
Does this submit anything to Google?
No. This tool only fetches and reads your feed URL — it doesn't touch your Merchant Center account, submit a feed, or change any settings. It's a pre-check you can run before your feed goes through Google's own review.
Why does the image check say some images are broken?
We fetch a spread sample of your image_link URLs directly to confirm they load. A failed fetch (404, timeout, or connection error) is flagged — the same kind of failure that causes Google's own image crawler to reject a product.
My feed uses different column names than id/title/price — will it still work?
For TSV/CSV feeds we recognize common aliases (sku/product_id → id, image_url → image_link, stock → availability, and similar). For XML feeds, standard RSS elements plus the g: namespace are expected, matching Google's own feed spec.

This is one of several free SEO tools from Custom Web Audits. For a complete, prioritized analysis of your whole website, run a full audit.