Paste your product feed. Get an instant, line-by-line audit of the things that actually get items disapproved — invalid GTIN checksums, currency symbols in prices, duplicate IDs, missing required attributes. CSV, TSV, XML and Shopify exports. No signup, no upload — the audit runs entirely inside your browser.
feedcheck repairs most of these automatically — normalise prices to
19.99 USD, upgrade http:// image links, de-duplicate IDs, trim
over-length titles, strip GTIN separators — and hands you back an upload-ready CSV plus a changelog of every single edit.
Free, unlimited rows. Everything happens locally — nothing is uploaded, nothing is stored.
Too many rows to babysit? Have us fix the whole feed for $29 →
Feed changes daily and you want it watched? Join the $19/mo monitoring beta → — it's not built yet; tell me what you'd need and you get it at half price for a year.
Same engine, runs entirely offline. Exits non-zero when it finds errors, so it drops straight into CI before a feed upload step.
$ feedcheck products.csv error row 14 gtin GTIN "012345678906" fails GS1 checksum — likely a typo. error row 22 price Price "$19.99" uses a currency symbol. Use "19.99 USD". warn row 31 title Title is 92 chars; Google truncates display after ~70. 3 issues in 40 items (2 errors, 1 warning) $ feedcheck products.csv --json | jq '.issues[] | select(.severity=="error")'
Publishing to npm is pending an account; ask for the tarball at the address below and I'll send it, or use the web audit above — it runs the identical ruleset.
gtin | GS1 mod-10 checksum, digit count (8/12/13/14), stray separators, and the brand+MPN fallback when no GTIN exists |
price | Currency symbols, missing ISO codes, unknown currencies, zero prices, sale_price not below price |
title | 150-char hard limit, ~70-char truncation, ALL CAPS promotional flags, whitespace |
link image_link | Malformed URLs and http:// where Google wants HTTPS |
availability | Invalid values, plus preorder/backorder missing availability_date |
id | Duplicates that silently drop rows, and IDs over 50 characters |
| structure | Required attributes missing from the feed entirely, or empty on individual rows |
Plain-English walkthroughs for the disapproval reasons that cost the most revenue.