Skip to main content

Free Product Feed Validator

Find the errors in a CSV, TSV or XML feed.

Check a Google Shopping, Meta or TikTok catalogue feed for the errors that get products disapproved. Upload a CSV, TSV or XML file and read the problems in plain language. Nothing is uploaded to a server.

Free, no signup Runs in your browser No row limit

Feed clean? Next is the storefront

A valid feed still needs product pages behind it.

Grigora Commerce builds the catalogue, the product pages and the checkout on the same platform as your site and newsletter, so the feed you just validated is generated from real products rather than maintained by hand.

How to validate a product feed

Four steps from file to clean submission.

1

Add your feed

Upload a CSV, TSV or XML feed file, or paste the contents straight in.

2

Read the summary

See how many products parsed, how many carry errors, and how many carry warnings.

3

Fix errors first

Errors get an item rejected. Warnings reduce its reach but still list.

4

Re-check and submit

Validate again after fixing, then upload to Merchant Center with confidence.

How to validate a product feed, step by step

Real screenshots of the current tool, using sample inputs. Long results are shown as a preview.

  1. 1

    Paste the feed or choose a file

    CSV, TSV and XML all work. Nothing leaves the browser, so a supplier file you have not published yet is safe to test.

    Free Product Feed Validator in its default state before the walkthrough
  2. 2

    Check what you pasted

    Headers on the first line, one product per row. The feed here carries a mistyped GTIN, a price with no currency code and a duplicate id.

    Free Product Feed Validator with sample input or settings in place
  3. 3

    Review the result

    Select Validate feed to run the tool. This screenshot shows the result returned for the sample input.

    Free Product Feed Validator showing its actual result with sample inputs

When merchants use it

Six moments a feed check pays for itself.

Before a first Merchant Center upload

Catch missing attributes before the account picks up a disapproval history.

After a catalogue migration

Moving platforms rewrites field names. Check the mapping survived.

When products go disapproved

Find the malformed rows without reading thousands of lines by hand.

Before a seasonal push

A feed error the week of a sale costs the whole campaign.

Auditing a supplier feed

Dropship feeds arrive in whatever shape the supplier felt like.

Checking Meta and TikTok catalogues

They share most of the Google attribute set, so the same errors apply.

Exporting a feed from your platform

Where the file lives, by platform.

Shopify

  1. Open Settings, then Apps and sales channels.
  2. Export the Google or Meta feed as CSV.
  3. Drop the file in above.

WooCommerce

  1. Use your feed plugin to generate the XML feed.
  2. Open the feed URL and save the page.
  3. Upload the saved XML.

Grigora Commerce

  1. Open your product catalogue.
  2. Export products as CSV.
  3. Validate here before submitting to Merchant Center.

Manual spreadsheet

  1. Keep one product per row with the header in row one.
  2. Save as CSV with UTF-8 encoding.
  3. Paste or upload.

Grigora vs. other feed checkers

Side by side.

CapabilityGrigoraFeed toolsAgency toolsMerchant Center
Runs without uploadYes, in your browserUploads your feedUploads your feedRequires account
GTIN check digitValidatedSometimesNoYes
Explains each ruleYesError codes onlyError codes onlyYes
Signup requiredNoNoYesYes
Row limitNoneCapped on free tierCappedPlan based

Common errors and how to fix them

Eight issues that get products disapproved.

Price rejected

Cause: Price written as $12.99 or 12,99.

Fix: Use "12.99 USD": dot decimal, space, then the ISO currency code.

Invalid GTIN

Cause: A digit is mistyped, so the check digit fails.

Fix: Re-read the barcode. A GTIN either passes its checksum or is wrong.

Missing brand

Cause: Brand column empty for branded goods.

Fix: Add brand, or set identifier_exists to "no" for genuinely unbranded items.

Availability rejected

Cause: Values like "In Stock" or "available".

Fix: Use exactly: in stock, out of stock, preorder, backorder.

Duplicate ids

Cause: Two variants sharing one id.

Fix: Give every variant its own stable id and keep it stable over time.

Relative image links

Cause: Feed exported with /images/x.jpg.

Fix: Image links must be absolute and publicly reachable.

Title truncated

Cause: Keyword stuffing pushed it past 150 characters.

Fix: Lead with brand and product type. The tail is never shown.

Nothing parsed

Cause: File is an Excel workbook, not CSV.

Fix: Export as CSV, TSV or XML. .xlsx is a zip archive, not text.

Feed rules worth memorising

The constraints that cause most rejections.

5
Attributes causing most disapprovals: price, image_link, gtin, availability, brand
150
Character limit before Google truncates a product title
4
Accepted availability values, and no others
0
Rows uploaded to a server by this tool

Frequently asked questions

Ten answers about product feeds.

It checks a shopping feed against the Google Merchant Center product data specification before you submit it, so malformed rows are caught while they are still cheap to fix rather than after Google disapproves the items.
No. Parsing and validation happen entirely in your browser using JavaScript. The file never leaves your machine, which matters because feeds carry live pricing, stock levels and supplier identifiers.
CSV, TSV and XML, including RSS style feeds that use the g: namespace. Excel workbooks are not text files, so export to CSV first.
Largely yes. Both derive their catalogue specifications from the Google attribute set, so required fields, price formatting and availability values behave the same. Platform specific attributes are not checked.
An error means Merchant Center will reject the item, such as a missing price or a failed GTIN check digit. A warning means the item lists but performs worse, such as a missing brand or an overlong title.
A GTIN carries a check digit computed from the digits before it. If any digit is mistyped the checksum no longer matches, so the tool can prove the number is wrong without looking it up anywhere.
A dot decimal, a space, then the three letter ISO currency code, for example 12.99 USD. Currency symbols, comma decimals and missing currency codes are all rejected.
No. Handmade goods, custom items and genuinely unbranded products can set identifier_exists to no. Everything else reaches fewer shoppers without one, because Google cannot match the item to a known product.
There is no imposed limit. Very large feeds are bounded by your browser memory rather than by us, and a feed of a few tens of thousands of rows validates in a few seconds.
Yes, and it is a reasonable way to sanity check a catalogue you are preparing. If you are still choosing where to host the store, Grigora Commerce publishes product pages and manages orders alongside your website.

Related free tools

Other utilities that pair with the Product Feed Validator.

Sell from the site you already run

Catalogue, product pages, checkout and orders in one place. Try it free for 14 days, no card needed.

Start building free