Why feed optimisation is the highest-leverage Shopping work
Most Shopping accounts under-perform not because of bid strategy, but because the feed is wrong. Title structure, attribute coverage, custom labels, GTIN/MPN coverage, and supplemental feed hygiene each shape what data the bid algorithm has to optimise against. Fix these, and the bid strategy works on accurate data. Skip them, and Target ROAS optimises against noise.
This article is a working checklist, not theory. Each of the 47 items below is something we inspect on every audit, with a clear "what to check / why it matters / how to fix" structure. Use the interactive audit in the next section to score your own account.
Bid strategy operates on the data the feed gives it. Optimise the feed first, optimise bids second. Reverse the order and your Target ROAS optimises against noise.
Run the interactive feed audit
Tick "yes / no / ?" against each of the 47 items below. The Feed Health Score updates live, severity-weighted (most-impactful items count more). The top five highest-impact failures highlight where to start. Use this as a directional self-assessment — for a verified audit, book a free 30-minute review.
47-point feed audit checklist
Self-score your account. Live Feed Health Score updates as you tick items.
Feed Health Score
0
0 / 108 severity-weighted points
Items reviewed
0 / 47
Top 5 highest-impact failures
None yet — start scoring below.
·3Lead with searchable terms, not brand or SKU
·3Use [Brand][Product Type][Key Attribute][Size/Variant] framework
·3Front-load most-searched attribute
·2Stay under 150 characters; prioritise first 70
·1Avoid title-stuffing punctuation
·2Test variations across high-AOV SKUs
·3Match title language to query language (synonyms via search-term reports)
·2Monitor disapprovals from misleading titles
·2Use Google product categories at deepest applicable level
·2Populate product_type for internal segmentation
·2Map all required attributes per Google product category
·2Populate material/pattern/color/size/gender/age_group where relevant
·1Use additional_image_link for lifestyle / variant imagery
·2Set condition accurately
·1Populate unit_pricing_measure for products sold by weight/volume
·1Audit product_highlight fields where applicable
·3GTIN coverage at 100% for branded products
·3MPN populated where GTIN unavailable
·3Brand field populated and consistent
·2Identifier exists flag set correctly for unbranded items
·2Audit GTIN validity (GS1-compliant)
·3Use custom_label_0 to custom_label_4 for margin tiering
·3Tier 1 = highest-margin SKUs (aggressive Target ROAS)
·2Tier 2 = mid-margin (moderate)
·3Tier 3 = low-margin (Maximum CPC capped)
·2Additional labels for seasonal / hero-product / competitive segmentation
·2Primary image white-background compliant
·2Image 800×800px minimum (1200×1200 preferred)
·1additional_image_link populated with 2–6 lifestyle shots
·2No watermarks, no overlay text on primary image
·2Supplemental feed populated for sale_price overrides
·2Supplemental for sale_price_effective_date during promotional windows
·2Supplemental for stock-level signals where rules need to apply
·2Supplemental hygiene — kept in sync with primary feed
·3availability accurate (in_stock / out_of_stock / preorder)
·2Stock-level signals fed to PMax asset groups
·3Out-of-stock SKUs paused in Shopping campaigns (not just deprioritised)
·2Re-stock automation tested
·2Promotions registered in Merchant Centre Promotions Centre
·2sale_price and sale_price_effective_date populated correctly
·3Avoid permanent sale-price flags (Google demotes)
·3Disapproval rate under 5% (target: under 2%)
·3Account-level warnings reviewed weekly
·3Suspended accounts addressed within 24 hours
·3Asset groups segmented by margin tier (not by product taxonomy)
·3Audience signals attached to each asset group
·3Brand/non-brand separation enforced via campaign exclusions
The 47-point checklist — what each item means
The interactive audit above lists every item as a tickable line. Below is the operational depth: for each section, what you're inspecting, why it matters, and how to fix it.
Product Titles (8 items)
Titles are the highest-leverage feed attribute by an order of magnitude. Lead with searchable terms (not brand or SKU). Use the [Brand][Product Type][Key Attribute][Size/Variant] framework. Front-load the most-searched attribute. Stay under 150 characters and prioritise the first 70 (Google truncates aggressively). Avoid title-stuffing punctuation. Test variations across high-AOV SKUs. Match title language to query language using your search-term reports. Monitor disapprovals from misleading titles.
Product Categories + Attributes (8 items)
Use Google product categories at the deepest applicable level. Populate product_type for internal segmentation (separate from Google's taxonomy). Map all required attributes per product category — material, pattern, colour, size, gender, age_group where relevant. Use additional_image_link for lifestyle and variant imagery. Set condition accurately. Populate unit_pricing_measure for products sold by weight or volume. Audit product_highlight fields where applicable.
GTIN / MPN / Brand (5 items)
100% GTIN coverage for branded products. MPN populated where GTIN is unavailable. Brand field populated and consistent (no variant spellings). Identifier-exists flag set correctly for unbranded items. GTIN validity audited against GS1 standards.
Custom Labels — Margin-Tier Segmentation (5 items)
Use custom_label_0 through custom_label_4 for margin tiering. Tier 1 = highest-margin SKUs, run with aggressive Target ROAS. Tier 2 = mid-margin, moderate bidding. Tier 3 = low-margin, run with Maximum CPC capped to protect contribution. Use additional labels for seasonal grouping, hero-product flagging, and competitive segmentation.
Images + Lifestyle Imagery (4 items)
Primary image white-background compliant. Image at 800×800px minimum (1200×1200 preferred). additional_image_link populated with 2–6 lifestyle shots per SKU. No watermarks and no overlay text on the primary image (Google disapproves both).
Supplemental Feeds (4 items)
Supplemental feed populated for sale_price overrides during promotions. Supplemental for sale_price_effective_date across promotional windows. Supplemental for stock-level signals where rules need to apply by SKU. Supplemental hygiene maintained — kept in sync with the primary feed daily.
Inventory + Availability (4 items)
availability attribute accurate (in_stock / out_of_stock / preorder). Stock-level signals fed to PMax asset groups. Out-of-stock SKUs paused in Shopping campaigns — not just deprioritised in bidding. Re-stock automation tested and verified working.
Promotions + Sale Price (3 items)
Promotions registered in Merchant Centre Promotions Centre. sale_price and sale_price_effective_date populated correctly. Avoid permanent sale-price flags — Google demotes products with continuously-on sale pricing.
Merchant Centre Diagnostics (3 items)
Disapproval rate kept under 5% (target: under 2%). Account-level warnings reviewed weekly. Suspended accounts addressed within 24 hours — Google's response window for reinstatement requests degrades rapidly after that.
Performance Max Integration (3 items)
Asset groups segmented by margin tier — not by product taxonomy. Audience signals attached to each asset group (customer-match, in-market, detailed demographics). Brand and non-brand separation enforced via campaign-level brand-exclusion lists.
Real client outcome
Case · LA Design Concepts
US luxury fabrics & wallpaper · 60+ brand PMax campaigns
+1,066% revenue · 7 months · feed-led rebuild
Sixty-plus Performance Max campaigns, brand-by-brand. Every product title rewritten using the [Brand][Product Type][Key Attribute] framework. Custom labels populated with margin-tier segmentation across the entire catalogue. Supplemental feeds layered in for promotional windows. Result: revenue up over 1,066% from a position previous agencies could not improve.
→ /case-studies/la-design-conceptsCase · Strictly Beds and Bunks
UK furniture e-commerce · Shopping + PMax + CSS
9.31× ROAS · month one · £51.7K revenue from £7.2K spend
Feed rebuild + CSS partner activation in month one. Title framework applied to the catalogue, custom labels for margin tiering, CSS partner reducing CPC by ~20%.
→ /case-studies/ecommerce-furniture-google-adsCase · Oh My Cream
UK premium beauty · Shopping + Search + Strategy
+50% profit · 3 months · alongside an existing big agency
Feed work + bid strategy refinement delivered profit lift while running alongside the client's existing agency. Verified Director quote: "He helped us unlock growth we previously thought wouldn't be possible."
→ /case-studies/oh-my-creamThe title framework, in detail
The framework is [Brand][Product Type][Key Attribute][Size/Variant]. The order matters — Google's algorithm weights the first 70 characters most heavily, and human buyers scan left-to-right. Starting with brand (when buyers search for it) or product type (when they don't) anchors the title in the search query language.
Below: before-and-after examples across four verticals. The "before" titles are real samples from accounts we've audited; the "after" titles are how we rewrote them.
| Before (typical bad) | After (framework applied) |
|---|---|
| KRV-2387-BLU | Kravet Velvet Pillow Cover Blue 22-inch |
| Product 14593 | Schumacher Hand-Block Wallpaper Floral Cream 27-inch Roll |
| SKU-7741-K | Bunk Bed Triple Sleeper Solid Pine Single + Single Over Double White |
| Beauty-001 | La Roche-Posay Toleriane Double Repair Moisturiser SPF 30 75ml |
Custom labels for margin-tier bidding
The standard Smart Bidding model optimises against revenue. Revenue is uncorrelated with profit. A high-revenue, low-margin SKU eats spend without contributing margin; a low-revenue, high-margin SKU under-bids at constant Target ROAS.
Margin-tier custom labels solve this. Populate custom_label_0 with margin tier (Tier 1 = highest, Tier 3 = lowest). Run Tier 1 with aggressive Target ROAS to maximise volume. Run Tier 3 with Maximum CPC caps to protect contribution. The result: spend follows margin, not revenue.
Illustrative margin tier distribution — luxury e-commerce account
- Tier 1 (high margin)
- Tier 2 (mid margin)
- Tier 3 (low margin)
Tier 1 = 15% of SKUs / 40% of profit. Tier 2 = 50% of SKUs / 45% of profit. Tier 3 = 35% of SKUs / 15% of profit. Margin-tier bidding aligns spend with profit contribution, not revenue contribution.
Common feed mistakes that kill performance
- Titles leading with SKU codes. Buyers don't search for SKU codes. The auction never matches.
- Missing GTIN coverage on branded products. Google de-prioritises items without identifiers in branded searches.
- Permanent "sale price" flags. Google demotes products with continuously-on sale pricing — the demotion compounds over months.
- Out-of-stock SKUs left active in Shopping campaigns. Wastes spend and damages CTR for the entire campaign.
- PMax asset groups built by product taxonomy, not margin tier. Optimisation pulls spend toward whichever taxonomy bucket happens to convert, regardless of contribution.
- No supplemental feed for promotional windows. Forces last-minute primary-feed edits that risk syncing failures.
- Disapproval rates above 5% unaddressed. Compound risk to account-level standing.
- Schema markup absent on product pages. Reduces Google's confidence in matching feed data to landing-page content.
How CSS partner activation compounds with feed work
Routing Shopping spend through a CSS partner reduces effective CPC by ~20%. When combined with feed optimisation, the impact compounds. Better feed = higher CTR + higher conversion = better Quality Score, AND CSS = lower CPC. The two together can shift account economics by 30–50% versus baseline.
Mechanism: Google's own CSS takes a margin on the auction value. When a CSS partner submits the bid instead, that margin is removed and shows up as a lower effective CPC. Same SERP placement, same visibility, lower cost per click.
Read the full CSS partner explainer at /google-ads/google-shopping-css, or see the feed optimisation service page for what we deliver inside a paid engagement.
Methodology + reviewing cadence
The 47-point checklist is reviewed quarterly against Merchant Centre policy updates and Google Shopping platform changes. Severity weights (1–3) reflect observed impact-per-fix across our client portfolio Q1 2026. Top-failure ranking in the interactive audit uses severity-weighted scoring.
Last reviewed: April 2026. Next review: July 2026.
Frequently asked questions
Work With Visionary Marketing
Get a real Visionary feed audit — 30 minutes, no pitch
Senior-led 30-minute audit against the 47-point checklist on this page. You'll get your Feed Health Score, top three highest-impact failures, and a written recommendation. Yours to keep, even if you don't engage us.
Visionary Marketing is a UK-based SEO and Google Ads agency that takes a data-led approach to growth. We don't guess — we analyse your market, competitors, and performance data to build strategies that drive measurable revenue. Every campaign is grounded in real numbers, not assumptions.