I removed the product from Shopify weeks ago — why is my Google Shopping campaign still showing it?

Short answer. A Shopping campaign serves whatever is in your linked Merchant Center account, so removing a product in Shopify does not stop the campaign promoting it. Merchant Center runs on its own schedule: a removal from a data source takes 24 to 48 hours to stop serving, an item that simply stops being refreshed only expires after 30 days, and Google's automatic product discovery can re-add it from your page's own structured data.

Want to know if your store has this right now? Check my store, free 2 min · read-only

The product is gone from your Shopify admin, not in your catalog, not in your collections, not in your sitemap. And it is still sitting in Google Merchant Center, still marked in stock, still eligible for Shopping ads and free listings. In a February 2026 thread on the Shopify Community forum, a merchant described products deleted one to two months earlier and still showing in Merchant Center: "nowhere in my Shopify or anything but seem to still show up in my GMC, even with the photos and everything".

This is not the same failure as a deleted product still appearing in Google Search, though the trigger is identical. That one is Google's search index holding a URL it has not recrawled, and a redirect fixes it. This one is Merchant Center holding a product record: separate system, separate rules, and a redirect does not touch it.

Shopify and Merchant Center keep two different copies

Your Shopify catalog is the original. Merchant Center holds a copy, submitted by a data source: for most stores, the Google & YouTube channel. Deleting the original does not reach into the copy and delete it; it only stops the original from being sent again. What happens to the copy afterwards is governed entirely by Merchant Center's own rules, and those rules are slower than merchants expect.

Shopify's own documentation on syncing products shows the design intent from the store's side: "Google sets a strict 30-day expiry policy on synced product data, so the Google & YouTube channel updates your products automatically within that 30-day period to avoid account suspension or loss of product data." That describes what the channel does to keep products alive. It does not describe what happens to a product once you take it out, which is precisely the gap merchants fall into.

Your campaign is downstream of Merchant Center

If you arrived here because a Shopping campaign keeps promoting something you discontinued, the instinct is to go looking in Google Ads. That is the wrong console for the object you are trying to remove. A campaign does not hold its own copy of your catalog: it draws on the products in the linked Merchant Center account. Google Ads' own definition of an inventory filter makes the direction of that dependency explicit: it is "An optional way to exclude which products in your Google Merchant Center account can appear for Product Shopping ads", and "Filters are optional and set at the campaign level."

So a campaign-level lever does exist, and it is worth being precise about what it does. Excluding an item stops that campaign bidding on it. It does not remove the product record: the item stays in Merchant Center, stays eligible for free listings, and starts serving again the moment a new campaign is built or a listing group is widened to include it. That is a useful thing to reach for in the ten minutes before a sale goes live. It is a mask over the symptom rather than a resolution, and treating it as one is how the same product comes back three weeks later.

Every mechanism below is settled in Merchant Center or on your own site, and none of them is reported in a campaign. The wider map of silent Google visibility failures has the same shape: the console you are watching is rarely the one holding the problem.

How to confirm it yourself in five minutes

  1. In Merchant Center, open Products and search by title or product ID. Note the status (active, expired, disapproved) because it tells you which rule is holding the item.
  2. Open Data sources and check which source the item is attributed to. An item attributed to your Shopify channel and an item Google found on its own need different fixes.
  3. Open the old product URL in a private window. Confirm whether it returns a 404, redirects somewhere, or still loads a product page.
  4. If it still loads, view the page source and search for "@type": "Product". Structured data left behind on a still-reachable page is a live route back into Merchant Center.
  5. Search Google for the product name plus your store name and check the Shopping tab specifically: an item can be gone from Search and still live in Shopping.

StoreCanary checks this on your store

Not sure how many stale product URLs your store is still publishing? We read your live catalog and every product page's structured data, and flag URLs that still advertise a product you no longer sell: read-only, no admin access, about 2 minutes.

Scan my store for free

Where the delay actually comes from

Four mechanisms produce the same symptom. They are deliberately not ranked by frequency: Merchant Center account state is not observable from outside a store. Only the page side is, and two of the four show up there.

1. The removal has not propagated yet. The plainest explanation, and the one worth ruling out first. Google's guidance on managing products in Merchant Center states that when a product is removed from a data source, "it may take 24–48 hours for your product to be removed from ads and free listings". If you deleted the product yesterday, you are inside the normal window and nothing is broken.

2. Nothing ever told Merchant Center to remove it. Deleting a product in Shopify removes it from the feed's contents, which stops it being refreshed, but stopping a refresh is not the same instruction as "delete this". The same Google page states that "All products expire from your Merchant Center account 30 days after the last refresh", so an orphaned item keeps serving until that clock runs out rather than disappearing with the original. This is the case behind the "deleted it two months ago and it is still there" reports.

