Your JSON-LD validates. Merchant Center says approved. Yet impressions are zero and nobody can tell you why. Welcome to the most frustrating state in Google Shopping: everything looks right from your side, because the failure is visible only from the outside — to the crawler, not to you.
Your browser lies to you (politely)
Your browser visits the product page from your network, with your cookies and a residential IP. It works perfectly. Google's crawler visits from a datacenter, with no cookies and an honest crawler user-agent — and can see something entirely different: a 500 server error, a 403 from bot protection, a redirect chain, or an 8-second load it abandons. Result: approved in theory, excluded in practice.
The three usual suspects
Aggressive bot protection. Security plugins and services like Cloudflare sometimes treat the shopping crawler as an attacker, especially after enabling strict bot-fight modes. If the store works for you but fails for external checkers, this is suspect number one.
Cold code paths. Custom themes contain paths that only execute without a user session (default currency, missing variant stock) and explode into 500s for crawlers alone. The admin preview never shows them.
Slowness and redirect chains. A landing page behind long redirects or heavy scripts gets excluded because the shopper experience would be poor. Shorten the chain and pin the final URL in your product data.
Approved vs. served: know which problem you have
Do not mix the two states, because the fixes differ. Disapproved in Merchant Center means a data problem (description, title, brand, price) — fix the data using the five data fixes. Approved but zero impressions means a serving problem: the landing page, country targeting, or budget. Many merchants waste weeks editing perfectly good data when the data was never the issue — the crawler simply cannot open the page. Diagnose the page first; it takes a minute and rules out half the possibilities.
See what the crawler sees in one minute
Do not guess: check your product pages as a crawler sees them — paste your store URL and the tool fetches your real product pages from outside your network exactly like Google does, reporting the status code per page (200 clean, 403 blocked, 500 server error) with an explanation. Free, no signup. Fix error pages before spending another dollar on ads — advertising a landing page that fails for crawlers is burning budget.
Related: Why are my Shopify products disapproved? 5 data fixes — when the problem is the data, not the page.
About the tool behind this guide
This guide was prepared with Shipwork — a free tool that fetches your product pages from outside your network, exactly like a crawler, and reports what it finds. Check your pages with Shipwork.
شارك المقال
شارك هذا المقال مع أصدقائك
