Treat Shopify 404s as a symptom first: redirect or restore the dead URLs that still earn visits or links, let the rest return a real 404, and give the 404 page one job: a search bar plus your top collections, not coupons or games.
Most 404 advice is about decorating the room people land in. The money is in asking why they keep landing there, because every visitor on that page followed a link someone believed in.
A shopper clicks a link in a two year old gift guide, a Pinterest pin, or an old abandoned cart email. The product it points to was deleted at the end of last season. They land on a page that says “Page not found,” with a “Continue shopping” button that drops them on the homepage, nowhere near what they wanted. Most of them leave. Nobody on the team ever sees it happen, because nobody looks at that page.
That is the real problem with 404 pages on Shopify stores. The page itself is rarely the issue. The issue is that dead URLs pile up quietly every time a product is deleted, a handle is renamed, a collection is retired, or a store moves platforms, and a few of those URLs keep receiving visitors from links you no longer control.
This guide is for merchants who retire products regularly or have changed platforms, roughly the $250K to $10M range where catalogs change faster than anyone audits them. If you are earlier than that, the 404 template section is the part to use. If you run a large catalog, the policy and automation sections are where your time pays back.
A 404 costs a Shopify store the visitors who arrive on it with intent, not search rankings. Google is direct about this in its guidance on 404 errors: 404s do not harm your site’s indexing or ranking, and a page you deleted with no replacement should keep returning a 404. So the instinct to “fix every 404” because an SEO tool flagged hundreds of them is mostly wasted effort.
The cost sits somewhere else. A URL that still receives traffic is a URL someone linked to on purpose: a blogger who reviewed your product, an affiliate, a marketplace listing, your own old email flows, a customer’s bookmark. Those visitors arrived wanting a specific thing. When they hit a dead end, you lose a warm visit that cost you nothing to acquire, and if the URL had backlinks, the value of those links stops flowing to anything useful.
Matt Stafford, managing partner at Build Grow Scale, framed the wider conversion version of this on episode 411 of the podcast: “If I have a hundred people come to my site and only two people buy, I want to know why the 98 people left.” A 404 is one of the few places where you know exactly why they left. The link promised something the store no longer has.
That reframes the work. You are not trying to get the 404 count to zero. You are trying to find the small number of dead URLs that still carry intent, send that intent somewhere sensible, and stop your own catalog habits from creating new ones every quarter. For most stores the list that matters is dozens of URLs, not hundreds, which is why this is a morning of work rather than a project.
Most 404s on a Shopify store are self inflicted, created by normal catalog changes rather than by broken code. Shopify’s own URL redirects documentation notes that products set to draft or removed from all sales channels return 404 errors, which means the everyday act of retiring a product produces a dead URL unless someone adds a redirect.
Four habits create almost all of them. Deleting or archiving products at the end of a season or when a supplier discontinues them. Renaming a product or collection handle for SEO or a rebrand without confirming a redirect from the old handle exists. Retiring a collection page that was linked from ads, influencer posts, or a wholesale catalog. And replatforming, where every URL pattern on the old store changes at once.
Migrations deserve their own warning. Chase Clymer, co-founder and CEO of Electric Eye, put it bluntly on episode 329: “Migrations are the single hardest and most time consuming project you will ever take on for your business.” He also pointed out that “there’s a bunch of SEO implications within this rebuilding process with how URLs are structured.” In practice, the old platform’s URLs rarely match Shopify’s /products/ and /collections/ paths. A WooCommerce or Magento store moving to Shopify can turn every product URL it has ever earned a link to into a 404 on launch day if the redirect map is incomplete. Chase also warned that on launch day the new redirects can take a while to behave, so a burst of 404s in the first hour is not a reason to panic, but a missing line in the redirect map is. If you are planning a move, the migration checklist for keeping your AI visibility covers what a migration needs beyond the redirect map.
The useful takeaway is that 404 management is mostly a catalog policy, not a design project. If the person who retires products also owns the redirect, the problem shrinks to whatever sneaks through.
The 404s worth fixing are the ones that still receive visits or carry backlinks, and you can find them by combining Google Search Console with your own landing page data. Start in Search Console’s Page indexing report and open the “Not found (404)” reason. Export the list. This tells you which dead URLs Google knows about, which is a decent proxy for which ones exist in links across the web.
Next, check which of those URLs real visitors still land on. In Shopify’s analytics, look at sessions by landing page over the last 12 months (90 days misses gift guide and holiday links that only wake up in Q4) and filter for paths that no longer exist, usually old /products/ and /collections/ handles. In GA4, filter page views by your 404 page’s title (open any broken URL on your store and copy what appears in the browser tab), then add the page path dimension so you can see the exact URL each visitor requested.
Then add link data. Search Console’s Links report shows your top linked pages, and a backlink tool such as Ahrefs or Semrush will show which dead URLs still have referring domains. Sort the combined list by sessions first and referring domains second.
What you usually find is a long tail and a short head. A few dozen URLs carry nearly all the visits and links. Hundreds more are typos, scraper junk, or products that sold three units years ago and that nobody links to. Google’s guidance is that the long tail can be left alone. The short head is your redirect list.
Keep the export. Running the same pull every quarter takes 20 minutes once you have done it once, and the comparison shows whether your retirement policy is working or quietly leaking again.
Every dead URL on your short list gets one of three decisions: redirect it to the closest equivalent, restore the page, or let it keep returning a 404. The test is simple. Ask what the visitor clicking that link wanted, and whether anything on the store still gives it to them.
Redirect when there is a genuine equivalent. A discontinued colorway goes to the same product in its current colors. A retired product goes to the collection it belonged to, or to its direct replacement. A renamed handle goes to the new handle. Shopify’s redirect manager lives under Content, then Menus, then View URL Redirects in the current admin, and it accepts CSV imports for larger batches, with a limit of 100,000 redirects on standard plans. One detail catches people out: Shopify says redirects only work for URLs that return 404 errors, so if the old URL still loads a live page, the redirect will not fire.
Restore when the product is coming back. A product that will restock is better left live and sold out, with a back in stock signup, than deleted and redirected. That keeps its links, reviews, and search history intact. The technical SEO priorities guide makes the same case for giving out of stock products a deliberate policy rather than letting each one be handled ad hoc.
Let it return a 404 when nothing on the store matches the intent. Google is explicit that redirecting dead URLs to the homepage is treated as a soft 404, the same pattern as a “not found” page that returns a 200 status, and it confuses shoppers and search engines alike. Bulk redirect apps that send every missing URL to the homepage make this mistake at scale. The shopper is confused, the redirect passes nothing useful, and you lose the clean signal in Search Console that told you which links broke.
A redirect is a promise that the new page answers the old question. If it does not, a well built 404 page is the more honest answer.
A Shopify 404 template should do one job: get a stranded shopper back to products in one click, through search or a short set of current collections. Shopify’s theme documentation for the 404 template recommends exactly that: say plainly that the page could not be found, include a search bar, and link to useful places such as collections. Online Store 2.0 themes use a 404.json template, so you can add sections to it in the theme editor without code.
Search earns the top spot because the visitor arrived with a specific product in mind. Matt Stafford’s observation on episode 411 was that “search traffic and filtered traffic on your site will convert twice as high as the site average and typically spend two to four times as much.” Treat that as his agency’s experience across its clients rather than a universal benchmark, but the logic carries: a shopper who types what they wanted is telling you their intent. Shopify’s free Search & Discovery app adds synonyms and typo tolerance, which matter here because people searching from a dead link often use an old product name.
Below the search bar, show three or four of your bestselling collections, not a dozen. Matt made a related point on the same episode: the products that drive most of the revenue are often buried under a generic “Shop” menu instead of placed where people can find them. Add one honest line for returning visitors, something like “Looking for a product from a past season? Search for it above or browse what replaced it.” Finish with a contact link for the shopper who needs a human. That is enough.
Now the subtraction. Several popular 404 additions make the page worse. A discount code on the 404 page is a public coupon: anyone who mistypes a URL sees it, and codes exposed that way tend to end up on coupon sites. If you want an offer there, use a single use code behind an email signup instead. Games, jokes, and animated illustrations are fun to build and delay the only action that matters. Social media icons send a high intent shopper away from your store. Email signup forms are fine further down the page, but they should never sit above search.
In a seasonal apparel store, a 404 cleanup usually means acting on a few dozen dead URLs and deliberately ignoring hundreds. The store below is a composite built from patterns common to seasonal Shopify catalogs, not a single merchant, and its numbers are illustrative assumptions rather than observed results. Picture an apparel brand doing about $1.5M a year with around 400 active products, two seasonal drops a year, and a habit of deleting last season’s products once the drop sells through. Search Console lists about 600 URLs under “Not found (404),” and the agency’s audit flagged every one of them.
Here is how I would work it, in order. First, export the 600 and cross them against a year of landing page sessions and referring domains. Assume 35 of them carry sessions over the last year, and 12 of those 35 also have links from other sites. Those 35 are the job. The other 565 get no action, because Google has said they do not hurt the site and nobody is landing on them.
Second, decide each of the 35. Products in a style that continues get redirected to the current version. Seasonal one offs go to the collection that replaced them, such as last spring’s linen shirts to the current linen collection. Three products the founder plans to reissue get restored as sold out pages with a back in stock form. Anything with no equivalent stays a 404.
Third, rebuild the 404 template: search bar at the top, four bestselling collections, one line about past seasons, a contact link. Remove the 15 percent off code someone added two years ago, for the public coupon reason above.
Fourth, fix the habit. Add “add a redirect or a sold out status” to the end of season checklist, owned by whoever retires the products. The first cleanup is a morning of work. After that, it is roughly 10 minutes per product retirement.
The call you could disagree with is ignoring 565 flagged URLs. If a skeptical agency insists, ask which of them has a visitor or a link. If the answer is none, the work is cosmetic.
The 404 workflow scales from a quarterly manual check for small stores to automated redirects for large catalogs, and the right level depends on how often your product URLs change. Whether you are doing $10K months or $1M months, the principle is the same; only the tooling changes.
If you are under roughly $500K a year with a stable catalog, do the template work once and run the Search Console and landing page check each quarter. Redirect the few dead URLs with visits by hand. Anything more is premature.
Between $500K and $2M, catalog churn usually accelerates through seasonal drops, bundles, and limited runs, and this is where 404s start piling up. The end of season checklist from the worked example is the fix. Make one person accountable for redirects on every product retirement, and keep a running CSV so redirects can be bulk imported and audited.
Above $2M, or with hundreds of products changing each year, automate the default. Shopify Flow’s Create redirect URL action can create a redirect when a product is deleted, and Shopify’s own example sends visitors from a deleted product to a page about discontinued products. Shopify warns that the example may not work for products with customized handles, so test it on a handful of products before trusting it, and treat the automated target as a safety net while a human still chooses better destinations for products with real link equity. For the platform level picture of what Shopify handles automatically and what merchants break themselves, see the guide to technical SEO for Shopify stores.
At every stage, the replatforming exception applies. A migration is the one moment when hundreds of valuable URLs die at once, so the redirect map is a launch blocker, not a post launch cleanup.
No, 404 errors on their own do not hurt your Shopify store’s rankings. Google states that 404s do not harm a site’s indexing or ranking, and that a deleted page with no replacement should keep returning a 404. What does cost you is a dead URL that still receives visitors or has backlinks from other sites, because those visitors leave and the link value stops flowing to a useful page. Check Search Console’s Page indexing report for “Not found (404)” URLs, compare them against your landing page sessions and backlinks, and redirect only the ones that still carry traffic or links to a genuinely equivalent page.
No, you should not redirect all 404 pages to your homepage. Google treats blanket homepage redirects as soft 404s, which send search engines a confusing signal and hide which links actually broke. Shoppers are confused too, because they clicked a link for a specific product and landed somewhere generic. Redirect a dead URL only when a real equivalent exists, such as the replacement product or the collection it belonged to. When nothing matches, let the URL return a proper 404 and make your 404 template helpful, with a search bar and a few bestselling collections, so the shopper can find what they wanted.
You set up a URL redirect in Shopify from the redirect manager under Content, then Menus, then View URL Redirects, where you enter the old path and the new destination. For many redirects at once, use the Import option with a CSV of old and new paths. Standard plans allow up to 100,000 redirects. One rule matters most: Shopify redirects only fire for URLs that return a 404, so if the old page still loads, delete, draft, or unpublish it first. For catalogs that change often, Shopify Flow’s Create redirect URL action can add redirects automatically when products are deleted.
A Shopify 404 page should include a clear “page not found” message, a search bar at the top, three or four of your bestselling collections, and a contact link. Shopify’s theme documentation recommends a search bar and useful links on the 404 template, and Online Store 2.0 themes let you add these as sections in the theme editor. Add one line for returning visitors who may be looking for a past season’s product. Leave out discount codes, which become public coupons anyone can find by typing a wrong URL, along with games and social icons that distract a shopper who arrived wanting a specific item.
For discontinued products on Shopify, redirect the URL to the closest equivalent if one exists, restore it as a sold out page if the product is coming back, or let it return a 404 if nothing matches. Deleting, drafting, or unpublishing a product makes its URL return a 404, so the decision should happen at the moment of retirement. Prioritize products with backlinks, reviews, or ongoing visits, because those URLs still carry value. Make adding a redirect part of your end of season checklist, and on larger catalogs consider Shopify Flow to create redirects automatically when products are deleted.