Handling out-of-stock and discontinued products (SEO-safely)
Products sell out, get replaced, get discontinued. Each of those is a different situation with a different correct handling - and stores that treat them all as "unpublish it" leak years of accumulated ranking equity, one quiet deletion at a time. This is the product-level twin of the seasonal-pages rule from Phase 4, and it deserves the same discipline.
Temporarily out of stock: change nothing structural
A product that will return keeps its page - live, indexed, findable. What changes is state, not existence: availability flips to OutOfStock in your Product schema (your theme should do this automatically - worth one verification), the feed reflects it (Merchant Center pauses the listing, correctly), and the page keeps working for the customer via a back-in-stock signup - which, as the Klaviyo lesson showed, is demand data you want. What not to do: unpublish, redirect, or hide it from collections entirely. Every one of those trades a temporary stock gap for a permanent ranking restart.
Replaced by a successor: redirect to the heir
When a product is superseded - new season's version, updated model - the old URL's equity has a natural heir. A 301 redirect (Shopify: Online Store → Navigation → URL redirects, or at scale via Matrixify) passes the old page's accumulated standing to the successor. The judgment call is honesty: redirect when the successor genuinely answers the old page's visitor. Redirecting a discontinued dress to your homepage isn't a redirect, it's a disguised deletion - and Google treats mass redirects-to-homepage as exactly that.
Discontinued with no successor: retire deliberately
No heir, no restock. Options in order of preference: if the page has meaningful traffic or links, keep it live as a soft landing - marked discontinued, linking to the closest alternatives and the parent collection. It costs nothing and converts residual demand instead of 404ing it. If it has neither, let it go cleanly: unpublish, and the URL returns 404/410 - which is fine. 404s are not damage; they're the correct answer for things that no longer exist. The damage was only ever in 404ing pages that had value.
The process that makes this automatic
The reason stores get this wrong isn't ignorance - it's that product retirement has no owner. The fix is a tiny decision table (restocking? → keep live; successor? → redirect; neither? → traffic check, then retire) applied at season-end as a batch routine, with GSC's 404 report as the safety net catching anything mishandled. Fifteen minutes per season-end. The alternative is the slow leak that never shows up on anyone's dashboard - which is precisely why it persists.
Next phase: AI Search & Visibility