Retiring a product without breaking the links to it
A discontinued product is still being searched for, linked to and bookmarked, and what those visitors meet depends entirely on which of Shopify's product statuses you picked. Two of the answers are native and free, and the one most merchants reach for first is the one that leaves the link broken.
Archiving a product is the obvious move and the one that breaks its link. Shopify's own definition of an archived product is that it "is no longer being sold and isn't available to customers on sales channels and apps" — which, for the page itself, means the link stops working.
That matters more for a discontinued product than for almost anything else in the store, because it is exactly the product people still search for, bookmark, and reorder by link. Shopify has two native ways to keep that link useful. Most merchants never use either.
The three statuses, and what a visitor meets
Archived — the product is gone from every sales channel. Shopify never says in one sentence that its page then returns a 404, but it follows from the definition above and from how redirects work, below. Assume the link is broken.
Draft — "The product isn't ready to sell and is unavailable to customers on sales channels and apps." For a visitor, the same outcome as archived. It is meant for products that are not ready yet, not ones that are finished.
Unlisted — and this is the one worth knowing. "The product is active but you need a direct link to view it. The product doesn't show up in search, collections, or product recommendations." Shopify describes it as the way "to keep a product accessible only by direct URL, but hidden otherwise".
For a discontinued product that is often the right answer, and it is a status change rather than a project: the page keeps working for everyone who has the link, it disappears from browsing and search, and you can say on the page itself that it is no longer made and what to buy instead. Nothing is broken and nothing needs maintaining.
Deleting is the one to avoid: "When you delete a product, it's permanently removed from Shopify. Deleted products can't be restored."
Redirecting instead
If you want the old link to land somewhere else — the replacement, or the collection it belonged to — that is a redirect, and Shopify has a rule about when you may create one: "You can redirect only from broken URLs." So the product has to be archived or drafted first; a live page cannot be redirected away from.
Two practical limits. "301 redirects are cached by browsers and search engines", so a redirect you later change may keep sending some people to the old destination for a while. And there is a ceiling of 100,000 redirects, or 20 million on Plus, which a catalogue that retires products every season will eventually notice.
Retiring products faster than you can redirect them? Describe where each one should send people →
Doing it automatically, natively
This is the part that surprises people: Shopify can already do it without anybody remembering. Shopify Flow has a trigger for exactly this moment — it "starts a workflow when a user in your organization or a third-party app changes the status of a product" — and an action to create a redirect, which takes the path people are sent away from and the destination they are sent to.
Put the two together and "when a product is archived, send its link to its collection" happens on its own. Flow is free on Basic, Grow, Advanced and Plus; it is not available on Starter.
Nothing in Shopify knows the replacement on its own. There is no built-in field that says this product was replaced by that one, and Shopify's product recommendations only appear on a live product page — a retired product has no page for them to appear on. You can add such a field yourself, as a metafield on each product, and build the Flow workflow to read it as the redirect's destination; Shopify's community forum has a worked example. That works. What it turns the problem into is keeping that field filled in, product by product, every time something is retired.
If you sell parts, this is the same job under a different name. An old part number that now has a replacement, a cross-reference list, a part superseded two or three generations back — the mechanism is exactly the one above, a field of your own holding the replacement and a redirect that reads it. The only thing parts add is depth: when the replacement itself was replaced, a single field sends the customer to a page that is also retired, so the chain has to be followed to the end rather than one step.
One thing Shopify does not document: what an archived product does in Google Merchant Center. Shopify documents that synced product data follows Google's 30-day expiry, but not how an archived product is withdrawn from the feed. If your products appear in Shopping results, check the feed after you archive rather than assume.
Which route is yours
| What you need | Where it comes from |
|---|---|
| Keep the page working for existing links | Native — set the product to Unlisted |
| Send the old link somewhere else | Native — archive it, then add a redirect |
| Do that automatically on every archive | Native — a Flow workflow, Basic and above |
| Send each product to its own replacement | Not built in — a metafield of your own plus the Flow workflow above |
| Undo a deletion | Not possible — deleted products cannot be restored |
What Shopivibe does
If one destination fits every retired product, use Flow. It is free, it is Shopify's own, and it does exactly this.
Where it becomes worth asking for is the pairing: "when the 2025 blue glaze is archived, send its link to the 2026 blue glaze; when the large tote goes, send it to the new large tote." That is a list of pairs, one per product, kept in step with your catalogue as it changes — the thing Shopify has no built-in field for.
Two things to say plainly. The pairs are yours — only you know which product took which one's place, and a person here keeps that list with you. And archiving stays your action — the rule runs the moment you archive, and turns that one click into the redirect. A person here takes it on straight away and has it working in your store within 24 hours.
Shopivibe solves the problem in your store and keeps what it adds maintained, including when Shopify changes something underneath. Shopivibe is free during early access, with 3,500 credits included. Credits beyond the included 3,500 cost $0.06 each.
Know where each retired product should send people? Describe it in your own words →
Checked against Shopify's documentation and the App Store on 22 September 2026.