Skip to content
feedlab Request early access

Sales channel

Google Shopping

Feeds are consumed by Google Merchant Center.

Google Shopping is the surface where Google displays product listings from a merchant's catalogue, fed by a product feed uploaded to Google Merchant Center. Google's product data specification is the most detailed of the major channels, and the one whose attribute names the other channels tend to borrow.

Feed specification

Destination
Google Merchant Center
Accepted formats
Text (CSV/TSV) XML (RSS 2.0) XML (Atom 1.0) Content API for Shopping
Refresh
A scheduled fetch can run daily, weekly or monthly, and Merchant Center re-fetches the feed URL on that schedule. Product data must not be older than 30 days or items expire, so a feed that stops regenerating will silently empty out.

Attributes for Google Shopping

Every attribute documented in this knowledge base that Google Shopping accepts.

Attribute Requirement Notes
availability Required Crawled from the landing page and compared against the feed.
brand Required in some cases Required for all products except movies, books and musical recordings.
condition Required in some cases Required when the item is not new. Assumed new when omitted.
custom_label_0 Optional Five labels available, custom_label_0 through custom_label_4.
description Required HTML is rejected. Only the first 150 to 500 characters typically display.
google_product_category Recommended Required for some categories including alcohol and subscription hardware.
gtin Required in some cases Required when the manufacturer has assigned one. Omit for genuinely custom goods.
id Required Cannot be changed without losing the item's performance history.
identifier_exists Optional Defaults to yes. Set to no only for genuinely unidentified products.
image_link Required Promotional overlays and watermarks cause disapproval.
item_group_id Required in some cases Required when a product has variants. Must accompany the variant attributes.
link Required Crawled and compared against feed price and availability.
mpn Required in some cases Required when the product has no GTIN. Must be paired with brand.
price Required Crawled from the landing page and compared. Must be the pre-discount price.
sale_price Optional Must be lower than price. Pair with sale_price_effective_date when time-limited.
title Required Matched against search queries. Promotional text causes disapproval.

What catches Shopify merchants out

Shopify variants are separate products to Google

Each Shopify variant becomes its own row with its own id, and all variants of one product share an item_group_id. Submitting one row per product instead of per variant loses every size and colour a shopper could filter on.

Google crawls your landing page and compares it to the feed

Price and availability in the feed are checked against the structured data and visible content on the product page. A feed that is correct but stale gets disapproved for mismatching, which is why regeneration cadence matters as much as mapping.

Shopify descriptions carry HTML that Google does not want

The body_html field is rich text. Submitted as-is it brings markup into the description attribute, which Google rejects or truncates awkwardly. The description needs the HTML stripped and entities decoded first.

Barcodes live on the variant, not the product

Shopify stores the barcode on each variant, and it is frequently blank because it is optional in the admin. An empty barcode is the single most common reason a Shopify catalogue fails GTIN validation.

Common Google Shopping errors

Frequently asked questions

What attributes are required for a Google Shopping feed?

Every item needs id, title, description, link, image_link, availability and price. Beyond that, brand and a product identifier (gtin or mpn) are required for most products, condition is required when an item is not new, and item_group_id is required for variants.

How often does Google Merchant Center fetch a scheduled feed?

You choose daily, weekly or monthly when you set up the scheduled fetch, and Google pulls the URL on that cadence. Because product data expires after 30 days, a daily fetch is the safe default for any catalogue where price or stock moves.

Can I submit a Shopify feed without GTINs?

Yes, but only for products that genuinely have no manufacturer-assigned GTIN, such as custom or handmade goods. In that case you supply brand and mpn instead, or set identifier_exists to no. Omitting GTINs on branded retail products that do have them causes disapprovals.

Primary sources

Channel specifications change. These are the official documents this page is based on.

Last reviewed View as markdown