I deleted a Shopify product and it still shows up on Google

Short answer. Shopify does not create a redirect when you delete a product, so the URL starts returning a 404 and Google keeps serving the old listing until it recrawls. Set a 301 redirect from the old handle to the closest live product or collection, under Content → Menus → URL Redirects. A redirect recovers the traffic and the link value; leaving the 404 in place just waits the problem out.

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

You deleted the product weeks or months ago. It's gone from your catalog, gone from your sitemap, gone from Shopify admin entirely. But a search for it on Google still turns up the old listing, and clicking through lands on a 404. Nothing in Shopify tells you this is happening: the product simply doesn't exist there anymore, so there's nothing left to flag it.

This is one of the most recurring threads on the Shopify Community forum: merchants who deleted products (during a catalog cleanup, a rebrand, or just discontinuing an item) and find Google Search Console still listing the old URLs as crawl errors, sometimes for a long stretch afterward. The root cause is almost always the same and it isn't a Google bug: Shopify never created a redirect, so the URL just started returning a 404 with nowhere for that traffic, or that crawler, to go.

One distinction worth settling before you start, because the fix differs. This page is about the organic listing: the blue link in Google Search, and the Not found (404) reason in Search Console's Pages report. If what you are seeing is a shopping ad or a free listing still promoting the product, that is a feed problem rather than an index problem, it is fixed in Merchant Center rather than in Shopify's redirects, and it is covered in the Shopping-side article. The two can be true at once on the same product, and clearing one does not clear the other.

How to confirm it yourself in 5 minutes

  1. Run a site: search for the old product URL, or search the product's name directly, and see if the listing still appears.
  2. Click through from the search result (or paste the URL directly into your browser) and confirm it returns a 404 rather than redirecting anywhere. Check the status code, not the page you are looking at. A screen that reads like an error is not proof of one: Google defines a soft 404 as “a URL that returns a page telling the user that the page does not exist and also a 200 (success) status code”, and a URL in that state keeps being treated as a real page. Your browser's network tab, or any header-checking tool, shows the number.
  3. In Google Search Console, open Pages under Indexing, and check the "Not found (404)" reason in the "Why pages aren't indexed" breakdown: it lists every URL Google has crawled and found dead, including old product pages. (What every reason in that report means on a Shopify store is a separate piece; this one is only about the 404 row.)
  4. In Shopify admin, go to Content → Menus → URL Redirects and search for the old product's handle: if this is happening, no redirect will exist for it.

StoreCanary checks this on your store

Not sure how many dead product URLs are sitting in your store right now? We check your live catalog against what's still indexed and flag orphaned URLs automatically: read-only, no admin access, about 2 minutes.

Scan my store for free

Causes, ranked by how often we actually see them

1. The product was deleted with no redirect set up. This is the default outcome, not an edge case. Shopify's own help documentation frames a redirect as something you can optionally set up after deleting a product: it isn't prompted, and it isn't created for you. Delete a product in Shopify and the URL simply starts returning a 404 the next time anything requests it, whether that's a shopper with an old bookmark, a link from a collection page, or Googlebot revisiting a URL it already knows about.

2. The product's handle changed during a rename or a catalog reorganization. Changing a product's URL slug, often done to clean up handles during a rebrand or a theme migration, has the same effect as a deletion from Google's point of view: the old URL now 404s unless a redirect was created from the old handle to the new one at the same time the change was made.

3. A bulk cleanup or catalog migration removed many products at once. Merchants doing a larger "revamp" (discontinuing a product line, merging duplicate listings, or migrating to a new catalog structure) routinely end up with a batch of dead URLs and no redirect plan, because nothing in the bulk-delete flow surfaces the need for one.

4. Google hasn't recrawled the dead URL yet. Two different Google documents cover the two halves of this, and it is worth keeping them apart. On the status code, Google's crawling-errors documentation says to “Return a 404 (not found) or 410 (gone) response (status) code for the page” because “These status codes indicate to search engines that the page doesn't exist and you don't want search engines to index the page.” On what then happens, Google's HTTP status codes documentation is the page that actually describes it: “the indexing pipeline removes the URL from the index if it was previously indexed” and “The crawling frequency gradually decreases.” So the removal is tied to Google revisiting that specific URL, and neither document commits to how long that takes. A 404 with no redirect sits there in the meantime.

Does 404 or 410 make any difference?

Most advice on dead product URLs reaches for this first: serve a 410 (gone) instead of a 404 (not found) and Google will drop the page faster. On Google's own documentation, that distinction does not exist. The HTTP status codes page states it in one line: “All 4xx errors, except 429, are treated the same: Google crawlers inform the next processing system that the content doesn't exist.”

Two consequences for a Shopify merchant, and the second is the useful one. First, there is nothing to change: Shopify serves a 404 on a deleted handle, and swapping it for a 410 would buy nothing even if you could. Second, and this is why it earns a section rather than a footnote, the status code is not the lever, so time spent on it is time not spent on the only thing that changes the outcome: where that URL sends the person who clicked it. The same document notes that “The 4xx status codes, except 429, have no effect on crawl rate”, so a batch of dead product URLs is not throttling the rest of your store either. The one exception the documentation carves out, 429, belongs to the server-error family rather than to anything a deletion causes.

