10 min read
Google ShoppingFeed optimizationGoogle Merchant

Google Shopping feed optimization: 8 levers, ranked

A valid feed is not an optimized one. Google Merchant Center will happily approve a catalog where every title reads like an internal SKU name, every image is a bare cutout, and product_type is empty across the board. Approved means eligible to serve. It says nothing about whether you win the auction, match the query, or earn the click once you are shown. This is not about getting un-rejected, that is the disapprovals guide. This is about an already-approved feed winning more impressions and more clicks.

Below is the practitioner ranking of feed levers by impact, then each lever in priority order: the verified Google fact, an attributed real-world figure where one exists, and the honest line on whose job it is. Google does not publish an official attribute-impact ranking, so treat the order as what feed specialists find moves the needle, not as a Google spec.

The 8 optimization levers, ranked by impact

Table first. Each row is a lever, why it wins clicks, and whose job it actually is. Read the third column carefully: the single biggest lever is mostly a merchant decision that a tool can only execute at scale, not invent for you.

LeverWhy it wins clicksWhose job
1. Title structureThe primary query-match signal and the visible ad headline. Practitioners rank it #1 by a wide margin.Merchant authors the strategy; Emberfeed templates the field and per-SKU overrides
2. Image qualityThe Shopping-ad creative itself. Clean main image plus lifestyle shots in the extra slots lifts CTR.Emberfeed renders it
3. product_type + google_product_categorySharpens query matching; granular product_type also unlocks campaign segmentation.Merchant chooses the taxonomy; Emberfeed populates it from the category tree
4. GTIN / identifiersMissing on branded products triggers a limited-performance warning that caps visibility.Merchant sources real GTINs; Emberfeed sets the identifier_exists fallback
5. DescriptionA secondary keyword surface for long-tail and semantic matching, and for free listings.Merchant writes the copy; Emberfeed can templatise it
6. Custom labelsNo direct match or CTR effect, but enables margin / season / bestseller bid segmentation.Merchant sets the strategy; Emberfeed writes the field via a rule
7. Price & availability accuracyStale values get the product disapproved; correct values keep it serving and enable sale annotations.Emberfeed refreshes hourly; storefront and bidding are the merchant's
8. Supplemental feedsOverride one attribute (a title test, custom labels, a sale price) without touching the primary feed.A native Merchant Center mechanic; Emberfeed's rule-based feed does the same job upstream

Work the list top-down. The early items move the most, and they gate the rest: there is no point tuning custom labels on a product that is disapproved on price, and no point perfecting a description when the title is the field doing the matching.

1. Title structure, the lever that decides matching

The title does two jobs at once. It is the text Google matches against the shopper's query, and it is the headline they read in the ad. Get it wrong and you lose twice: you do not show for the searches you could win, and the ones you do show for read like a part number.

Verified Google facts. The titleattribute allows a maximum of 150 characters, and Google states verbatim: "Put the most important details first. Users will usually see only the first 70 or fewer characters of your title." It also says to use all 150, because the full string is what matches your product to a search, even the part that does not render. Google publishes category formulas as worked examples, not as a single universal template:

  • Apparel, include size and color: Sleeveless Polka Dot Skater Dress, Small, Black.
  • Electronics, model plus capacity plus color: Google Pixel 4 64 GB - Midnight Blue.
  • Software, include the word "subscription" and the duration.
  • Bundles, describe the components: Camera - black + 18-55mm lens and charger.

The element order Google recommends, where a formula fits, is brand plus product type plus key attributes. The practical rule that follows from the 70-character note: front-load the first 70 characters as if they were the whole title, then let the remainder do its matching work.

What practitioners find (attributed, not Google). StoreGrowers analysed 151 Shopping ads across 120 advertisers in 13 industries. In that sample the average title ran 70 characters, with a recommended sweet spot of 75 to 100; 81% used a different title in the feed than on the website product page; 97% capitalised in title case and used digits rather than spelled-out numbers; 70% used a separator such as a dash, pipe, or comma. Their general pattern was brand plus product plus specs or keywords plus size plus SKU, varied by category.

Whose job, honestly.Titles are a merchant decision. What to front-load, which attributes matter for your category, how aggressive to be on keywords, that strategy is yours. Emberfeed's contribution is execution at scale: apply a title template across the whole catalog with a field rule (something like {{brand}} {{title}} {{color}} {{size}}) so every product ships a consistent, front-loaded structure, and fix individual SKUs with a per-product override rather than hand-editing XML. The tool does not write your title strategy; it stops you from applying a good one by hand 10,000 times.

2. Image quality, the creative you actually control

Once the title earns the impression, the image earns the click. On the Shopping slice the product image is the ad, so the lever here is not just passing policy, it is being the most clickable result in a grid of competitors. The compliance specifics (the 500x500 floor, the no-overlay rule, the IPTC AI tag) are covered in the disapprovals guide and the image requirements reference; this is the angle on an already-valid image winning more clicks.

