DEV Community

Max
Max

Posted on Originally published at storecanary.io

Shopify product removed but still live in Merchant Center

TL;DR

  1. Deleting a product in Shopify removes it from the feed but sends no explicit delete to Merchant Center; the copy stays live until it expires (30 days after the last refresh) or is removed directly.
  2. Google's automatic product discovery re-adds items without a feed if the URL still resolves with Product structured data on the page.
  3. A 301 redirect (correct for SEO) keeps the Merchant Center landing page accessible, which blocks the "unavailable landing page" rule from automatically disabling the listing.

Your client deleted a product in Shopify. It is gone from the catalog, the collections, and the sitemap. It is still active in Google Merchant Center, still marked in stock, still eligible for Shopping ads and free listings.

The root cause: Shopify and Merchant Center are two separate systems holding two separate copies of product data. Deleting the Shopify original stops it from being submitted on the next sync. It does not propagate a delete instruction to the Merchant Center copy. What happens to that copy is governed entirely by Merchant Center's own rules.

This affects any store using the Google & YouTube channel or a feed-based integration. The merchant reports removed products still appearing in Shopping results. This article covers the three mechanisms that keep a removed product alive in Merchant Center, a five-step diagnostic to identify which one is active, and the correct fix per cause.

Why doesn't deleting in Shopify remove it from Merchant Center?

Your Shopify catalog is the original. Merchant Center holds a copy, submitted by a data source. Deleting the original stops it from being submitted on the next sync. What happens to the copy depends entirely on Merchant Center's own rules.

Shopify's documentation on syncing products describes the 30-day refresh cycle: "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." That describes how live products stay alive. A product that stops being refreshed hits that same 30-day expiry clock rather than disappearing immediately.

How do you confirm which mechanism is holding the listing?

Five steps, about five minutes:

  1. In Merchant Center, open Products and search by title or product ID. Note the status (active, expired, disapproved): 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 channel feed 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 source and search for "@type": "Product". Structured data on a still-reachable page is a live route back into Merchant Center, independent of the feed.
  5. Search Google for the product name plus the store name, then check the Shopping tab specifically. An item can disappear from Search and remain active in Shopping.

What four mechanisms keep the listing alive?

1. The removal has not propagated yet. 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 the deletion happened yesterday, this is inside the normal window.

2. Nothing told Merchant Center to remove it. Stopping a refresh differs from sending a delete instruction. The same Google page states that "All products expire from your Merchant Center account 30 days after the last refresh." An orphaned item keeps serving until that clock runs out. This is the cause behind reports of products deleted two months ago still appearing in Merchant Center.

3. Google found the product by itself. Google's documentation on adding products automatically describes the process: "We scan your website to find product pages", then "We read the structured data on those pages." The same page states Google checks for new products at least once every 24 hours. No feed is required. If the product page still resolves and carries Product markup, Google has a route to that item that the feed does not control. This is why a manual deletion sometimes reappears.

4. The landing page is still reachable. Merchant Center can remove a product with a dead destination via the "Product page unavailable" issue. A 404 triggers it. A single 301 redirect does not: the destination resolves cleanly, and the signal that would disable the Shopping listing never fires.

Why does the standard redirect advice block the auto-cleanup?

Redirecting a dead product URL to a live collection is the correct move for search: it recovers the shopper and the link equity. On the Merchant Center side, it also keeps the stale listing active because the landing page check now passes. Two pieces of correct advice that conflict: the SEO fix prevents the Merchant Center auto-cleanup from firing.

What is the correct fix per cause?

  • Remove at the source, then in the interface. Deleting only the Merchant Center copy leaves the data source free to resubmit the item on the next sync. Remove it from Shopify first, then clear the Merchant Center copy.
  • Archive instead of pause for discontinued products. Google documents archiving as removing a product "from your main product list, diagnostics, and from serving on Google surfaces." Pause is documented as short-term: treated as expired after more than two weeks, it is the wrong instrument for a permanently discontinued product.
  • Check the automatic source. In Data sources, look at what Google added from its own crawl. If the item is there, removing it from Shopify will not clear it. It returns for as long as a page with Product markup stays reachable at that URL.
  • Be deliberate about the old URL. Point a redirect at a genuine replacement product. Where there is no replacement, leaving the URL as a 404 is what eventually triggers the landing-page rule that disables the Shopping listing.
  • Re-check after 48 hours. The documented propagation window is 24-48 hours. Checking immediately or waiting a month both produce misleading conclusions.

One action to avoid: uninstalling and reinstalling the Google & YouTube channel clears the Merchant Center account, but it re-mints product IDs and discards the performance history tied to them. That is a real trade-off, not a free reset.

Why does this recur after every catalog cleanup?

Every catalog cleanup regenerates this problem. A discontinued line, a seasonal range, a rebrand that renames URL handles, a bulk delete during a migration: each creates a batch of products that exist in Google's copy but no longer in Shopify. Shopify admin cannot surface that discrepancy because the products are no longer in Shopify to display.

The same structural gap appears in the availability mismatch (Shopify says in stock, Google Shopping shows sold out): two systems holding two versions of the truth, with no alert on the gap between them.


Related reading:


Have you run into a case where Google kept re-adding a removed product through its automatic crawler? What ended up clearing it?

The full version of this article — with screenshots and ongoing updates — lives on the StoreCanary blog.

Top comments (0)