Introduction

If your Google Shopping results swing while Merchant Center shows a clean list of approved products, the feed is the first place to look. "Approved" only covers the products Google actually received. Products that never arrived have no status at all, and archived products drop out of the main list. A feed can lose most of a catalog, show the wrong price, or split one product into duplicates without a single red error.

This is why Google Merchant Center feed optimization starts with a product-by-product audit, before any bid or budget change. We run Google Shopping for DTC brands as part of the 50+ brands we work with, and the feed is one of the first places we check. Below is what to look at and in which order, along with examples of what problems looked like in a real account.

Why does Merchant Center say "approved" when Shopping still underperforms?

Google assigns every product in Merchant Center one of five statuses:

  • Under review
  • Processing
  • Approved
  • Limited
  • Not approved

“Approved” means Google reviewed the product and it can show. It says nothing about products that never reached Merchant Center, and it doesn’t count archived products.

Archiving can also happen on its own. A Google Merchant Center Help page explains that hidden products are archived automatically after 14 days, and archived products are excluded from the main product list and Google. A product hidden for a stock issue in spring can still be sitting in the archive come November.

Feed apps, Shopify sync settings, and manual overrides each hold their own version of your catalog. Over time, they fall out of step with what’s live in your store. Usually, nobody runs a product-by-product check until Shopping spend underperforms.

Merchant Center feed errors: Which ones matter?

Disapproved items are the visible problem. Merchant Center flags them with a reason, so teams typically fix them first.

The bigger losses usually sit in products that are approved (but wrong), or products that never reach Google at all.

Error triage can cut the other way too. A jewelry brand we worked with kept getting warning emails from Google about its feeds, around 60 of them.

The feeds flagged in these emails were old ones that earlier marketing agencies had set up but nobody used anymore.

Several were checked and none had a single click.

We compared them with the feeds the campaigns actually ran on, confirmed the warnings had nothing to do with performance, and planned to delete the old feeds.

The lesson: check clicks before you fix. An error count tells you what Google noticed; clicks over the last 30 days tell you what matters. So, fix the errors on products that earn impressions first, and leave zero-click legacy feeds for the end of the cleanup.

How do feeds split one product into several listings?

A split happens when variant grouping breaks. Google's item group ID guidance explains that each variant is submitted as its own product with a unique id, and all variants of one product share the same item_group_id. For Shopping ads, that attribute is required for variants in the US, UK, Germany, France, Japan, and Brazil.

When the values differ, grouping fails. Google's duplicate variant guidance warns that products sharing an item_group_id without distinct values for size, color, or another variant attribute could show as duplicates of the same offer.

Split listings also split your data, spreading your clicks and conversions across several items. When this happens, no single listing shows the product's real conversion rate, and any rule you build on that structure has to be rebuilt once the grouping is fixed.

How do you fix duplicate Google Shopping listings?

There isn’t a one-click Google Shopping duplicate listings fix. Instead, it requires a step-by-step approach, as outlined below:

  • Export the feed and sort by title and item_group_id (duplicates with slightly different names or sizes will land next to each other).
  • Give every variant of one product the same item_group_id (Google recommends the parent SKU and asks you not to change the value once it’s set).
  • Give each variant a unique id and distinct variant value (e.g., size, color, or flavor must differ inside a group, because identical values are what produce duplicate offers).
  • Remove item_group_id from products that aren’t variants (e.g., bundles and sets are separate products, not sizes of one product).
  • Fix the source, then re-sync (edits made only in Merchant Center are overwritten at the next sync if Shopify or the feed app still sends the old data).

Why do archived products disappear from Shopping without an error message?

Archived products in a Google Shopping feed didn't fail a review. They just stopped serving. As such, they never show up as “not approved”, and the approved count looks healthy.

We saw this on a baby carrier brand's US store. In a Shopping feed session with Google's technical support team, the rep opened the data sources. The Shopify feed, sent through a third-party feed app, had uploaded 32 products, all approved. Below it sat 151 archived products.

The cause was traced back to Shopify, not Merchant Center. Products weren’t published to the feed app's sales channel (which is a toggle in each product's publishing settings). Some of the 151 products were never meant to show, such as a shipping protection add-on. So the work was sorting which archived products belonged on Shopping and publishing only those.

To catch this issue early, compare the following three numbers:

  • Live products in Shopify
  • Products the feed app sends
  • Products Merchant Center holds (archive included)

Any discrepancy between these three numbers means there are products shoppers can't see.

What causes sync issues between Shopify and Google Shopping feed?

To identify sync issues, we check these three places first:

Place to check What goes wrong What to do
Sales channel publishingA product that isn’t published to the channel that feeds Google never gets sent.Check this after every new product launch
Two systems sending dataA feed app and the native Google channel running side by side means two versions of your catalog.Pick one owner for each attribute
Stale dataGoogle marks products as “Needs update” 30 days after their last update, and products left without updates can lose visibility.Make sure the sync runs on a schedule, not only when a product gets edited

Catalog drift across sales channels is its own topic. We cover this in our guide on channel conflict between Amazon and Shopify.

How does hidden discount pricing hurt conversion rate?

A discount only works if shoppers see it. Google's sale price guidance says to keep the original price in the price attribute and send the discounted price in sale_price. Both prices also have to appear on your product page. When the rules are met, the sale price shows as the current price next to the original price with a strikethrough.

