Shopify

How to Fix Broken Links on Shopify (and Keep Them Fixed)

A dead link costs you a customer who never calls to complain. Here's how to find them, redirect them, and stop the same handles from breaking again.

Small business owner at a stockroom counter looking at a laptop with a dark screen, shelves of packaged filter kits blurred behind them.

A customer clicks a link to the filter kits you sell, and lands on a page that doesn't exist. They just leave, and you never hear about it.

That's how most of these go. Nobody reports a dead link. You rename a product handle to clean up the URL, or you unpublish last season's collection, and every link pointing at the old address quietly stops working. The page you printed on a truck magnet, the one in your email footer, the one Google still has indexed.

The good news is you can fix broken links on Shopify from inside the admin, one at a time or a few hundred at once, without rebuilding a single page. By the end of this you'll know which of your links are dead, how to point them somewhere useful, and why they keep coming back.

Where 404 errors on your store come from

The handle is the culprit more often than anything else. Every product and collection in your Shopify store has a handle, and that handle is the last part of the URL. Change the product title from "Mini Split Install Kit" to "Ductless Mini Split Kit" and Shopify will happily offer to update the handle to match. Say yes and the old address is gone. Every link anyone ever saved, printed, emailed or shared now points at nothing.

Deleting is the obvious one. Unpublishing is the sneaky one. A product you set to draft for the winter still has a live URL out in the world, and that URL now returns a 404. Same with a collection you retired. The page is fine in your admin. It just isn't reachable.

Then there are the big events. A migration from another platform, a bulk edit through a CSV, or an app that reorganizes your catalog can change hundreds of handles in one pass. You won't see it happen. There's no warning screen that says "you just orphaned 340 URLs." The first sign is usually a customer mentioning a link didn't work, or a drop in traffic to pages that used to bring in calls.

Theme changes cause a different flavor of the same problem. Swap themes and your navigation menus can lose items, because menu links are tied to specific pages and handles that the new theme doesn't always carry over.

None of this is a housekeeping issue. Broken links and 404 errors are what happens when the address of a page and the thing that points to it are maintained separately, by hand, by whoever touched the store last. Fix the links and you've fixed today. The structure is what decides whether it happens again next month.

How to fix broken links on Shopify without recreating pages

The instinct is to rebuild the page that disappeared. Don't. Recreating a product or collection at the old address gives you two pages doing the same job, and Google has to guess which one matters. You end up splitting whatever ranking the old URL had earned, and now you've got a second page to keep updated forever.

Send the traffic instead. Shopify has a built-in redirects tool that takes the old address and points it at a live page. A visitor who clicks a three-year-old link from a supplier directory, an old invoice, or a Facebook post lands on the page you actually want them on. Google follows the same path and moves the value from the old address to the new one.

Shopify's URL redirects are 301 redirects, which means permanent. That's the right kind here. A permanent redirect tells search engines the page has moved for good and to update their index. Temporary redirects tell them to keep checking back, which isn't what you want for a product handle you changed in March.

One old address, one destination. That's the whole fix for most broken links on a Shopify store.

Create a 301 redirect in the Shopify admin

From your Shopify dashboard, go to Online Store, then Navigation. Near the top right you'll see URL Redirects. Click it, then click Create URL redirect.

Two boxes. The first is the old path, the part of the URL after your domain, starting with a slash. If the dead link was yourstore.com/products/ac-tune-up-special, you type /products/ac-tune-up-special. The second box is where you want that visitor to land. Same format: /products/ac-maintenance, or /collections/service-plans, or just / for the homepage.

Save it. Then test it. Paste the old address into a browser and confirm it drops you on the new page.

A few things worth knowing the first time through. You can't redirect a URL that's still live. Shopify won't let you, because the real page wins. If the page still exists and you want it gone, delete or unpublish it first, then build the redirect. And send people somewhere related. A dead furnace filter page should go to filters, not the homepage. Homepage redirects make customers start over.

Bulk-fix hundreds of links with a CSV import

One at a time is fine for three dead pages. After a migration or a bulk handle edit, you're looking at a list long enough that clicking through the admin isn't worth your evening.

Shopify takes an upload. Go to the same URL redirects screen in your dashboard, and instead of creating a new one, choose the import option. The file needs two columns: the old path and the new path. Shopify's own template names them Redirect from and Redirect to, and the header row has to match, spelled that way, or the import throws the whole file back at you.

Fill it out the same way you'd fill out the form. Paths, not full web addresses. /products/old-handle in the first column, /collections/service-plans in the second. Leading slash on both.

The errors that kill an import are almost always small:

  • The file got saved as a spreadsheet, not a CSV. Use "Save As" and pick CSV, then upload that file.
  • Someone pasted in full addresses with the domain on the front. Strip them back to the path.
  • Blank rows at the bottom. Spreadsheets leave them behind constantly. Delete the empty rows before you save.
  • The same old path appears twice. Shopify can only send one address to one destination. Pick one and cut the duplicate.
  • A row points at a page that's still live. That one row fails while the rest go through, so read the error report rather than assuming the whole batch died.

Upload, and Shopify tells you how many rows landed and which ones didn't. Fix the rejects in the same file and re-import just those. Existing redirects that match get overwritten, so a corrected re-upload is safe.

Then spot-check. Pick five old addresses from different parts of the list, paste them into a browser, and see where you end up. A file that imports clean can still point half your product pages at the wrong collection.

