A product with a blank GTIN, MPN, or brand field doesn't usually get disapproved in Google Merchant Center — it gets throttled. The listing stays approved, stays on Shopping ads and free listings, and keeps syncing without a single red flag in Shopify admin. What changes is quieter: Google shows it less. Fewer impressions, fewer clicks, on a product your dashboard insists is perfectly fine.
The warning that explains this lives inside Merchant Center's Diagnostics, not inside Shopify — which is exactly why it can sit unresolved for months. A Shopify merchant on the Shopify Community forum described it plainly: the same "limited performance" flag showing up on a batch of products, unchanged, roughly a year after it first appeared.
What "limited performance due to missing identifiers" actually means
Google's own guidance on data-quality disapprovals is explicit that this is a distinct category from a disapproval: Google's page on fixing Merchant Center disapprovals states that "products that have product identification issues (such as missing a GTIN and/or MPN) have limited performance," and that these products "will continue to show on Shopping ads and free listings, but may appear with limited performance" rather than being pulled outright.
That said, the outcome isn't identical for every product. The same page also notes that for categories where Google strictly requires a GTIN, a missing or incorrect one can mean the item "won't be synced to your Merchant Center account and are disapproved" instead of merely throttled. Which path applies depends on your product category and which identifier is missing — but in the common case (a missing brand or MPN, or a GTIN-optional category), the listing survives; it just stops competing on equal footing.
Where GTIN, MPN, and brand actually live in your Shopify catalog
The GTIN comes from a field most merchants never touch: the barcode field. Shopify's own documentation for the Google & YouTube channel is direct about it — "add a barcode (GTIN): in your Shopify admin, go to Products, open the product, and add the barcode in the Inventory section." Nothing in the standard product-creation flow requires filling it in, so a product built by hand, imported from a supplier feed, or duplicated from a template can go live, sell for months, and never have one.
Brand and MPN aren't native Shopify product fields at all. Brand is usually inferred from the product's Vendor field when the Google & YouTube app builds your feed; MPN has no Shopify-side home and typically needs to be set as an override inside the channel app itself, or supplied via a supplemental feed. If a store never configured those overrides — which is common on stores that installed the app once and never revisited it — MPN is simply absent from every product, brand or no brand.
A common way this slips through unnoticed
For example: a store imports its catalog from a supplier or a CSV export that never populated the barcode field, because the supplier didn't provide GTINs for private-label or custom items. The products publish fine, the Google & YouTube channel syncs fine, and Merchant Center approves the listings — because a missing identifier alone, without also being flagged as an outright required field for that category, doesn't block approval. It shows up only as a "Needs attention" warning that nobody was watching for, quietly capping how often those specific products get shown against competitors whose identifiers are complete.
Not sure if your own listings are affected? We check every scanned product's structured data and feed-relevant fields against what Google actually expects — read-only, no admin access, about 2 minutes. → free scan
Why nothing in Shopify tells you this is happening
Shopify's product page shows "Active," the Google & YouTube channel shows the product as "Approved" or synced, and nothing in either surface distinguishes a fully-optimized listing from one running with limited performance. The warning exists exclusively inside Google Merchant Center's own Diagnostics and "Needs attention" views — a system most merchants only open when something else has already gone wrong. That's consistent with what StoreCanary's scans keep surfacing more broadly: product data problems that are technically visible somewhere, but never in the one place a merchant actually looks day to day.
How to check your own store
- In Shopify admin, open a sample of products under Products and check the Inventory section for each — is the barcode field blank?
- Open your Google & YouTube sales channel app and look for a "Needs attention" or diagnostics count on your product feed, not just an overall "connected" status.
- In Google Merchant Center itself, go to the Diagnostics tab (or the Needs attention page under Products) and filter for identifier-related issues — Google's guide to fixing a missing or incorrect GTIN walks through both this view and a bulk-CSV fix for stores with many affected products.
- Spot-check whether your Vendor field is actually populated for every product — an empty Vendor field usually means an empty brand attribute in the feed too.
The fix — and when identifier_exists is the right answer
If the product genuinely has a real-world GTIN (most branded, mass-produced goods do), add it to the barcode field and let it flow through the feed. If it doesn't — handmade goods, custom items, private-label products with no assigned barcode — the correct move isn't to leave the field blank and hope; it's to explicitly submit identifier_exists as false for that product, alongside an MPN and brand where you have them. Google's documentation for the identifier_exists attribute is specific that this only works if it's true: setting it to false on a product Google can find evidence has a real identifier "will receive a warning" of its own, so it isn't a blanket workaround — it's an honest declaration, not a bypass.
This sits in the same family as the price and landing-page mismatches we've covered before: Merchant Center isn't rejecting these products outright, it's comparing what your data claims against what it can verify, and quietly adjusting how much it trusts the listing. See the price mismatch trap for the pricing version of the same underlying pattern.
Next in this cluster
Not sure if this is happening on your store right now?
Scan my store for free