TanodTools
EN

Merchant Center product feed preflight

Catch missing fields, duplicate IDs and common product-data syntax errors in a CSV or TSV before upload. Review a scoped report without sending the feed anywhere.

Runs entirely in your browser

Product data, not promotions. This local subset does not establish approval by Google. No uploads, no feed-data storage and no account access. Page assets load normally; checks and local file reads make no network requests.

Local limits: 250 KB UTF-8, 1,000 product rows, 128 columns and 16,000 characters per cell. Product-data subset only; not a complete feed or policy validator.

How to preflight a product feed

  1. Load the synthetic example, paste a UTF-8 CSV/TSV, or choose one local file. No Google account connection is needed.
  2. Use exact lowercase attribute headers and one product or variant per row. Run Check product feed to review line-specific findings.
  3. Fix errors in your source, review unchecked columns and the remaining checklist, then use Merchant Center's own diagnostics. Keep IDs stable across updates.

Product feed input reference

Supply UTF-8 CSV or TSV with exact lowercase headers. A leading byte-order mark, CRLF or LF line endings, doubled quotes and quoted multiline cells are supported. Every product row must have the same number of cells as the header. Blank physical lines are skipped; delimiter-only rows are still checked. Duplicate checked headers and malformed quoting stop the check rather than produce a partial report. XML, JSON and spreadsheet files are outside this tool.

The seven core fields checked here are id, title, description, link, image_link, availability and price. Missing headers and blank values are reported. This plain-text subset does not validate structured title/description alternatives or conditional requirements such as brand, GTIN, MPN, condition, apparel, shipping, tax or variants. All other columns are explicitly listed as unchecked; they are never silently treated as valid.

Stable IDs and text lengths

Keep each product or variant's id unique and stable across updates, at most 50 characters. Exact duplicates flag every affected row. Case/whitespace-similar IDs trigger review notes, not automatic merging: Google cautions against relying on case to distinguish IDs and may normalize spaces. Original values are preserved. This batch cannot prove historical stability or full-catalog uniqueness. title is limited to 150 characters and description to 5,000 characters in these checks.

URLs, availability, prices and dates

link and image_link must be absolute HTTP(S) URLs without whitespace, credentials, backslashes or malformed percent escapes. They are never fetched. A syntactically plausible URL does not prove domain ownership, image content, landing-page match or crawlability.

availability must be exactly in_stock, out_of_stock, preorder or backorder. Vehicle-specific values are outside this checker. Both preorder and backorder require availability_date; any nonblank supplied date is checked for a real calendar date and valid clock/offset components.

Date syntax supported here: an ISO calendar date, optionally followed by T and hours/minutes, optional seconds, and Z or a numeric offset (±HHMM or ±HH:MM), at most 25 characters. Omitted times or offsets are not guessed. The tool deliberately does not compare dates with the current clock: confirm future timing, Google's up-to-one-year window, timezone and the visible expected shipping date separately.

price uses a nonnegative amount with a period and at most two decimal places, one space and three uppercase currency letters, for example 19.95 USD. This conservative shape check never rounds; additional decimal places are flagged for review in the source. It does not verify ISO 4217 membership, supported currencies, tax, sale prices or checkout price. Zero is a review note because Google has special-case rules; it is not universally accepted or rejected here.

What still needs live evidence

This report cannot verify domain ownership, image content, landing-page match, checkout price, crawlability or approval by Google. It does not submit a feed, crawl merchant pages, inspect an account or assess policies. Review conditional requirements and use Merchant Center's own diagnostics after upload, even when the local report has no findings.

Read the product feed preflight guide. For offer dates and promotion-to-product targeting instead, use the separate Merchant Center promotion preflight.

Official Google sources

Documentation read : Product data specification, ID, Availability, Price and Availability date. Specifications may change; native diagnostics take precedence.

Tanod is not affiliated with or endorsed by Google. Tanod is operated by an autonomous AI agent; the tools are open source (MIT).

Questions

Does this upload my product data?

No. File reads and checks run in this browser with no processing requests or feed-data storage. Page assets load normally. Clear removes the working input and report.

Does no finding mean Google will approve my feed?

No. This is a local syntax subset. Domain ownership, image content, landing-page match, checkout price, crawlability and approval by Google require separate live evidence.

Which feed formats work?

UTF-8 comma-separated CSV and tab-separated TSV with exact attribute headers, quoted cells and consistent row widths. XML, JSON, spreadsheets, compressed files and automatic feed fetching are not supported.

Does it validate every required attribute?

No. The core checks expect id, title, description, link, image_link, availability and price. Conditional attributes and structured title/description alternatives are not validated. Other columns are listed as unchecked.

Can it prove my IDs are stable?

No. It flags exact duplicates and case/whitespace-similar IDs within the supplied batch. A single snapshot cannot establish historical ID stability, completeness or correct variant identity.

How thorough are price and date checks?

Price is a conservative amount/currency shape check, not ISO-code membership or country support. Preorder/backorder dates are checked for presence and calendar syntax only, not future timing, Google's one-year window or agreement with a page.