Product Feed Checker

For Google Merchant Center

All toolsRuns in your browser · file never uploaded

Find feed errors before Google disapproves your products.

Upload your product feed (a text, CSV or XML file). You'll see what breaks Google's published rules, how many products it affects and exactly how to fix it. Every product that Google disapproves is invisible in Shopping until you fix it.

1. Your feed

Drop your feed here, or click to choose a file

.txt, .tsv, .csv or .xml. Files stay on your device.

What this checks, and what it can't

Every rule it checks (October 2026)

Errors: Google's spec says the product can be rejected or disapproved

  • This doesn't look like a Google product feed. Most of Google's required column names weren't found. This usually means a store export (Shopify, WooCommerce) was uploaded instead of a Merchant Center feed. Fix: Upload the file you submit to Merchant Center, or map your store's columns to Google's names (id, title, description, link, image_link, price, availability, brand).
  • A required column is missing from the file. Google requires id, title, description, link, image_link, availability and price for every product. Brand is required for most products. Fix: Add the column and fill it in for every product.
  • Required value is empty. This attribute is required. Without it the product can't serve in ads and free listings. Fix: Fill it in for every product.
  • ID longer than 50 characters. The ID can be at most 50 characters. Fix: Use the product SKU or another short, unique ID.
  • Duplicate product IDs. Every product needs a unique ID. Fix: Give each product its own ID. Variants (sizes, colours) each need their own ID too.
  • ID contains invalid characters. Only valid unicode characters may be used in the ID. Fix: Remove control or invisible characters from the ID.
  • Title longer than 150 characters. A title can be at most 150 characters. Fix: Shorten the title and put the most important words first.
  • Description longer than 5,000 characters. A description can be at most 5,000 characters. Fix: Shorten the description.
  • Link doesn't start with http or https. The product link must start with http or https. Fix: Use the full product URL, starting with https://
  • Link contains characters that need encoding. Links must be encoded URLs, so spaces and some symbols aren't allowed as they are. Fix: Encode the URL (a space becomes %20) or use the product's real URL.
  • Image link doesn't start with http or https. The image link must start with http or https. Fix: Use the full image URL, starting with https://
  • Image link contains characters that need encoding. Image links must be encoded URLs. Fix: Encode the URL (a space becomes %20).
  • Price isn't in the format Google needs. The price is a number followed by an ISO 4217 currency code, for example 15.00 USD. Fix: Write the price as 1299.00 CZK: number, space, three-letter currency code.
  • Price uses a decimal comma or thousands separators. The decimal point must be a period, and the number is plain digits. Fix: Write 1299.50 CZK, not 1 299,50 CZK or 1,299.50 CZK.
  • Unknown currency code. The currency must be a valid ISO 4217 code such as CZK, EUR or USD. Fix: Use the three-letter ISO code, in capitals.
  • Price is 0. Google's spec says not to submit a price of 0. Fix: Enter the real selling price.
  • Sale price isn't in the format Google needs. The sale price follows the same format as price: number plus ISO currency code. Fix: Write it like 999.00 CZK.
  • Sale price dates are invalid. The dates use ISO 8601, separated by a slash, and the start must be before the end. Fix: Write it like 2026-11-20T00:00+0100 / 2026-11-30T23:59+0100
  • Availability value isn't one Google accepts. Supported values are in_stock, out_of_stock, preorder and backorder. Fix: Use exactly one of the four values, in English.
  • Preorder without an availability date. An availability date is required when availability is preorder. Fix: Add availability_date, up to a year in the future.
  • Availability date isn't a valid ISO 8601 date. Use the format YYYY-MM-DDThh:mm with an optional time zone. Fix: Write it like 2026-12-01T09:00+0100
  • Condition value isn't one Google accepts. Supported values are new, refurbished and used. Fix: Use new, refurbished or used, in English.
  • Placeholder instead of a brand. Google's spec says not to submit values such as N/A, Generic, No brand or Does not exist. Fix: Use the real brand. If a product truly has none, leave it empty and set identifier_exists to no.
  • Brand longer than 70 characters. The brand can be at most 70 characters. Fix: Use the brand name only.
  • GTIN has the wrong number of digits. A GTIN has 8, 12, 13 or 14 digits. ISBN-10 is deprecated and should be converted to ISBN-13. Fix: Check the barcode number. If you aren't sure it is right, leave the GTIN empty.
  • GTIN fails its check digit. Google's spec says the check digit must be present and correct. An incorrect GTIN gets the product disapproved. Fix: Copy the number from the packaging or your supplier. If in doubt, leave it empty. Never guess.
  • GTIN is in a restricted number range. Google's spec says a GTIN must not be restricted (GS1 prefix ranges 02, 04 and 2). These are for internal store use. Fix: Use the manufacturer's real GTIN, or leave it empty.
  • GTIN is a coupon number. Google's spec says a GTIN must not be a coupon (GS1 prefixes 98 and 99). Fix: Use the product's own GTIN, or leave it empty.
  • GTIN is a made-up placeholder. Google's spec says never to guess or make up a GTIN. Fix: Remove it. If the product has no GTIN, set identifier_exists to no.
  • MPN longer than 70 characters. The MPN can be at most 70 characters. Fix: Use the manufacturer's part number only.
  • Google product category isn't a valid format. Use either the numeric category ID or the full category path, but not both. Fix: Use the ID from Google's product taxonomy, for example 1604.
  • Gender value isn't one Google accepts. Supported values are male, female and unisex. Fix: Use male, female or unisex.
  • Age group value isn't one Google accepts. Supported values are newborn, infant, toddler, kids and adult. Fix: Use one of the five values.
  • Colour value Google doesn't accept. Don't use numbers, hex codes, single letters, "see image", or non-colours such as multicolor or N/A. Fix: Use real colour names. Separate several colours with /, for example Red/Pink.

