Why is Google Shopping flagging some of my products but not others in the same feed?
When Google Merchant Center flags some products but not others from the same feed, the cause is almost always incomplete or inconsistent product data, not a sync bug.
What's going on
A lot of merchants running the Google & YouTube sales channel see a strange pattern in Merchant Center: some products sail through with zero issues, while others, often ones that look identical in the Shopify admin, get flagged for a missing GTIN, missing product category, or a disapproved image. It feels random, but it almost never is. Google evaluates every variant against its feed requirements independently, and Shopify's product data model makes it easy for a field to be filled in on some variants or products and quietly skipped on others.
The most frequent culprit is that barcode and GTIN data live at the variant level in Shopify, not the product level. If a product was created with five variants and someone only entered barcodes for two of them, or added them later and missed a few, Google will approve two variants and flag three, even though the product page looks complete. The same thing happens with product category: if it was set manually per product instead of defaulted by product type, newer or bulk-imported SKUs can end up without it while older ones have it.
Metafield-driven feeds add another layer. If GTIN, custom labels, or category are being pushed to Google through metafields, whether set up manually or through an app, a partial CSV import, a migration, or a metafield definition added partway through building the catalog can leave a subset of products with the field empty. From Google's side this looks identical to simply forgetting to fill in the data, because that is usually what happened, just spread unevenly across the catalog rather than all at once.
Why it happens
Shopify stores identifiers like barcode and GTIN per variant, and category or custom-label data is often entered manually rather than inherited automatically by product type. Any process that touches only part of the catalog at a time, such as manual entry, a partial CSV import, a migration, or an app installed after some products already existed, leaves the untouched SKUs with blank or stale fields.
Google's Merchant Center diagnostics then reports each affected item as an individual error, which reads as random or inconsistent even though the root cause is usually a single, catalog-wide gap in how the data was originally entered.
5 ways to fix it
Pull the full diagnostics export and group by error type, not by product
In Merchant Center, download the affected-items report instead of clicking through errors one at a time. Group the export by error type and attribute (GTIN, product category, availability, image link) rather than by product. This usually reveals that the problem is narrow, for example 40 SKUs missing a barcode, or only products added after a certain date missing a product category. Once you see the pattern, fix that whole error class in one pass with Shopify's bulk editor: select the affected variants, add the missing field to all of them at once, and resubmit.
Check whether GTIN and category data were filled in per variant, not per product
The most common reason some SKUs error and others do not is that barcode, GTIN, or category data was entered on some variants of a product and missed on others, since Shopify stores identifiers like barcode at the variant level. A product with five variants where only two have a barcode will show three flagged variants even though the product looks complete in your admin. Use Shopify's bulk editor to add a Barcode column and check every variant, or export a CSV to review the whole catalog at once. For items that genuinely have no GTIN, such as handmade goods, mark them accordingly in your feed settings rather than leaving the field blank.
Set a default product category by product type instead of entering it manually
If you're using the Google & YouTube sales channel app, it lets you review product status separately from Merchant Center's own diagnostics, and it lets you set a default Google product category per product type. If category was only ever entered by hand on some products, newer or bulk-imported items can easily end up without one. Setting a default per product type means new SKUs inherit a category automatically instead of depending on someone remembering to fill it in.
Look for a partial data import or metafield gap affecting only part of the catalog
If GTIN, custom labels, or category values are being fed to Google through metafields, check whether a CSV import, a migration, or a metafield definition added after some products already existed only touched part of your catalog. This produces exactly the pattern of some SKUs passing and others failing, because the underlying data gap only affects a subset of products rather than all of them.
If this keeps recurring as you add products, look at a dedicated feed-management app
If your catalog is large and you find yourself doing this cleanup every time you add SKUs, a feed-management app that lets you set attribute rules by product type or tag can prevent the gaps from reappearing, rather than fixing them variant by variant after the fact. This is worth evaluating only if the manual audit above becomes a recurring chore rather than a one-time fix.
Bottom line
Feed errors that hit some SKUs but not others are almost always a data-completeness problem, not a platform bug: GTIN, category, or a metafield was filled in for part of your catalog and not the rest. Export the Merchant Center diagnostics, group by error type, and fix each class in bulk rather than product by product; that resolves the vast majority of these cases using tools you already have for free. There is no dedicated tool built specifically for this, so a bulk-editing or CSV workflow, or a feed-management app if your catalog is large, is the right path.
Browse the rest of the problem library, run a free storefront scan to catch issues like this automatically, or email us and we'll work out a custom solution for it.