The rules depend on the country. For Shopping ads in the US, the discount must be more than 5% and less than 90%, and the original price must have been charged for five days within the past 30 days (or 15 days within the past 200).

In the UK, most of the EU, Canada and Australia, the original price must have been valid for 30 days within the past 200 days.

Accuracy matters at the moment the sale starts and ends too. Google's strikethrough price guidance says that if your website price differs from price or sale_price in your product data, the original price is discarded and no strikethrough shows.

We saw the cost of this on the same baby carrier brand. One carrier was running a 40% discount, but Shopping showed only the sale price, with nothing indicating that it was a reduced price.

Shoppers saw the deal only after they clicked through to the site, while another product in the same account did show its discount. The plan was to show the original price and the discount on all carriers at once, not on one product, because Google spreads spend across items and one product would give too little data. Then we compare conversion rate and return a week later.

Based on these rules, we recommend that you run these three checks on every sale to increase the chance that the strikethrough price is displayed:

Check Why it matters
Price holds the original and sale_price holds the discountSending only the discounted price removes the signal that it’s a deal.
The discount and price history meet your country's rulesThe US uses 5 of 30 days/15 of 200, while the UK and EU use 30 of 200.
Feed prices match your product pages at the sale’s start and end dateA mismatch means that the original price will get discarded (so time feed updates with your store price changes).

How to audit a Google Merchant Center feed before touching bids

Run these steps on any Shopping campaign that underperforms, before you change a bid or budget. It’s the order we use when setting up and running Google Ads for our clients.

  1. Pull the raw feed: Export every product Merchant Center holds (archived included) and every live product in Shopify. The interface shows statuses, while the export shows what was actually sent.
  2. Reconcile the counts: Compare approved, limited, not approved, and archived against your live product and variant count.
  3. Scan for duplicates: Sort by title and item_group_id and flag the same product under slightly different names or sizes.
  4. Check sale prices against your store: Open 10 discounted products and confirm each shows the original price beside the sale price.
  5. Triage errors by clicks: Rank flagged feeds and products by clicks over the last 30 days (zero-click legacy feeds go last).
  6. Fix the sync at the source: Decide whether Shopify or the feed app owns each attribute, check sales channel publishing, and remove conflicting overrides.
  7. Review bids and budgets last: Cost per acquisition (CPA) and return on ad spend (ROAS) on a broken feed reflect the feed's gaps, and bid changes made on that data will solve the wrong problem.

We run this full audit quarterly and after any feed app or sync change. We also reconcile approved vs live product counts every week, because the one number to watch is approved products as a share of your live catalog.

Feed audits are part of how our e-commerce marketing service runs Google Shopping alongside Meta, retention, and conversion rate optimization (CRO). If you’re weighing where Google fits inside your wider channel mix and against marketplace sales, see our breakdown of Amazon vs DTC.

If your Shopping spend is inconsistent and you suspect the issue is with the feed before the bids, talk to our e-commerce team. We’ll audit the full feed product by product before any budget changes. 60-day guarantee: if we don't improve your performance, you don't pay.

Get your free marketing plan

Frequently asked questions

What does "approved" actually mean in Merchant Center?

The “approved” status in Merchant Center means Google reviewed the product and it can show on Google. It only covers products Merchant Center received and that aren’t archived. As such, compare your approved count with your live catalog count to see real coverage.

How often should I audit my feed?

You should run a full product-by-product audit quarterly and after any change to your feed app or Shopify sync. Then, reconcile approved vs live product counts weekly. When Shopping CPA or ROAS shifts with no matching change in bids or budgets, audit right away.

Can a feed issue look exactly like a bidding problem?

Yes. A split listing, hidden discount, or block of missing products all show up as a weaker conversion rate, higher CPA, or lower ROAS. Raising or cutting bids fixes none of them, which is why we pull the raw feed before changing a single bid or budget.

Why are my Merchant Center feed errors not affecting sales?

Some errors sit on feeds that get no traffic, like old feeds a previous agency set up. Check clicks on any flagged feed before you prioritize it. Fix errors on products that earn impressions first, and schedule legacy cleanup after.

Do I need a feed app if I use Shopify?

Use one when you need feed rules, supplemental data, or title edits beyond what your current sync supports. It adds a second source of truth, so decide which system owns each attribute and check that every product is published to the app's sales channel.

Alex Stoykov
Article by:
Alex Stoykov
WRITTEN BY:
Alex Stoykov

Alex is the founder and CEO of Olifant Digital, where his team manages over $100M in annual client revenue across 50+ e-commerce brands. He sets the agency's strategy and methodology, audits client accounts, and reviews the team's work to make sure every brand is on track to hit its growth and profitability goals. He also leads team training, so the performance data and lessons from across all accounts shape how every account manager runs their clients.

YoutubeLinkedin
Article by:
Mike Todorov
REVIEWED BY:
Mike Todorov

Mike reviews every Amazon article on this blog for strategic and technical accuracy before it publishes. As Director of Amazon Growth at Olifant Digital, he sets marketing strategy across client accounts and personally audits PPC at every stage of growth. He brings 8 years of daily Amazon operations across 7 and 8-figure brands including Beauty by Earth, Ekster, and Bullstrap, the kind of hands-on depth most agency directors delegate away.

Linkedin