Connecting Shopify to Google Merchant Center takes about half an hour. Install the Google & YouTube channel, sign in, link the accounts, verify the domain, wait for product review.
Shopify documents that well and so does everyone else. This isn't another Google Merchant Center setup walkthrough.
This is about the fortnight afterwards, when products start getting disapproved, the feed shows a number that doesn't match your catalogue, and Shopping campaigns serve a fraction of what you'd expect. The setup rarely fails. What fails is everything that depends on Shopify and Google Merchant Center agreeing with each other, and they disagree more often than you'd think.
How Shopify and Google Merchant Center actually connect
Worth being precise about this, because it explains most of what goes wrong later.
The Google & YouTube channel builds a product feed from your Shopify catalogue and pushes it to Merchant Center on a sync schedule. It is a one-way copy, not a live view. Merchant Center holds its own version of your products, and it can be wrong about them for a while before anyone notices.
Three consequences follow. Changes in Shopify take time to appear in Merchant Center. Fields Shopify doesn't map cleanly arrive empty. And any rule you apply inside Merchant Center gets overwritten the next time the channel syncs, which is why feed rules made there tend to quietly disappear.
So the fix for almost every feed problem belongs in Shopify, not in Merchant Center.
The four Google Merchant Center disapprovals Shopify stores hit first
Missing GTINs
Shopify's Barcode field maps to GTIN. If it's empty, and on most stores it is for at least part of the catalogue, those products get flagged and lose eligibility for free listings.
If you genuinely don't have GTINs, because the products are your own manufacture, set the identifier exists flag to false rather than leaving the field blank. Blank reads as an error; explicitly declaring none reads as a valid state. That distinction costs nothing and resolves a large share of disapprovals.
Price and availability mismatches
Google Merchant Center crawls your product pages and compares what it finds against the feed. Disagreement means disapproval.
The usual culprits on Shopify are currency conversion apps showing a localised price the crawler reads as the real one, sale price logic where the feed sends the compare-at price, and stock that sold out between syncs. Markets configurations that show different prices by region are a particularly common source, because the crawler may see a price that no feed row claims.
Shipping and tax not configured
This one blocks serving entirely rather than flagging individual products, which makes it easy to misread as a campaign problem.
Shipping settings in Merchant Center are separate from your Shopify shipping profiles and do not inherit from them. If they're unset or contradict what checkout actually charges, products either stop serving or get disapproved for mismatched shipping cost. Same for tax in the US. Set them in Merchant Center directly and make them match reality at checkout.
Image policy failures
Promotional overlays, watermarks, and text burned into product images are all disapproval triggers. Shopify stores that use a badge app to add "SALE" flashes to product imagery hit this constantly, because the badge is baked into the image the feed sends.
The problem that isn't a disapproval
Everything above announces itself in the Merchant Center diagnostics tab. The most expensive Shopify feed problem doesn't.
Shopify generates product titles from the product name, and variants inherit it. A product in twelve colourways ships twelve rows carrying an identical title. Nothing is disapproved. Everything is technically valid. And Google reads twelve near-identical products, matches them all to the same narrow set of queries, and lets them compete against each other while the long tail goes unserved.
There is no error message for a feed that is valid and badly built.
This is the single biggest lever in most Shopify Shopping accounts, and we covered the mechanics in detail in our guide to feed optimisation for product variants. The short version: titles should carry brand, product type, and the attributes people actually search, and variants should differ from each other in the ways buyers distinguish them.
A post-setup checklist
Run this a week after connecting Shopify to Google Merchant Center, once product review has finished and the first sync cycles have completed.
- Compare product counts. Shopify catalogue versus Google Merchant Center approved items. A large gap is the fastest signal that something is wrong.
- Read diagnostics by issue, not by count. One issue affecting 300 products matters more than twelve affecting one each.
- Check GTIN coverage, and set identifier exists to false where you legitimately have none.
- Spot-check three product pages against their feed rows for price, availability, and currency.
- Confirm shipping and tax are configured in Merchant Center and match checkout.
- Look at variant titles. If they're identical across a product, that's the work with the most upside.
- Verify conversion tracking separately. The Google & YouTube channel handles the feed; it does not guarantee your purchase tracking is correct, and a duplicate tag here is common. Our PPC audit checklist covers how to reconcile it against Shopify orders.
You can score your feed against 40 checks free in about 15 seconds, which covers most of the above faster than doing it by hand.
Sync timing, and why the account looks broken on day three
Product review after first connection takes several business days. During that window products sit unapproved and campaigns can't serve, which reads exactly like a broken setup.
After that, the channel syncs on its own schedule rather than instantly. A price change made this morning may not reach Merchant Center until tomorrow, and Google may crawl the page in between and find a mismatch that resolves itself on the next sync.
The practical consequence: don't judge feed health in the first week, and don't make sweeping catalogue changes the day before a campaign launch. Give the sync a cycle to settle before reading the diagnostics as truth.
The takeaways
- The Shopify to Merchant Center connection is a one-way copy on a schedule, not a live view, so fix feed problems in Shopify rather than in Merchant Center.
- Feed rules set inside Merchant Center get overwritten by the next sync from the channel.
- Blank GTINs are an error; declared-none is a valid state. That flag alone clears a lot of disapprovals.
- Shipping and tax don't inherit from Shopify and will stop products serving entirely if unset.
- The worst feed problems produce no error at all. Identical variant titles are valid, invisible, and expensive.
Once the feed is genuinely clean, campaign structure is the next lever: how to split Performance Max by margin band and region rather than running the whole catalogue in one campaign. And if you'd rather someone else handled the feed as ongoing work instead of a setup task, that's what we do for Shopify brands.