What the status code does decide is what the shopper gets, and what happens to whatever link value that URL had accumulated. A 404 spends both. That is the whole argument for the next section.

The fix: redirect, don't just let it 404

A 404 and a 301 redirect both eventually get treated as "gone" by Google, but only one of them sends the shopper, and any residual SEO value the page had built up, somewhere useful in the meantime:

  • Create a URL redirect from the dead product URL to the closest live equivalent (a similar product, or the parent collection if there's no direct replacement) under Content → Menus → URL Redirects in Shopify admin. Shopify's own documentation states that “URL redirects start working immediately”, and it gives this exact case as its example: “if you delete a product, then you can set up a URL redirect so that when customers enter the URL for that product, they're redirected to a similar product on your store.” Note the grammar of that sentence: you can set up. It is an option offered after the fact, not a step inside deleting a product.
  • For renames, set up the redirect at the same time you change the handle, not after the fact: the gap between the change and the redirect is exactly when Google can crawl the dead URL and start treating it as removed. One rule in the same Shopify document decides what is even possible here: “You can redirect only from broken URLs”, and “If the URL still loads a valid webpage, then the URL redirect won't work.” A deleted or renamed handle is broken, so it can be redirected. A handle that still resolves cannot be. That is why the order Shopify imposes is the opposite of the one that feels natural: you cannot stage the redirect first and then rename.
  • For a bulk cleanup, export the list of URLs being removed before you delete anything, so redirects can be created in bulk rather than reconstructed later from Search Console error reports.
  • Once redirects are live, use Search Console's URL Inspection tool on a few of the affected URLs to confirm Google now sees the redirect rather than a 404, and resubmit your sitemap so the fix gets picked up sooner than the next passive crawl, assuming Google can read that sitemap at all, which is its own failure mode.

If the listing has to be gone today

A redirect is the durable fix, but it still waits on Google revisiting the URL. When the listing itself is the urgent problem (a discontinued item, something you are no longer allowed to sell, a price that is no longer real), there is a faster route, and it is worth knowing its expiry date before relying on it.

Google's documentation on removing information says: “For quick removals, use the Removals tool to remove a page hosted on your site from Google's search results within a day.” The catch is in the same document: “Requests made in the Removals tool last for about 6 months.”

So it is a stopgap with a timer on it, and the failure mode is specific: the urgent listing clears, the request lapses half a year later, and the URL can come back if it is still reachable and still indexable. Use the tool to buy time, then use that time to put the redirect in place. The same page lists what Google treats as durable: “Remove or update the content on your page”, “Password-protect your page”, and “Add a noindex tag to your page” (worth knowing how a noindex gets onto a Shopify page without anyone adding one). It also cautions: “Don't use robots.txt as a way to block your page.” That last line is worth reading twice, because blocking the URL in robots.txt is a common reflex here and it stops the crawl rather than the listing.

The redirect that fixes Google Search can break Google Shopping

No single document covers this part, because the two halves live in two systems with two different limits, and a bulk cleanup is exactly where they collide.

On the Search side, redirect depth is generous. Google's HTTP status codes documentation states that “By default, Google's crawlers follow up to 10 redirect hops.” On the Shopping side it is not. Merchant Center's unavailable landing page documentation names “Your landing page redirects too many times” among the causes and sets the ceiling explicitly: “To fix this error, ensure your landing page URL doesn't have more than 2 redirects.”

Put those side by side and the gap is three to ten hops wide: a product URL in that band is healthy in Search Console and disapproved in Merchant Center, and the two surfaces do not report to each other. The reason this concerns a deleted-product cleanup in particular is that redirects accumulate in one direction only. Each rename or deletion adds a permanent hop; Shopify's “you can redirect only from broken URLs” rule means the front of an existing chain cannot be shortened, because it loads by redirecting; and no screen in Shopify admin shows how deep a chain has become. Two cleanups a year apart on the same handle is enough. We measured the hop counts this produces on live storefronts in the redirect-error article, including stores where an ordinary URL shape already sits at the Merchant Center limit before any redirect rule exists.

The practical version: point a dead handle at the live page, not at another redirect, and not at the homepage, which Merchant Center treats as its own disapproval reason. If the replacement product has itself been renamed before, you are lengthening a chain rather than ending one.

The missing-from-sitemap article covers the same underlying gap running in the opposite direction: there, a live product silently drops out of what Google can find; here, a dead product silently stays in what Google already found. Both leave Shopify admin looking completely normal while the public-facing reality drifts out of sync with it. If you are not yet sure which of the two you have, the full map of ways a Shopify product goes missing from Google starts from the symptom instead of the cause.

Is this happening on your store right now?

Search Console will not page you when this happens. The product page loads fine in a browser, the sitemap looks clean, and Google quietly stops crawling or indexing it anyway. The only way to know is to check the pages the way Google sees them.

  • 90+ checks, the way Google crawls and indexes your store. Noindex tags, canonicals, redirects, robots.txt, sitemap coverage.
  • 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, about 1 in 4 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