Blog

Why product feeds fail Google's checks, and what to do about it

Most Merchant Center disapprovals trace back to a handful of data problems: identifiers, titles, images, availability, and price. What each one costs, and how to fix it for good.

Nobody reads a disapproval email calmly. Google flags a batch of products on a Friday afternoon, the listings drop out of Shopping, and revenue leaks while you work out what “limited performance due to missing identifiers” is supposed to mean.

Here’s the useful part: disapprovals are predictable. Run enough feed audits and the same handful of problems shows up in almost every catalogue. This post walks through the five that do the most damage: identifiers, titles, images, availability, and price. For each one, what Google checks, what it costs you, and the fix.

Why does Google disapprove products at all?

Merchant Center is a trust system. Google shows your product data directly in search results, so it holds that data to a stricter standard than your website. Three things get checked constantly: required fields (no price, no listing), data quality (a title in all caps reads like a scam), and consistency (the feed says in stock, the landing page says sold out).

Fail a required field and the item is disapproved outright. Some quality problems limit eligibility or make the product data less useful, even when the item is not fully disapproved. The second kind is harder to spot, because nothing tells you it’s happening.

What do missing identifiers actually cost?

GTIN, MPN, and brand connect your item to Google’s product graph. With them, Google knows your SKU is the same product it already has reviews, price benchmarks, and search history for. Where identifiers exist, providing the correct GTIN, brand and MPN helps Google understand which product the offer represents.

This can be difficult to diagnose because it may not appear as a hard disapproval. The item looks fine in Merchant Center while the data stays weaker than it needs to be.

The fix depends on what you sell. If you resell branded goods, GTINs come from your supplier; chase them. If you sell own-brand or handmade products, you likely have no GTIN, so set brand plus MPN and tell Google identifiers don’t exist for those items. Even brand alone improves matching.

Why do long titles lose clicks?

Google accepts titles up to 150 characters, truncates anything longer, and in most placements shows around 70. Whatever sits past that point is invisible in the ad.

The common failure isn’t length itself, it’s order. Feeds fill up with titles like “FREE UK DELIVERY | Shop The Summer Sale | Blue Ceramic Coffee Mug 350ml”, spending their visible characters on boilerplate. Flip it: brand, product type, key attribute first. The mug should lead with “Brewell Blue Ceramic Coffee Mug 350ml” and let the delivery message live in your ad settings, where it belongs.

All-capital titles can breach editorial requirements and are harder to scan. Fix the export, or fix it with a transform rule between your source and the channel.

What image problems get items rejected?

Two show up constantly. A missing image is an instant disapproval: Shopping is a picture format, and Google won’t list an item it can’t show. Broken image URLs are subtler: a link that 404s, times out, or redirects somewhere unexpected when Google crawls it takes the item out, and a flaky CDN makes listings flip in and out of approval so you end up chasing a ghost. Use an image URL that Google can fetch reliably and that returns the correct image. Per Google’s image link spec, HTTPS is the preferred site-wide standard, but the key feed requirement is that the image remains reachable and compliant.

If your CDN serves both protocols, standardising on https is a one-line fix: a replace rule swapping http:// for https:// on the image field updates every affected item at once. Missing or broken images need fixing at the source, best sellers first.

Why is availability wording so strict?

For ecommerce products, Google’s availability spec defines four standard values: in_stock, out_of_stock, preorder, backorder. Your platform’s export might say “yes”, “available”, “1”, or “usually ships in 2 days”. All of those are rejections, because the value has to match the spec exactly.

It’s an easy fix (a lookup rule mapping your values to the standard set) and an easy thing to break silently when someone changes the export. If availability starts failing after a platform update, look here first.

How do price errors take listings down?

A missing or unreadable price kills a single listing. A batch of zero prices is worse: outside a few specific programmes, zero-price items are disapproved on sight. Currency gaps cause quieter trouble. A price with no currency gets your account default assumed, which is wrong exactly when it matters, on multi-currency stores.

Zero prices are usually placeholder rows or a broken export column, not real products. Exclude them from the feed until the source is fixed. That keeps the account clean while you sort it out.

What’s the fastest way back to approved?

Triage by consequence, not alphabetically.

  1. Required-field failures first: price, availability, image, link, title. These items are earning nothing at all.
  2. Bulk data errors second: zero prices and widespread mismatches, because they affect many items at once.
  3. Quality improvements last: identifiers, title order, descriptions. These compound over weeks.

Then make each fix once, in one place, and let it apply to every future version of the feed. A spreadsheet fix rots the next time the export runs. A rule sitting between your source feed and the channel keeps working.

That layer between source and channel is what SKULayer is. It audits the feed you already have, explains every finding in plain English with the affected items listed, and lets you fix them with rules you preview before anything ships. Your first audit runs in about ten minutes on the Free plan, no card needed to sign up.