Check your navigation menus and theme files too

A redirect fixes an address. It doesn't fix a menu.

Menu items in Shopify are their own records. When you change a collection handle, the redirect catches anyone arriving from Google or an old email, but the menu item in your header may now point somewhere you didn't intend, or sit there linking to a page you deleted. Go to Online Store, then Navigation, and click through every item in your main menu and your footer menu. Open each one in a new tab. It takes ten minutes for most stores.

Theme changes are the quieter problem. Buttons, banner links and featured collection blocks are section settings, and those settings don't always carry over when you swap or update a theme. The link field comes back empty, the button still renders, and nothing on your Shopify store reports an error. You find out when a customer tells you the "Book a Service" button goes to the homepage.

So after any theme work, walk the front of the site the way a customer would. Homepage buttons, footer, any hardcoded links a developer put directly into theme files, and the links inside page content. Rich text links in pages and blog posts are easy to miss because nothing in the admin flags them.

Check on a phone too. Mobile menus are often a separate menu entirely.

Export your redirects before your next theme change

Once you've built up a page of redirects, that list is real work. Treat it like a record you keep, not something that only lives in one place.

In the Shopify admin, open the URL Redirects page and export it. You get a CSV you can save with your other business files. Do it again whenever you add a batch.

Redirects sit outside your theme, so a normal theme swap shouldn't touch them. A store rebuild, a move to a new Shopify store, or a migration is a different story. If the redirects don't come along, you're rebuilding them from memory, and you will not remember the old collection handles.

Two minutes of exporting saves an afternoon of guessing later. Put it on the list you run after every site change.

Manual fixes vs Google Search Console vs a link-checker app

Three ways to find what's broken, and they fit different stores.

Clicking through it yourself works if your store is small and you already know which pages you changed. Open your own site, walk the menu, click every product and collection link, fix what errors out. It costs you an hour and no money. It also only catches what you think to check.

Google Search Console shows you the pages Google already tried to crawl and couldn't. Under the page indexing report, you'll see URLs returning 404s, including old ones you forgot existed and links other sites still point at. This is the honest list. It's free, it's tied to real traffic, and it's the first place to look if you suspect the damage goes back further than your last edit.

**A link checker — either a crawler you run against your domain or a Shopify app that scans and logs dead links on a schedule — makes sense when the list is long and keeps growing. If you're editing collections weekly or you just finished a migration, something that checks on its own beats remembering to check.

Our take: start with Search Console because it's free and it tells you what's actually costing you. Add an app only if the same pages keep breaking.

Broken links are usually a sign the structure is manual

Count how many of your collections were built by hand. If someone on your team adds each product to a collection one at a time, edits handles when a name reads better, and drags menu items around after every seasonal change, then every edit is a chance to break something. The links didn't fail. The process did.

An automatic structure holds up better. A collection built on a rule, such as a tag, a product type, or a vendor, picks up new products on its own and drops discontinued ones without anyone touching the menu. Handles stay put because nobody has a reason to rename them. Navigation points at collections that keep existing instead of individual products that get unpublished the day a supplier changes lines.

Something to do this week: pick the collection you edit most often and check whether it could be a rule instead. Tag the products that belong in it, set the condition, and stop maintaining the list by hand. Then look at your main menu and see how many items link straight to a single product. Those are the ones that break first.

This is one of the nine things we fix in a Shopify store, and it's the difference between cleaning up redirects every few months and not needing to. Patching links is real work, and it's worth doing, and it never ends if the thing underneath stays manual. The SEO benefit is a side effect of the store being built so links don't go dead in the first place.

How to recover a link that's already sending customers to a dead page

Redirect it first, then figure out the rest. A 404 with real traffic on it is a customer who came looking for something and left.

Find out where the traffic is coming from. If it's a printed truck wrap, a Google listing, a supplier's site or an old email, you can't edit the source, so the redirect has to do the work. Send it to the closest live equivalent, the same product in a new handle, the collection it used to live in, or the service page that replaced it. Your homepage is the last resort.

Set the redirect the same day you find it. Dead links that sit for weeks while someone decides on the perfect target are just broken links with a plan attached.

Common questions about fixing broken links on Shopify

How do I fix a broken hyperlink inside a page or blog post? Edit the page and repoint the link. A hyperlink in body text isn't covered by a redirect unless the URL it points at is the one you redirected. If the link goes to an old product handle and you set a redirect for that handle, it'll work. If it goes to a page you deleted outright, you need to change the link itself or create the redirect first.

How do I fix broken links across the whole site at once? Pull the list, then import redirects as a CSV. Manual fixes make sense for a handful. Anything more than that and you'll miss some. The bulk import handles hundreds of old paths in one upload.

Do 404 errors hurt my rankings? A few won't. A pile of them, especially ones that used to rank or used to get traffic, will cost you. Google stops trusting paths that keep dying.

Our Free Store Checkup goes through your store and hands you a written list of what's breaking, including the links pointing at nothing.

If you'd rather talk it through first, book a New Project Consultation.

More onshopifywebsitestrades

Chris Hobbick

About the author

Chris Hobbick

I build and fix websites, Shopify stores and business software. I work directly with business owners to understand the problem and agree on the work and price.

Meet Chris →

The Newsletter

One useful idea. Once a week.

Practical notes on websites, online stores and the daily work software can help with.

Unsubscribe whenever you want.