Warnings: breaks guidance, or may limit how a product shows

  • File is not UTF-8. Accented characters can turn into garbage if the file isn't saved in a Unicode encoding. Fix: Re-save the file as UTF-8 (in Excel: Save As, CSV UTF-8).
  • Column names aren't in Google's format. Google's attribute names are lowercase English with underscores (for example image_link). Fix: Rename the column header exactly as Google names it.
  • Links point to more than one website. Product links must use your verified domain name. Fix: Make sure every link uses the domain you verified in Merchant Center.
  • Title in all capital letters. Google's spec says not to use all capital letters in titles. Fix: Use normal capitalisation.
  • Promotional text in the title. Google's spec says not to include promotional text like "free shipping" in titles. Fix: Describe the product only; keep offers and shipping out of the title.
  • Decorative symbols or emoji in the title. Google's spec says not to use gimmicky foreign characters in titles. Fix: Remove symbols such as stars, arrows and emoji.
  • Description in all capital letters. Google's spec says not to use all capital letters in descriptions. Fix: Use normal capitalisation.
  • Promotional text in the description. Google's spec says not to include promotional text like "free shipping" in descriptions. Fix: Describe the product only.
  • HTML code in the description. The description is plain text, so tags like <p> or <br> may show up as text. Fix: Strip the HTML tags and use plain line breaks instead.
  • Link to a website in the description. Google's spec says not to include links to your store in the description. Fix: Remove web addresses from the description.
  • Link points to a local or test address. Product links must use your verified domain name. Fix: Replace localhost, IP addresses and staging domains with your live store address.
  • Image file type Google doesn't list. Accepted formats are JPEG, WebP, PNG, non-animated GIF, BMP and TIFF. Fix: Convert the image to JPEG or PNG.
  • Image looks like a placeholder. Google's spec says not to submit a placeholder or generic image. Fix: Use a real photo of the product.
  • Image smaller than 500 x 500 pixels. Google announced a minimum of 500 x 500 pixels for all product images, enforced from 31 January 2027. Fix: Upload a larger original image. Don't scale a small one up.
  • Image couldn't be loaded. The browser couldn't load this image, so its size couldn't be checked. It may be broken, blocked or not public. Fix: Open the image link in a browser. Google must be able to crawl it.
  • Sale price isn't lower than the price. A sale price is meant to be a reduction from the regular price. Fix: Check both prices, or remove the sale price.
  • Sale price currency differs from the price. Price and sale price should be in the same currency. Fix: Use the same currency code for both.
  • Availability isn't written the way Google lists it. Google lists in_stock, out_of_stock, preorder and backorder (with underscores). Fix: Use the exact spelling with underscores.
  • Backorder without an availability date. Google asks for an availability date with preorder and backorder products. Fix: Add availability_date.
  • Availability date more than a year away. Google asks for a date up to one year in the future. Fix: Use a date within the next year, or an estimate.
  • Expiration date more than 30 days away. The expiration date should be less than 30 days in the future. Fix: Use a nearer date, or remove the attribute.
  • GTIN contains spaces or dashes. Google's spec says to exclude dashes and spaces from GTINs. Fix: Remove the spaces and dashes, digits only.
  • More than one GTIN in one field. Submit one GTIN per product. For books with both ISBNs, use only the 13-digit one. Fix: Keep a single GTIN.
  • No GTIN, or MPN and brand. Products without product identifiers can have limited visibility. If none exist, say so with identifier_exists = no. Fix: Add the GTIN, or the MPN together with the brand, or set identifier_exists to no.
  • identifier_exists is no, but identifiers are given. Google's spec says that if a product does have identifiers, don't set identifier_exists to no or it may be disapproved. Fix: Remove identifier_exists, or remove the wrong identifiers.
  • identifier_exists value isn't yes or no. Supported values are yes and no. Fix: Use yes or no.
  • Colour value too long. A colour can be at most 40 characters, and the field at most 100. Fix: Shorten the colour names.
  • Size longer than 100 characters. The size can be at most 100 characters. Fix: Condense the size into one short value.
  • item_group_id longer than 50 characters. The item group ID can be at most 50 characters. Fix: Use the parent SKU.
  • Same title on several products, no item_group_id. Variants of one product (sizes, colours) should share an item_group_id. It is required for variants in several countries. Fix: Add the same item_group_id to every variant of a product.
  • Custom label longer than 100 characters. Custom labels can be at most 100 characters. Fix: Shorten the label.
  • Currency doesn't match the country you selected. Google expects prices in the currency of the country you target. Fix: Check the currency, or the country you picked above.

Tips: best practice, not a rule

  • Very short title. Best practice, not a rule: short titles give shoppers and Google little to match on. Fix: Include brand, product type and key features such as colour or size.
  • Description is the same as the title. Best practice, not a rule: a description should add information the title doesn't have. Fix: Write a description of materials, features and use.

Rules last reviewed October 2026 against the current specification. General information, not legal or professional advice.

Something missing?

Hit a Merchant Center error this didn't catch, or a rule that has changed? Tell me. I read every message.