In early 2026 an established merchant, an apparel hardgoods brand, came to me with a complaint I hear in some form every month: my products aren't showing up in Google the way my competitor's do. The store had 777 approved products in Google Merchant Center, more than 5,000 customer reviews, and a search presence that showed none of it. No star ratings, no rich listings.

Google Search Console told the real story: 2,053 Merchant listings errors across the catalog.

Eight weeks later that number was 9, with 2,430 items validating clean, a 99.6% reduction. The store's star ratings now show in search results, its review feed syncs to Google on its own every 24 hours, and its brand panel displays the correct business.

This article walks through what those 2,053 errors were, the order I fixed them in, and the part most merchants want to know: which layers of a Merchant Center problem you can triage yourself, and where the structural work starts.

Why are my Shopify products not showing in Google?

There are three distinct layers where a Shopify-to-Google connection breaks, and they fail in different ways.

1. The connection layer. The Google & YouTube app's binding to your Google account is broken or bound to the wrong identity. Symptom: the setup wizard skips a step, throws a "Super Admin" permission error, or reports "connected" while nothing syncs.

2. The approval layer. Products sync but Merchant Center disapproves them: policy issues, missing shipping or return settings, dead domain references, market-targeting problems. Symptom: products sit in "Not approved" with a pile of reasons.

3. The data layer. Products are approved and listed, but the structured data on your store is broken, so Google can't read prices, availability, images, or reviews from your pages. Symptom: listings appear but stripped down. No stars, no rich results, and Search Console fills with Merchant listings errors.

The merchant in this case lived in the third layer. The catalog was approved, and the store even held Google's Top Quality Store badge, but the theme was feeding Google data it couldn't parse. That distinction matters, because the owner believed the review app was broken. It wasn't. The reviews were fine; the theme's product markup was blocking Google from displaying them. Diagnosing the right layer before touching anything is most of the job.

What causes 2,053 Merchant Center errors on one store?

Not 2,053 separate problems. A handful of theme-level defects, each multiplied across 777 products and their variant pages.

