Your files never leave your device. All processing happens locally in your browser.
How do I QA-check a product feed before uploading it to Google Merchant Center or another channel?
Upload (or paste) your product-feed CSV and the Feed QA Conveyor runs every row through a quality pipeline — required attributes, price / GTIN / image / link format, prohibited & promotional content, title / description length, duplicate ids and a completeness score — then gives each row a pass / warn / fail status with plain-language issues, a feed summary and a flagged-rows CSV to fix. It runs 100% in your browser; your feed is never uploaded.
100% client-side — feed never uploaded; rule-based pre-flight, NOT official platform validation
What is
Product Feed QA
Product feed QA is checking each row of a shopping/product data feed against the channel’s common requirements — required attributes present, price, GTIN, image and link in valid formats, titles and descriptions within limits, no prohibited or promotional copy, and unique ids — before uploading, so fixable rows are caught and corrected rather than disapproved.
E-commerce Operations
Related terms
Product Data SpecificationMerchant Center DisapprovalGTINRequired AttributesFeed Validation
How to QA-Check a Product Feed in the Browser Before Uploading
Upload a product-feed CSV, let every row run through the QA pipeline, review the pass/warn/fail report and issue summary, and export the flagged rows to fix — entirely in your browser.
4 minWeb browser
1
Upload the feed
Export your product feed (CSV / TSV) and drop it in, or paste the text. Use spec header names (id, title, description, link, image_link, price, availability, brand, gtin) so every field is recognised. Nothing is uploaded.
2
Run the QA conveyor
Every row is checked automatically for required attributes, price / GTIN / image / link format, prohibited & promotional copy, title/description length, duplicate ids and completeness, and given a pass / warn / fail status.
3
Review & export flagged rows
Read the summary (pass rate, pass/warn/fail, completeness, issues by type) and the per-row report, filter by status or issue type, then export the flagged rows as a CSV to fix. Then run your channel’s own diagnostics — this is a pre-flight, not official validation.
Result:A per-row QA report with pass/warn/fail status, an issue summary, and a flagged-rows CSV
Frequently Asked Questions
Each row is run through required-attribute and format validation, prohibited / promotional content scanning, title and description length checks, duplicate-id detection across the feed, and a completeness score — producing a pass, warn or fail status.
It is a conveyor: every row passes through the same pipeline. First, required-attribute and format validation — id (and id length), title, description, link, image_link, availability, price with a currency, brand, condition, and a GTIN or MPN — with the price format, GTIN length (8/12/13/14 digits) and URL shape checked. Second, the title and description are scanned for prohibited, restricted and promotional terms (“best seller”, “free shipping”, “act now”, medical / absolute claims) and for contact info (email / phone / URL) that channels ban in copy. Third, feed-tuned length checks flag titles that are too thin or over 150 characters and descriptions that are too short. Fourth, it detects DUPLICATE ids across the whole feed. Fifth, it computes a weighted completeness score for the row’s core attributes. Any blocking problem makes the row FAIL; a softer issue makes it WARN; a clean row PASSES.
It counts every id across the feed and flags any that repeat, because ids must be unique. The most common feed problems it surfaces are missing required attributes, bad price/currency, invalid GTIN, missing image, promo copy and duplicate ids.
Duplicate detection is a cross-row check: the tool tallies every id in the feed and flags rows whose id is shared by another row, since shopping channels require ids to be unique. The issues it surfaces map to the most common real-world disapproval causes (verified against Google Merchant Center guidance, June 2026): missing or invalid REQUIRED attributes; a price that is empty, badly formatted or missing its currency, or that won’t match the landing page; an invalid or short GTIN; a missing or non-HTTPS image_link; a broken landing-page link; titles that are too long, too short or stuffed with promotional words; thin descriptions; prohibited / restricted content; a missing google_product_category; and duplicate ids. The summary buckets every issue by type so you can see, and click into, your biggest problems first.
No. The whole feed is parsed and QA-checked entirely in your browser. Nothing is uploaded, logged or stored, so it is safe for confidential catalog and pricing data.
Everything happens on your device. The feed CSV is parsed with a real RFC-4180 parser and run through every check locally — there is no upload, no server, no CDN and no tracking, and the page works offline once cached. Because a product feed exposes your full catalog, prices, supplier identifiers and unreleased SKUs, that matters: nothing you load ever leaves the page, and only the flagged-rows CSV you choose to export is saved. That is a genuine privacy win over cloud feed-audit tools that upload your entire catalog to a server just to check a few columns.
No. This is rule-based QA against common requirements, not official platform validation. Required attributes and policies vary by channel, category and country and change, so always run your channel’s own diagnostics too.
Treat it as a pre-flight, not the final word. The Feed QA Conveyor checks your feed against common, well-documented requirements (Google-product-style required attributes plus general best-practice), but it is NOT official platform validation and is not affiliated with Google Merchant Center or any channel. The exact required attributes and content policies differ by channel (Google, Meta, Amazon, etc.), product category and destination country, and they change over time, so a clean result here does not guarantee approval. After fixing the flagged rows, always run your channel’s OWN feed diagnostics (Google Merchant Center, Meta Commerce Manager…) and verify each change against the current official spec.
Detailed Explanation
📖How It Works
Feed QA Conveyor — Run a Product Feed Through a Per-Row QA Pipeline in the Browser
Feed QA Conveyor is a 100% client-side tool that takes a product-data feed (CSV / TSV — the kind uploaded to Google Merchant Center, Meta Commerce Manager and similar shopping channels) and runs EVERY row through a quality "conveyor" entirely in the browser. PapaParse (a real RFC-4180 reader, so quoted titles with embedded commas and newlines survive) parses the file; each header is mapped to a product attribute (id, title, description, link, image_link, availability, price, currency, brand, gtin/mpn, condition, google_product_category, plus aliases like sku, name, url, image, upc/ean). For each row the conveyor runs a sequence of checks and assigns a status: required-attribute and format validation; prohibited / promotional content scanning of the title and description; feed-tuned title and description length checks; cross-row duplicate-id detection; and a completeness score. A blocking problem makes the row FAIL, a softer issue makes it WARN, and a clean row PASSES. The output is a per-row report (id, title, status, completeness and a list of plain-language issues), a feed SUMMARY (total rows, pass / warn / fail counts, pass rate, average completeness and an issues-by-type breakdown), and an export of just the flagged rows as a CSV (one line per issue) plus a copyable text summary.
Input: a product-feed CSV / TSV (id, title, description, link, image_link, price, availability, brand, gtin…) — or pasted text
Every row run through one pipeline → required attributes & formats, prohibited/promo content, lengths, duplicate ids, completeness
Per-row pass / warn / fail status with itemised issues + a feed summary (pass rate, counts, issues by type)
Cross-row duplicate-id detection — a check a single-product validator cannot do
Exports the flagged rows as a CSV (one line per issue) and a copyable QA summary; nothing is uploaded
⚙️Methodology
How the QA Conveyor Reuses Three Engines and Detects Duplicates
The tool does not reinvent the checks; it REUSES, unchanged, three separately-verified engines and adds the cross-row work a per-feed conveyor needs. (1) merchantFeedEngine.validateProduct supplies the required-attribute and format validation against the Google product data specification — id and id length, title, description, link, image_link, availability ∈ {in_stock, out_of_stock, preorder, backorder}, price as a plain number with a currency, condition, brand, and a GTIN of 8/12/13/14 digits or an MPN — emitting errors (blocking) and warnings; its messages are mapped to issue TYPES (required, price, gtin, image, link, title, description, availability) for the summary. (2) prohibitedTermsEngine.scanListing scans the row’s title + description for prohibited, restricted and caution terms (rankings like “best seller”, promo like “free shipping”, urgency like “act now”, medical / absolute / environmental claims) and for contact info (email / phone / URL) that channels ban in copy — prohibited matches FAIL the row, restricted ones WARN. (3) attributeCompletenessEngine.checkCompleteness maps the row to its core attributes and returns a weighted 0–100 completeness score; below 60 adds a warn. On top, the conveyor adds explicit feed-tuned length checks (title under ~15 or over 150 chars, description under ~50 chars), a missing-google_product_category warning, and DUPLICATE-ID detection: it tallies every id across the whole feed in one pass and flags any row whose id repeats, because shopping channels require unique ids. Each row’s status is fail if any issue is fail-severity, else warn if any warn, else pass; the summary buckets issues by type (rows affected and fail count) and lists the worst offenders.
Reuses merchantFeedEngine.validateProduct (required attributes + price/GTIN/URL/length formats) per row, unchanged
Reuses attributeCompletenessEngine.checkCompleteness for a weighted 0–100 completeness score per row
Adds cross-row DUPLICATE-id detection (ids tallied across the whole feed) and feed-tuned title/description length checks
Row status = fail if any blocking issue, else warn, else pass; summary buckets issues by type with rows-affected & fail counts
🔒Privacy & Security
Privacy vs Cloud Feed-Audit Tools
A product feed is among a retailer’s most sensitive exports: it lists the full catalog, every price, supplier identifiers (GTIN/MPN) and often unreleased SKUs. Many cloud feed-audit, feed-management and shopping-diagnostics tools require uploading the feed file or connecting a channel login so a third party can read and check the data. Feed QA Conveyor does neither — it never uploads anything and never connects an account. The feed is parsed, validated, scanned, de-duplicated and summarised entirely in the browser; nothing is sent to a server, logged or stored; there is no row cap; and the page works offline once cached. That makes it safe for confidential catalog and pricing data. Only the flagged-rows CSV the user chooses to export ever leaves the page.
⚠️Limitations
Honest Limits: Rule-Based QA, NOT Official Platform Validation
The tool is explicit about its scope. It performs RULE-BASED QA against COMMON requirements — Google-product-style required attributes plus general best-practice — and it is NOT official platform validation, NOT affiliated with Google Merchant Center, Meta or any channel, and NOT a guarantee of approval. The exact required attributes and content policies differ by channel, product category and destination country, and they change over time, so a clean result here does not mean the feed will be approved; required fields a particular category mandates may not be checked, and some real violations (e.g. a price that mismatches the live landing page, or an image that fails a pixel/text rule the tool cannot see) will not be caught because the tool only sees the feed text, not the destination pages or images. Prohibited-term scanning is pattern-based, so it can both over-flag legitimate copy and miss novel violations. Column mapping relies on recognising header names; non-standard headers are ignored and can make a present field read as missing. The user must therefore fix the flagged rows AND run their channel’s own feed diagnostics (Google Merchant Center, Meta Commerce Manager…) and verify every change against the current official spec before relying on the result.
Rule-based QA against COMMON requirements — NOT official platform validation and not affiliated with any channel
A clean result does not guarantee approval; required attributes & policies vary by channel, category and country and change
Only sees the feed text — cannot check live landing-page price match, image pixel/text rules or destination URLs
Prohibited-term scanning is pattern-based: can over-flag valid copy and miss novel violations; non-standard headers are ignored
Always run your channel’s own feed diagnostics and verify flagged-row fixes against the official spec
Yes — rule-based pre-flight, not official validation
Often implies authoritative approval
Cost / signup
Free, no signup
Usually subscription / account
AnyTool is a privacy-first client-side feed QA tool — your catalog, prices and identifiers never leave the browser. It is rule-based QA against common requirements (Google-product-style + general best-practice), NOT official platform validation and not affiliated with any channel; required attributes and policies vary by channel, category and country and change, and it only sees the feed text (not live landing pages or images), so always run your channel’s own diagnostics and verify flagged-row fixes against the official spec. A clean result does not guarantee approval.