Verified facts. The 500x500 pixel minimum is enforced from January 31, 2027, with warnings starting April 14, 2026; the product should fill 75 to 90% of the frame; you get one main image_link plus up to ten additional_image_link slots. The practitioner consensus on how to use those slots: keep a clean, plain or white background on the main image_link, and put lifestyle or in-context shots in the additional slots. One feed-tooling analysis found that products carrying both a standard and a lifestyle image saw 27% higher CTR on average; treat that as a single-source directional figure, not a law.

Whose job, honestly. This is the lever where Emberfeed does the most direct work. It renders every product image on demand, so you can ship a clean, branded image that sits comfortably above the floor to Google while serving an aggressive-promo variant to Meta from the same source, and the rendered image_linkpoints at a public CDN with proper headers, which sidesteps the "could not crawl image" class of rejection. For the design angle, how to make a rendered image lift performance rather than merely pass policy, see AI-designed catalog images.

3. product_type and google_product_category, the matching pair

These two attributes are easy to confuse and do different things. google_product_categoryis Google's fixed taxonomy and steers ad serving and matching; product_type is your own taxonomy and does double duty, sharpening matches and giving the campaign a structural handle. Filling them in well is one of the cheapest durable improvements on this list.

Verified Google facts. product_typeis optional for each product. You can submit up to 5 values of 0 to 750 characters each, but only the first value organises bidding and reporting in Google Ads, so the first one is the one that counts. Google recommends granularity, include all the levels: "Books > Non-Fiction > Sports > Baseball" classifies the product more precisely than a flat "Baseball." google_product_category is also optional, Google auto-classifies when you omit it, but the auto-classifier is rough on niche products, so setting it manually improves matching where the category is not obvious.

What practitioners find. Deep product_typehierarchies (three levels or more) tend to capture high-intent long-tail queries, often at lower CPC and higher ROAS, while vague values like "Products" or "Sale" waste the field entirely. The goal is depth and specificity, not a tidy two-level summary.

Whose job, honestly.Choosing the taxonomy is the merchant's, it reflects how you think about your catalog. Applying it consistently is the tool's: Emberfeed can populate product_type from the source category tree with a field rule, and set google_product_categoryper category rather than leaving every product to Google's guess.

4. GTIN and identifiers, clearing the limited-performance cap

Missing product identifiers do not get a branded product rejected, they get it throttled, which is easier to miss precisely because the product keeps serving. The lever is removing that cap, either with the real identifier or with an honest declaration that none exists.

Verified Google facts. gtinis conditional, "strongly recommended for all products with a GTIN assigned by the manufacturer." Google's stated benefit is qualitative: a GTIN "helps us make your ad or unpaid listing easier for your customers to find," and "including this in your product data can increase the performance of the product." The official page gives no specific percentage. Since late 2023, missing GTIN or MPN on a branded product is a limited-performance warning that caps visibility in Shopping and free listings, not a hard rejection.

Whose job, honestly. Real GTINs have to be sourced by the merchant, from manufacturer catalogs. For genuinely identifier-less products (handmade, custom, DIY) where no GTIN exists to find, a single Emberfeed conditional rule sets identifier_exists to false across the catalog, which clears the warning honestly in one move. The rule is the right answer only when the identifier truly does not exist, not as a way to suppress a warning on products that should carry one.

5. Description, the secondary keyword surface

The title carries the matching, but the description is a second surface Google reads, and it is where long-tail and semantic queries get their purchase, especially in free listings. It will not rescue a weak title, but on an already-valid feed it is free incremental reach.

Verified facts. The description attribute accepts 1 to 5000 characters, and Google recommends roughly 500 to 1000. The first 150 to 180 characters are typically what render in the ad or free listing, so the front-loading discipline from titles applies here too: lead with the details that matter, do not bury them after a paragraph of brand boilerplate. The title does the heavy query-matching; the description widens the net for the searches the title does not capture.

Whose job, honestly.Writing copy that is genuinely useful, accurate, and specific is the merchant's. Emberfeed can templatise and clean descriptions with field rules (strip HTML, enforce a structure, append a consistent spec block), but it does not write the substance.

6. Custom labels, the campaign's handle on your feed

Custom labels are the cleanest example on this list of a feed field that enables a lever it does not itself pull. They change nothing about matching or CTR directly. What they do is let the campaign tell your products apart, so bids and budgets can favour the ones that deserve it.

Verified facts. There are 5 optional attributes, custom_label_0 through custom_label_4, invisible to shoppers, used purely to group products for bids, budgets, and reporting in Google Ads. The common segmentations are margin, price point, performance or bestseller tier, season, clearance or promo, shipping, and in-house brand. If the labels are empty, Google cannot tell your hero products from your dead stock, and everything competes in one undifferentiated pool.