3. Google found the product by itself. This is the mechanism most merchants do not know exists, and it is the reason a manual deletion sometimes comes back. Google's documentation on adding products automatically from your online store is explicit about the process: "We scan your website to find product pages", then "We read the structured data on those pages to understand product details like title, price, and availability". The same page states that "Google checks your website at least once every 24 hours for new products and reflects the new products or updates on Merchant Center". No feed is required for this. If the product page still resolves and still carries Product markup (because it was unpublished from the Google channel rather than deleted, or because a duplicate URL survived the cleanup) Google has a route to that item that your feed does not control. What that markup declares is worth knowing here, because it is the same data Google reads to decide which product report your pages qualify for.

4. The landing page is still reachable. Merchant Center does have a mechanism that removes a product with a dead destination: the "Product page unavailable" issue, where Google states plainly that "To avoid a bad user experience, we disable products that have an unavailable landing page. These products will stop showing in ads and free listings until Google can access the landing page." A 404 is the first cause listed. But that page's list of failures names "too many redirects", defined as more than 2: a single redirect is not on it. So if you followed the standard advice and 301'd the dead product URL to a live collection, the destination now resolves cleanly, and the signal that would have disabled the Shopping item never fires.

That last one is two pieces of correct advice colliding. Redirecting a dead product URL is the right move for search: it recovers the shopper and the link equity instead of dumping both into a 404. On the Merchant Center side, it is also what keeps a stale listing serviceable. Neither system mentions the other, and where that redirect points decides whether Merchant Center accepts it at all.

The fix, per cause

  • Remove it at the source, not only in the interface. Deleting the Merchant Center copy while the data source still contains the product means the next sync resubmits it. Take it out of the Shopify side first, then clear the copy.
  • Use archive for anything permanent. Google documents archiving as removing a product "from your main product list, diagnostics, and from serving on Google surfaces (like Ads and free listings)", while keeping it restorable. That is the right instrument for a discontinued product. Pause is documented as short-term, a pause is treated as expired once it has been in place more than two weeks, so it is the wrong tool for a product that is never coming back.
  • Check the automatic source, then stop managing the item. In Data sources, look at what Google has added from its own crawl. If the item is there rather than in your channel feed, removing it from Shopify will not clear it, and it will keep returning for as long as a page advertising that product stays reachable with Product markup on it. Google's product management page separates "managed products", which you control directly, from "unmanaged products" it discovers "through website crawls, even if you don't have a Merchant Center account", and it names the control for the second kind: select Stop managing products, which "removes the products from your managed inventory, preventing them from showing in Shopping ads and free listings".
  • Be deliberate about the old URL. Point a redirect at a genuine replacement product rather than a generic page, so that whatever still reaches that URL, shopper or crawler, arrives at something that matches what was advertised. Where there is no replacement at all, letting the URL stay dead is what eventually triggers the landing-page rule.
  • If the campaign cannot wait, exclude the item in Google Ads. Everything above fixes the source, and Google gives it up to 48 hours to take effect. A standard Shopping campaign can stop bidding on the product sooner: in the campaign's product groups, subdivide by Item ID and set that item to Excluded. It is a stopgap, not a removal. The item stays in Merchant Center and in free listings, so do it alongside the fixes above, never instead of them.
  • Re-check after 48 hours. Not immediately, and not in a month. The documented window is the only honest point at which "it did not work" becomes a real conclusion rather than impatience.

One thing not to do first: uninstalling and reinstalling the sales channel is the most repeated fix in forum threads, and it does clear the account, but it re-mints product IDs and discards the performance history attached to them. That is a real trade, not a free reset.

Why this one comes back

Every catalog cleanup regenerates this. A discontinued line, a seasonal range, a rebrand that renames handles, a bulk delete during a migration: each one creates a batch of products that exist in Google's copy and not in yours, and none of them announces itself. It is also worth knowing where that ends if it is left alone: Google's misrepresentation policy lists, under unacceptable business practices, "Offer products that you don't have or can't deliver", which is the account-level version of the same drift. Shopify admin cannot show you the discrepancy, because the whole point is that the product is no longer in Shopify to be shown.

Any single stale listing takes minutes to clear once you know which mechanism is holding it. The problem is that nothing tells you it happened (item-level product data has no warning email, only a tab you have to think to open) so catching the next one depends on remembering to check, after every cleanup, every migration, every app change that touches the feed. It is the same shape as the availability mismatch, where Shopify says in stock and Google Shopping says sold out: two systems holding two versions of the truth, with no alarm on the gap between them. Across full-catalog scans of more than 90,000 Shopify product pages, the failures we find share that shape: the public-facing reality drifts away from the admin, and the admin is the only place anyone is looking.

Is this happening on your store right now?

Merchant Center will not tell you until it disapproves a listing. The product is live in your store, and Google Shopping is showing a different price, the wrong availability, or nothing at all. The only way to know is to check the feed the way Google reads it.

  • 90+ checks, the way Google reads your product feed. Price and availability mismatches, missing identifiers, redirect chains.
  • Read-only. No app to install, no admin access, nothing changes on your store.
  • The exact fix for each page, in plain English, so you or your developer can act the same day.

Across full-catalog scans of more than 90,000 Shopify product pages, roughly 46% of stores had at least one critical Google visibility issue.

Scan my store for free

Free scan: issue types, counts and first fixes. Full report on every product page, not a sample: $49 once, no subscription.

Next in this cluster