I run a small Shopify store. One afternoon I split my shipping policy in two — separate rules for domestic vs. international, nothing exotic — and by the next morning 621 of 739 active products had been disapproved in Google Merchant Center. A 21% drop became an 84% drop overnight, and the actual error Google returned was missing_shipping, which made no sense: the products had shipping info, I'd just moved it.
This is the write-up of what actually went wrong and how I built a small diagnostic tool to catch it faster next time, because the failure mode is common and the fix is a five-minute mistake to make.
Why "missing_shipping" was lying to me
Google's Merchant Center UI reports the symptom, not the cause. missing_shipping reads like "this product has no shipping rate," but what had actually happened was a sync-order race: I split delivery into two policies (domestic / international) in Shopify admin, and Google's feed re-sync started reading the new policy structure before both new policies had propagated rates for every product. For a window of time, some products resolved to a policy that had no rate defined yet for their destination — which Google reports identically to "no shipping info at all."






