Why does Google Merchant Center keep flagging my product page as unavailable when it clearly loads fine?
Google Merchant Center periodically disapproves live, working product pages as unavailable, and for a lot of merchants it keeps happening to the same products over and over.
What's going on
You check your Shopify store, the product page loads instantly, everything looks fine, but Google Merchant Center is showing a Product page unavailable or Page could not be crawled disapproval on that exact product. Ads stop serving, free listings vanish, and the diagnostics panel gives you a vague crawl error, timeout, 5xx, DNS failure, or redirect issue, that does not match what you are actually seeing in your own browser.
This is confusing because the error name implies the page itself is broken, but in most cases the page is fine and Google's crawler simply failed to reach it, or rendered it incompletely, at the specific moment it tried. The disapproval is a snapshot of one failed crawl attempt, not an ongoing verdict on your store's health.
What makes it especially frustrating is the pattern merchants describe: they request a recrawl, the product reinstates within a day or two, then weeks later the exact same handful of products drift back into unavailable status again, seemingly at random, with no corresponding change to the product page itself.
Why it happens
Merchant Center's crawler fetches your landing page URL independently and on its own schedule, separate from real shoppers hitting your store. If that single fetch attempt hits a transient condition, a brief platform blip, a slow-loading third-party app script, a DNS hiccup, or a momentary block from a security or CDN layer, Google records it as unavailable and disapproves the listing, even though the page was serving customers normally seconds before and after.
A second, less obvious cause is rendering. Some themes and apps load core product content, price, availability, sometimes the whole page, via JavaScript after an initial loading state. Googlebot does render JavaScript, but that rendering happens on a delayed pass and can occasionally time out or get deprioritized, particularly for stores with heavy script payloads, making the page look empty or unavailable to the crawler even though a human with a warm browser cache never notices.
A third cause worth ruling out is anything sitting in front of your storefront that treats automated traffic with suspicion, such as bot-fight settings, a rate-limiting rule, or a fraud or security app, since these can intermittently challenge or block Googlebot's requests without affecting normal customer traffic at all.
5 ways to fix it
Recrawl the exact URL Google flagged (do this first)
In Merchant Center, open the Diagnostics or Needs Attention view under Products and find the specific disapproved item. Copy the exact landing page URL Google says it tried to crawl and load it yourself in a private browser window to confirm it works. Then use the URL Inspection tool in Google Search Console for that domain to request indexing, since Search Console's recrawl request tends to be faster and more reliable than Merchant Center's own recrawl option. Google usually re-checks within a day or two, sometimes sooner. This clears the immediate disapproval but will not stop it from recurring, since it only treats the symptom.
Rule out a real outage or slowdown at the exact moment Google crawled
Check Shopify's status page and any uptime monitoring you have for the timestamp Merchant Center lists as the crawl attempt. A brief platform-wide incident, or a slow third-party app script delaying the page's initial response, can make a perfectly fine page look unreachable or slow to Googlebot for that one visit. If the timing lines up with a known outage, this was a one-off, and requesting a recrawl is the complete fix, no theme changes needed.
Check for anything that could be blocking or challenging Googlebot
Confirm your robots.txt is not disallowing product paths, particularly if you or a theme has customized it. If you run Cloudflare or a bot-blocking or fraud-prevention app in front of your storefront, check its logs around the flagged timestamp for requests from Googlebot's user agent. Some merchants have found that bot-mitigation or rate-limiting settings intermittently challenge or block Googlebot, which reads to Google as the page being unreachable. If you find this in the logs, allow Google's crawler in that tool's settings.
Check whether critical content loads only after JavaScript runs
If your storefront shows a loading state or skeleton screen before the real product content appears, or loads price and availability via a separate JavaScript request after the initial page load, Googlebot's rendering pass can occasionally time out or capture the page before that content resolves. Use the rendered screenshot in Search Console's URL Inspection tool to see what Googlebot actually captured. If it shows a blank or incomplete page, work with your theme developer to get critical product content into the initial HTML response rather than relying on a later script to fill it in.
If it keeps recurring, treat it as something to monitor rather than a one-time fix
Some merchants see this cycle repeat every few weeks on the same handful of products even after a clean recrawl, which points to an intermittent, low-frequency cause, such as an occasional app conflict, a CDN edge case, or Googlebot happening to hit the store during a slow moment. If manual recrawling becomes a recurring chore, check the Needs Attention tab on a regular schedule instead of waiting to notice a drop in ad delivery, and log the timestamp each time it happens so you can eventually correlate it with a specific app, deploy, or traffic spike.
Bottom line
Most product page unavailable flags mean Google failed to reach or fully render your page for a moment, not that your store is actually broken, so the fastest fix is almost always to confirm the page loads and then request a recrawl through Search Console's URL Inspection tool. If it keeps coming back on the same products, the underlying cause is usually something intermittently blocking or slowing down Googlebot specifically, such as a bot-security tool, a CDN rule, or heavy reliance on client-side rendering, rather than anything wrong with the product data itself. No app is required to fix it, just correct configuration and some ongoing monitoring.
Browse the rest of the problem library, run a free storefront scan to catch issues like this automatically, or email us and we'll work out a custom solution for it.