Home
Templates
Google Shopping Feed Template
Google Shopping Feed Template
Platform import template

Google Shopping Feed Template

Every required Google Shopping attribute with the correct headers, plus the identifier and apparel rules that cause most disapprovals.

Download the template

CSV, 27 attributes

A Google Shopping feed is the strictest of the common channel formats, and the reason is that Google validates it against your own product page. A price in the feed that differs from the price on the landing page is not a warning, it is a removal. So is an image that no longer loads, or a product marked in stock that the page says is sold out.

That makes a Google Shopping feed less a file format problem than an accuracy problem. The structure is the easy part.

What is in the Google Shopping feed template

Twenty seven attributes with headers matching Google's current product data specification, and one worked example row.

They cover the seven required attributes, the identifier group, variants, the apparel group, shipping, and a custom label for campaign segmentation. Attribute names are lowercase with underscores, exactly as Google expects them, because the feed is matched on the header string and image_link is not the same as Image Link.

The seven required attributes

Every item needs id, title, description, link, image_link, availability and price. Miss one and the item is disapproved rather than ranked lower.

id must be unique and stable. Reusing an id for a different product carries the old item's performance history onto the new one, which distorts bidding for weeks. Use the SKU and never recycle it.

title is capped at 150 characters and is the single biggest lever on performance in the whole feed. The shape that works is brand, product, key attribute, size: "Acme Heavy Duty Steel Shelf Bracket 300mm". Not a marketing line, and not the same string as your page's H1 if that H1 is short on detail. Most of the query matching happens here.

description should describe the product rather than sell it. Google reads it for matching, and specifications in plain language do better than adjectives.

link is the landing page for that exact variant, not the parent product page. Landing on a page where the customer has to pick the size again is a measurable drop off.

image_link is a direct URL to the image file.

availability takes in_stock, out_of_stock, preorder or backorder. Nothing else. "Available" is a disapproval.

price carries the currency in the same field, formatted as 24.99 GBP, and must match the landing page exactly, including how tax is treated.

Identifiers, and where disapprovals come from

brand is required for almost every new product, and Generic and N/A are explicitly rejected. Own brand products use your own brand name.

gtin is strongly recommended wherever one exists. Where a product has a GTIN and the feed omits it, performance drops well before any warning appears, which makes it one of the hardest problems to spot from the Merchant Center interface alone. Digits only, no dashes, no spaces.

mpn is required when there is no GTIN. It has to be the manufacturer's own part number, not your internal stock code. A lot of distributor feeds get this wrong, because the internal code is the one that is easy to export.

condition takes new, refurbished or used.

If a product genuinely has no GTIN and no MPN, for example something you make yourself, set identifier_exists to no. Leaving it unset while omitting both identifiers is read as an incomplete feed rather than a deliberate one.

Variants, and the group id that stops them competing

Variants of one product share an item_group_id and differ on at least one variant attribute: colour, size, material, pattern, age group or gender.

Without the group id, Google treats them as unrelated products. They then compete with each other in the same auction, which raises your own costs and splits the performance data across items that should have been reported together.

The example row in the template uses ABC-1234 as the item_group_id with size 300mm as the variant attribute, and the sibling rows would carry the same group id with 400mm and 500mm.

The Google Shopping apparel attributes

In most markets, apparel and accessories additionally require age_group, gender, color and size. Miss any of them and the items are disapproved for that category regardless of how good the rest of the feed is.

color has to be a plain colour name. No hex codes, no product codes, and no "multicolour", which Google does not accept as a value. Multi colour products list the dominant colour first, separated by a slash, up to three.

size should carry the size system's own value, and consistency across the feed matters more than the format chosen. A feed mixing UK 10, Medium and 38 for the same kind of garment gives Google nothing to group on.

age_group takes newborn, infant, toddler, kids or adult.

Image rules worth planning for now

Images must be at least 500 by 500 pixels, and that minimum is enforced from 31 January 2027. Feeds still running on older supplier images should be checked against it now rather than in January, because re sourcing images across a catalogue is a procurement job with lead times, not a data job that can be done in an afternoon.

The quickest way to find out where you stand is to export the feed, pull the image dimensions for every image_link, and count how many fall below the threshold. On catalogues built from supplier imagery collected over several years, the number is usually higher than expected.

No watermarks, no promotional overlays, no "sale" badges burned into the image, no placeholder graphics. Google checks, and the disapproval reason it gives is not always specific.

Keeping the Google Shopping feed accurate

Google Shopping feeds fail on freshness far more often than on structure. Price and availability change daily. A feed regenerated weekly is wrong for most of the week, and each mismatch is an item removal rather than a warning.

Three habits that prevent most of it. Regenerate at least daily, and more often for price and stock if the catalogue moves. Check the Diagnostics page in Merchant Center weekly rather than waiting for an email, because item level disapprovals accumulate quietly. And read the disapproval reason carefully rather than assuming it is the obvious field; a price mismatch and a landing page error look similar from the outside and have different fixes.

Generating the feed from the same record as the site

The durable fix for a feed that keeps drifting is to stop maintaining it as a separate file. If the feed and the website are generated from the same product record, they cannot disagree about price, stock or specification, and the whole class of mismatch disapprovals goes away.

That is what SKULaunch does through marketplace syndication: one governed record per product, with each channel format produced from it on demand, including the identifier rules and the required attributes for that channel. The template is the right tool for a first feed or a one off build. Past that, the feed should be an output rather than a document.

Download the template

Free to use and adapt. No sign-up, no email required.

Download

CSV, 27 attributes

Required columns are marked in red. Delete the worked example row before you use the file.

See it working on your own product data

Upload a supplier file and watch SKULaunch turn it into complete, structured, sales-ready records. Two weeks free, no card, no consultants.

© 2026 SKU Launch Ltd. All rights reserved.
Built for e-commerce teams who are done doing it by hand.