The audit found five:

  • Invalid itemCondition values. The theme output the plain word "New" where Google requires a schema.org URL (http://schema.org/NewCondition). One template-level mistake, repeated on every product page.
  • Invalid availability values. Same class of error: plain text where Google expects http://schema.org/InStock or OutOfStock.
  • Missing image in the product schema. Product photos rendered on the page but were never declared in the markup, so Google treated every product as imageless.
  • Missing breadcrumb position fields. Every breadcrumb trail on the site failed validation for one absent attribute.
  • No JSON-LD at all. The theme, an older premium theme, used Microdata only, the format Google supports but no longer prefers. The review app was injecting rating data the markup never exposed.

There was also a sixth finding that wasn't producing errors but had to go first: leftover code from a Google Customer Reviews app abandoned years earlier, still loading a deprecated badge script on every page. Dead integrations don't stay neutral. They collide with whatever you build next.

The number looks catastrophic. The cause list is short. Five defects, thousands of pages.

This is the pattern I see on most stores with four-digit error counts.

How do I fix Google Merchant Center errors on a Shopify store?

The sequence matters more than the individual fixes. Here is the order this recovery ran in.

1. Audit before touching anything. I read the theme's markup, ran Google's Rich Results Test on representative pages, and pulled the full error breakdown from Search Console. Changing things before you know which layer is broken is how stores end up worse off.

2. Remove the dead code. The legacy review-badge snippet came out of the theme before anything new went in.

3. Fix the data defects at the template level. The condition and availability values were corrected to schema.org URL format across seven theme files, image declarations were added to the gallery, grid, and slider templates, and breadcrumb positions were added to all four product templates. Thirteen theme files changed in total, each one a few lines.

4. Add JSON-LD alongside the fixes. A product schema built on Shopify's own structured_data output, included on every product template, so Google gets the format it prefers rather than a patched version of the one it tolerates.

5. Resolve the duplication. With the theme and the review app both emitting rating data, Google would see conflicting schema. I made the review app's JSON-LD the single source for review markup and removed the overlapping block from the theme. One source of truth per data type.

6. Validate, then wait. Three products through Google's Rich Results Test: 24 of 24 checks passing, 21 of 21, 16 of 16. After that, the clock is Google's. Recrawling 777 products took weeks; the error count slid from 2,053 toward 9 over roughly five weeks as pages were revisited. No setting accelerates this. Anyone who tells you the count drops overnight hasn't watched one drop.

The fix work itself was measured in days. The verified result took eight weeks end to end, and most of that was Google's crawl schedule. Knowing that gap exists, and saying so up front, is the difference between a calm recovery and a panicked one.

What can I check myself before hiring anyone?

A fair amount. If your products aren't showing in Google, run this triage in order:

  • Check the customer-facing result first. Open an incognito window and search for your products the way a customer would. What Google shows shoppers is the only status that counts. A green "connected" light in your Shopify admin is not evidence of anything.
  • Read Merchant Center directly, not the Shopify app's banner. The Google & YouTube app has a habit of displaying "account suspended" warnings that Merchant Center's own console doesn't show. The console is the authority. Check it before you panic.
  • Sort your disapprovals into three buckets. Setup issues (missing shipping settings, unclaimed website, dead domain references) are fixable by you or any competent hand. Market-targeting issues are a business decision about where you sell, not a defect. Policy issues are about what the product is, and no configuration changes that.
  • Run one product page through Google's Rich Results Test. It's free, takes a minute, and tells you whether your theme's markup validates. If a healthy-looking product page fails, you've found your layer.
  • Check your Markets settings if your offer count looks inflated. Shopify Markets with many regions active can multiply every product into per-currency duplicate listings: tens of thousands of offers from a few hundred products. The lever is in the Google app's country settings, not in dismantling Markets.

Setup-level disapprovals, like a missing return policy, an unverified phone number, or a shipping rate Google can't read, are honest DIY territory. Fix, request review, wait roughly 24 hours.

When is the problem structural?

DIY triage stops at two doors.

The first is identity binding. Google's access model has two layers that look alike, Merchant Center access and Business Manager control, and the app checks both before it authorizes. An account can hold one and not the other, which produces permission errors that no amount of disconnecting and reconnecting fixes, because the reconnect silently binds to whatever account the browser defaults to. I've watched merchants loop on this for weeks. Diagnosing which account the app is bound to, and rebinding it in the right order, is careful work with a real cost when done wrong: a bad rebind re-breaks the connection in a way that looks identical to the original problem.

The second is the data layer, the territory this case lived in. Template-level schema defects sit in theme code, multiply across every product, and interact with whatever your review and SEO apps are injecting. Fixing one source while another keeps emitting conflicting markup leaves you with new errors wearing different names. The work here isn't hard to describe. It's hard to sequence, and the feedback loop (Google's recrawl) runs in weeks, so a wrong guess costs you a month before you know it.

That's the honest trade-off. If your Merchant Center problem is a missing shipping setting, fix it yourself this afternoon. If it's an identity-binding failure or a four-digit error count rooted in your theme's markup, the cost of guessing is measured in months of invisible products.

What does a recovery like this return?

For this merchant: 2,430 products validating clean, star ratings from 5,000+ reviews now visible in search and eligible on Shopping listings, a review feed syncing on its own every 24 hours, and a brand panel showing the right business name. The owner's original benchmark, I want my store to show up the way my competitor's does, was met on every point, verified in Search Console and in a plain incognito search rather than taken from any dashboard light.

If your Search Console is showing a number like 2,053 and you want a second pair of eyes on which layer it's coming from, grab a slot and bring the screenshot. The first thing I'll tell you is which of the three layers your problem lives in, and whether it's the kind you can fix yourself.

Erick Kagai
Erick Kagai

Independent Shopify consultant. I own the seam between merchants' stores and the channels that drive their sales — and write these field notes from inside that work. More about me, including what I'm not good at.