Setting up Google Merchant Center for a Shopify catalog is six steps. Skip step three and the feed validates but doesn’t surface. This is the runbook.
GMC underwrites three surfaces an AI commerce catalog cannot afford to skip: Google Shopping, Google AI Overviews product cards, and ChatGPT’s product index (which pulls heavily from GMC). A catalog without a validating GMC feed is competing for a fraction of the attention it could otherwise capture.
The full sequence:
Where GMC sits in the data flow — the connector between a catalog and the surfaces that read it:
Prerequisites
Before starting:
- A verified Shopify storefront with at least 50 products. GMC technically accepts smaller catalogs; surfacing thresholds make fewer than 50 unrewarding.
- Schema.org
Productmarkup on product pages. GMC validates feeds in part by crawling the product page and comparing values. See Product schema for Shopify. - A Google account with admin access to the brand’s domain. The domain verification step requires it.
- GTINs, MPNs, or the
identifier_exists: falseflag for genuinely custom products (private label without GTIN registration).
Step 1 — Create the GMC account
- Go to
merchants.google.comand sign in with the brand’s Google account. Use a brand-owned account, not a personal one. - Enter the business name (matching the legal entity, not the brand if they differ).
- Choose the country of registration. This is the primary market; secondary markets are added later.
- Pick the platform: Shopify. GMC offers a Shopify integration that reduces some manual setup.
- Accept the Merchant Center policies. The unfair business practices and intellectual property policies are the two that cause feed suspensions most often.
Step 2 — Verify the domain
Two methods:
- HTML file upload. GMC provides a file; upload to the Shopify admin under Online Store → Themes → Edit code → Upload file. This approach is simpler but creates a file Shopify treats as theme content; if the theme is replaced, the file is lost and verification drops.
- Meta tag. GMC provides a
<meta>tag; add totheme.liquidinside<head>. More durable; survives theme changes.
Use the meta tag method.
<head>
...
<meta name="google-site-verification" content="[VERIFICATION-TOKEN]">
...
</head>
Verify in GMC after deploying. The verification typically completes in a few minutes; if it fails, check that the meta tag renders on the domain root, not just on a subpath.
Step 3 — Configure the primary feed
This is the step skipping which makes everything else fall apart.
Three feed source options:
- Direct Shopify integration. GMC pulls product data via the Shopify Sales Channels API. Easiest to set up, but limited to the fields Shopify exposes. Most catalogs need supplemental feeds for the gaps.
- Google Sheets feed. Manual control over every field; useful for catalogs with custom enrichment. Slow to maintain.
- Scheduled fetch (XML/CSV at a URL). A feed file hosted on the domain or via a feed-management app. Most flexible and the option the recommended option for catalogs with attribute enrichment beyond Shopify defaults.
Use scheduled fetch. The Shopify integration looks like the path of least resistance and works for the simplest catalogs; for any catalog with custom metafields, certifications, or enrichment, the integration strips those fields and the feed validates with much weaker attribute coverage than the catalog actually has.
The fields that must be in the primary feed:
| Field | Source | Notes |
|---|---|---|
id | Variant SKU | Unique per variant; do not reuse parent SKU |
title | Product title | Follow the pattern in Writing product titles for AI agents |
description | Product description (plain text) | 200+ characters; HTML stripped |
link | Variant URL with ?variant= parameter | Canonical, no redirects |
image_link | Primary image URL | 800×800 minimum; larger preferred |
availability | in_stock, out_of_stock, preorder, backorder | Lowercase with underscores; no Schema.org URL here |
price | Variant price with currency | ”45.00 USD” format |
gtin | Variant barcode | Required when available |
mpn | Manufacturer part number | Required if gtin is absent for non-private-label |
brand | Brand name | Required |
condition | new, refurbished, used | Required |
google_product_category | Full taxonomy path | Required for surfacing |
identifier_exists | false for genuine no-identifier products | Use carefully; misuse is a common feed warning |
Step 4 — Configure supplemental feeds
A primary feed handles the universal fields. Supplemental feeds add category-specific attributes on top.
The categories that most often need supplemental feeds:
- Apparel. Adds
color,size,gender,age_group,material,pattern. All required for apparel surfacing in Google Shopping; most are also weighted by ChatGPT and Perplexity. - Beauty and skincare. Adds
product_highlights(for active ingredients),product_detail(for INCI compatibility flags). - Supplements and health. Adds
product_detail(for certifications like NSF, USP),lifestyle_image_link. - Apparel with sizes that vary by region. Adds
size_system,size_type. The default US sizes confuse the surfacing in EU and UK markets.
Supplemental feeds are added under Products → Feeds → Supplemental
feed. Map by the id field — each supplemental row updates the
matching primary-feed row.
Step 5 — Connect Google Ads (even if not running paid)
Even catalogs that don’t run paid Google Ads benefit from connecting GMC to a Google Ads account. The link unlocks paid Shopping campaigns when you’re ready, and Merchant Center’s onboarding flow nudges you toward it as part of standing up the free product listings program (“Surfaces across Google” — the organic surfacing in Google Shopping, Google Lens, the Shopping tab). Without the link, you can still surface in free listings, but you can’t run paid Shopping ads.
Setup:
- Create a Google Ads account if one doesn’t exist. No campaign needed.
- In GMC: Tools → Linked accounts → Google Ads → Link.
- In Google Ads: Tools & settings → Linked accounts → Approve.
- In GMC: Growth → Manage programs → Surfaces across Google → Activate.
This step is the one most catalogs skip. The feed validates without it; the surfacing is half what it could be.
Step 6 — Review and resolve diagnostics
Initial feed processing takes 24–72 hours. After the first pass:
- Open Diagnostics. Three tabs: Account issues, Feed issues, Item issues.
- Account issues are blocking. Resolve before anything else.
- Feed issues are warnings about the feed file structure. Most resolve by fixing the source data.
- Item issues are per-product. Sort by impact (number of products affected); fix the top issues first.
The most common item issues observed across audits, with fixes:
- “Missing GTIN.” Add barcodes in Shopify. For genuinely custom
products, set
identifier_exists: false. - “Image too small.” Re-upload images at 1200×1200 minimum. GMC accepts down to 100×100; AI agents prefer larger.
- “Generic image.” Stock images of products that don’t match the brand’s actual product. Replace with brand photography.
- “Mismatched price.” GMC crawls the product page and compares the price to the feed value. Schema markup that ships with stale prices triggers this. Fix the schema source.
- “Promotional text in title.” “SALE!” in the title. Move to the
sale_pricefield.
The failure modes that look like success
A feed that validates without account-level issues but doesn’t surface:
- Domain not verified through Search Console. GMC verifies the domain for ownership; surfacing requires Search Console verification too. Verify in both places.
- Surfaces across Google not activated. Step 5. Most common cause of “validating feed, no organic surfacing.”
- Targeting only the registration country. Apparel catalogs targeting only the US miss UK, EU, AU surfacing. Add target countries in the feed settings.
- Brand name in
branddoesn’t match brand name on the website. GMC compares; mismatches downgrade the feed quietly.
The contrarian take
Most GMC content frames the feed as a marketing tool. It is not — it is now data infrastructure. The feed underwrites organic surfacing in Google Shopping, Google AI Overviews, ChatGPT’s product index, and parts of Perplexity’s sourcing. Treating it as a marketing channel (“we’ll set up GMC when we run paid Shopping ads”) leaves all of the above on the table.
The reframe: GMC is the second most important data destination for a Shopify catalog after the storefront itself. It ships before paid Shopping campaigns are even considered.
Where it breaks
- Subscription-only and recurring-billing products. GMC’s data model expects one-time purchase pricing. The workaround through custom pricing fields is supported but inconsistently surfaced.
- Multi-store Shopify Plus catalogs. Each storefront needs its own GMC account; cross-storefront data sharing is manual.
- Catalogs with frequent content updates. The default Shopify integration crawls daily; for catalogs with intra-day pricing or inventory changes, daily isn’t fast enough. Move to scheduled fetch with a sub-hourly cadence.
What to do this week
- Verify the domain (step 2).
- Configure scheduled fetch with the required fields populated (step 3).
- Add the apparel/beauty/supplement supplemental feed if applicable (step 4).
- Link Google Ads and activate Surfaces across Google (step 5).
- Wait 72 hours. Resolve diagnostics in priority order (step 6).
A catalog that works through this list ships a validating feed in a week. The 30-day mark is when the surfacing data starts coming in through Search Console (or any analytics layer that joins GMC + AI referral traffic).