GuideUpdated 2026-07-06

10 Shopify feed mistakes that quietly kill Shopping performance

The most common Shopify-to-Google-Shopping data mistakes, empty barcodes, vendor-as-brand chaos, compare-at price traps, option naming drift, and how to fix each one.

Plain-English summary

Most Shopify stores lose Google Shopping performance to the same short list of data mistakes, none of which show any error inside Shopify. Barcodes empty or holding SKUs, vendors that aren't brands, sale prices done by editing price instead of compare-at, images that don't match variants. Here's the list, worst first, with the fix for each.

The list, worst first

1. Empty barcode fields (missing GTINs)

Shopify never requires barcodes, so most catalogs are full of gaps: and the barcode field is the only native source for Google's gtin. Products without GTINs miss catalog matching and richer placements. Fix: source real GTINs from your suppliers, or use GTIN enrichment to match products against barcode databases at scale.

2. SKUs stored in the barcode field

Worse than empty: internal codes submitted as GTINs fail Google's check-digit validation and generate "incorrect identifier" disapprovals that can suppress more than the affected items. Fix: audit barcodes for format validity (the identifier guide covers what's valid); clear the fakes and fill properly.

"The Rio ✨" is charming on your PDP and invisible on Google, which matches ads to queries substantially on title text. Brand, product type, and key attributes (colour, size, material) belong in the title: front-loaded, since the first ~70 characters carry the weight. Fix: enrich titles in the feed layer; keep the charming version on your site: a feed layer means you don't have to choose.

4. Vendor field chaos becoming brand chaos

"Nike", "NIKE", "Nike EU" and "nike" are one brand to you and four to Google: breaking brand filtering and catalog matching. Fix: normalise vendors once, or normalise brand in the feed layer.

5. Sale pricing by editing the price field

Editing price down for a sale (instead of setting compare-at) means Google never sees a sale: no strikethrough, no sale annotation, no price-drop badge: you paid for the discount and got none of the merchandising. Fix: compare-at price holds the original, price holds the sale price; the feed then maps them to Google's price/sale_price correctly.

6. No google_product_category anywhere

Shopify has no native field for Google's taxonomy, so feeds ship with auto-guessed top-level categories. Specific leaf categories ("…> Dresses > Cocktail Dresses") beat generic ones ("Apparel & Accessories") for matching and CPC efficiency. Fix: per-product metafields if your catalog is small; automated classification if it isn't.

7. One image for all colour variants

Shopper searches "green armchair", sees your grey hero image, doesn't click: or clicks and bounces. Fix: assign per-variant images in Shopify (one per colour minimum) and confirm your feed maps variant images. See variants and item_group_id.

8. Option names Google can't read

color and size in the feed are built from variant option values: but only when the pipeline recognises your option names. "Shade", "Col.", "Colour way" across products means variants silently ship without colour. Fix: standardise option names, or use a feed layer that normalises them.

9. "Continue selling when out of stock" leaking into availability

Products set to keep selling at zero inventory report as in-stock; if your PDP then shows "sold out" or long backorder messaging, that's a price/availability-adjacent mismatch waiting for a crawl. Fix: make the feed's availability logic mirror what the landing page actually tells a shopper.

10. Draft/archived products and hidden channels

Products not published to the Online Store channel still sometimes reach feeds (or vanish from them unexpectedly after a bulk status change), producing 404 landing pages or mystery product-count drops. Fix: reconcile feed count against Active + Online Store-published count whenever either moves unexpectedly.

The meta-mistake: auditing once

Every one of these regresses: a new supplier import, a seasonal bulk edit, a staff change. The stores that stay healthy aren't the ones that fixed the list once: they're the ones with continuous monitoring that flags the regression the day it lands. That's the job of the Feed Health Score and its change log.

Frequently asked questions

How do I know which of these my store has?

Connect the store to /tools and the Feed Health Score breakdown lists every one of these by count, which products, which field, and what the fix is. Or audit manually with a product export and the checklist below.

My feed app shows no errors, am I fine?

Not necessarily. Most feed apps report delivery success, not data quality. A feed can be 100% "valid", every required field present, and still have weak titles, top-level categories and SKUs-as-barcodes that cap performance without a single error anywhere.

Put this into practice. /tools rebuilds messy product data into Merchant Center-ready feeds. Connect a store and see your Feed Health Score in minutes.
Try /tools →