A practitioner figure, cited modestly.DataFeedWatch reports a client that segmented by price level, bestsellers, and season and saw a 21% lift in conversion rate. That is one agency's single-client outcome, reported by DataFeedWatch, not a guaranteed or typical result, and the much larger numbers that circulate in the same genre read as hype. The point is directional: a sensible label taxonomy gives the campaign somewhere to push.

Whose job, honestly.The taxonomy and the strategy, what to tag and how to bid on it, are the merchant's. Emberfeed can write the label with a field rule keyed off margin or a bestseller flag, but using it to steer budget is a Google Ads decision the tool does not make. Writing the handle is the feed lane; pulling it is the campaign lane.

7. Price and availability accuracy, the approval insurance

Price and availability are an optimization lever in two directions. Wrong, and the product disapproves and drops out of the auction entirely. Right and competitive, and you both stay in and unlock Google's free sale annotations. The disapproval mechanics are covered in the disapprovals guide, so the angle here is keeping an approved product winning.

Verified facts. Price or availability that disagree with the landing page get the product disapproved, and the most common cause is staleness, the feed lagging a price change or a sell-out. Beyond compliance, Merchant Center exposes a Price Competitiveness report (also in the Reports API as the price_competitiveness table): a daily, per-country, per-product benchmark, computed as the weighted average of other merchants' offers for the same product, flagged above, at, or below the benchmark. It is how you find the products that are priced out of the auction rather than guessing. Finally, sale_price (with an optional sale_price_effective_date) is what lets Google draw the strikethrough sale annotation, a free CTR boost that comes from a field, not an image overlay.

Whose job, honestly.Emberfeed re-pulls the source hourly, so the served price and availability stay current, which is the feed-lane fix for staleness-driven disapprovals and correct sale annotations. The actual pricing strategy, and how you respond to the competitiveness benchmark, is the merchant's; and the storefront's structured data has to agree with the feed, which is a storefront-side job, not a feed one. The feed can be perfect and still get disapproved if the page contradicts it.

8. Supplemental feeds, the surgical override

The last lever is the most surgical: changing one attribute for a set of products without re-uploading or re-authoring the primary feed. It is the mechanism behind clean title A/B tests and daily-refreshed labels.

Verified facts. A supplemental feed adds or overrides a single attribute for matching id values, leaving every other attribute to the primary feed. The canonical uses are title A/B tests, custom labels refreshed daily from performance data, temporary sale prices, and quick fixes such as a missing GTIN or a category correction. Best practice is one supplemental feed per use case: one for labels, one for title tests, one for sale prices.

Whose job, honestly. Supplemental feeds are a native Merchant Center mechanic, and you can and should use them directly for exactly these surgical overrides. Emberfeed is not a GMC supplemental feed and does not plug in as one. Its analogue is upstream: because it serves a single enhanced primary feed with rule-based fields, a lot of what people reach for a supplemental feed to do (override titles, write labels, format sale prices) is already handled in the served feed itself, and its duplicate-feed pattern (one source, two served feeds with independent rules) covers the "different variant for a different target" case.

The feed lane, the merchant lane, and the campaign lane

Optimizing a Google Shopping feed is three jobs that get blamed on each other. Strategy is the merchant's: the title formula, the label taxonomy, the pricing, what counts as a hero product. Execution at scale is the feed lane: rendering images, applying field rules, keeping values fresh, validating. Bidding and structure are the campaign lane: budgets, target ROAS, listing groups, audience signals. Here is the split as a single table.

Merchant decidesFeed lane (Emberfeed executes)Campaign lane (Google Ads)
Title formula and which attributes to front-loadApply the title template across the catalog; per-SKU overridesBid strategy, target ROAS, daily budget
Label taxonomy (margin, season, bestseller)Write custom_label fields via rule; populate product_typeUse labels and product_type to build listing groups
Pricing and competitiveness responseKeep price and availability fresh via hourly refresh; format sale_priceBid up or down on the competitiveness benchmark
Brand and image creative directionRender clean-for-Google, promo-for-Meta images above the floorAudience signals, search themes, asset groups
Which products are hero vs clearanceSet identifier_exists; validate the served feedConversion tracking and measurement setup

The three lanes compound, they do not substitute. A flawless feed cannot rescue a campaign with no conversion tracking and a broken bid strategy. A brilliant bid strategy cannot rescue a feed where the hero products carry SKU-name titles and bare cutout images. And no tool can invent your title strategy or your label taxonomy, those are judgment calls about your own catalog. What a feed editor does is make sure a good judgment call reaches all 10,000 products correctly, every hour, and passes validation on the way out.

Related

Ship better catalog ads this afternoon.

Free for 3 months on one feed up to 1,000 products. Connect your XML feed, design a template, paste the new URL into Meta / Google / TikTok.