TL;DR
- A sitewide percentage off clears dead stock but trains shoppers to wait for the next cut and drags down your margin on everything.
- Target only the dead SKUs with variant-specific flash sales so bestsellers keep full price.
- Use real stock limits and time-boxed windows to create urgency without a permanent price drop.
- Bundle slow movers with bestsellers to move units at a blended margin instead of a raw markdown.
- Gate the sale to a list or segment so the discount does not leak to your whole audience.
To clear dead stock on Shopify without wrecking your margin, skip the sitewide percentage off and target only the dead SKUs. A blanket store-wide discount does move product, but it cuts the price on your bestsellers too, trains shoppers to wait for the next sale, and cheapens the brand. Precision beats a sitewide markdown every time: variant-specific flash sales, real stock limits, time-boxed windows, bundles, and gated access clear the same units and protect the rest of your catalog.
Why the Sitewide Discount Is the Wrong Tool
The store-wide banner is easy to set up, which is exactly why merchants reach for it. It is also the bluntest tool you own.
Three costs follow every blanket discount:
- Margin leaks to full-price buyers. A shopper who was ready to pay full price for your bestseller now pays 20 percent less because the code applies to everything.
- You train the wait. Once customers learn a sitewide sale is coming, they stop buying at full price and hold out for the next one.
- The brand reads as cheap. Permanent or frequent store-wide cuts signal that your list prices are fiction.
Dead stock is a specific problem: a handful of SKUs, sizes, or colors that stopped selling. The fix should be just as specific.
Step One: Find the SKUs That Are Actually Dead
You cannot target what you have not identified. Before any markdown, separate genuinely dead inventory from a slow week. Look at sell-through over a fixed window, age since last sale, and units sitting past your reorder point.
Fashion and apparel merchants have an extra wrinkle: a style is rarely dead across every size. The middle sizes sell out while the extremes sit, leaving broken size runs that read as dead stock in aggregate. Our guide on detecting fashion dead stock with AI walks through how to spot the true non-movers, and the deeper piece on clearing broken size runs in Shopify fashion covers what to do when only the odd sizes are stuck.
Pull the list first. Then apply the tactics below only to the SKUs and variants that earn it.
Tactic 1: Variant-Specific Flash Sales
Run the discount on the dead variants only, not the product and not the store. If the black shirt in XS and XXL is dead but the medium sells fine, mark down the two dead variants and leave the rest at full price.
This is where a dedicated flash-sale page beats a Shopify discount code. A code applied at checkout is invisible until the cart. A dedicated sale page with a countdown timer, stock limits, and variant-level control puts the exact dead SKUs on their own page, so full-price shoppers browsing your main catalog never see the cut.
The result: dead variants move, bestsellers hold their price, and the discount never bleeds across the catalog.
Tactic 2: Stock Limits and Time-Boxed Windows
Urgency moves dead stock faster than a bigger discount does. Two levers create it without a permanent price change:
- Real stock limits. Show the true remaining count. "9 left" on a slow mover converts because scarcity is honest, not because you cut deeper.
- A hard end time. A sale that ends Sunday at midnight forces a decision now. An open-ended markdown says "buy whenever," which means "buy never."
A time-boxed window also protects your brand. The low price is an event with a start and an end, not a new baseline. When the window closes, the price returns to full, and your list price stays credible.
Tactic 3: Bundle Slow Movers With Bestsellers
Instead of slashing the price on a dead SKU alone, pair it with a product that already sells. The bestseller carries the demand, the slow mover rides along, and you move both at a blended margin.
A few bundle patterns that work:
- Buy the bestseller, add the dead item at a steep discount. The anchor product drives the click; the dead SKU clears at a price you would never advertise on its own.
- Fixed-price kit. Package three items, one of them dead, at a single price. Shoppers judge the kit, not the line items.
- Free dead-stock gift over a threshold. Give the slow mover away above a cart value. You clear inventory and lift average order value at the same time.
Bundling hides the markdown inside a package, so the discount never becomes a public price on the individual SKU.
Tactic 4: Gated and List-Only Sales
Keep the discount off your public store entirely. Send the dead-stock sale to your email list, a customer segment, or a private page shared through a link. Your broad audience keeps seeing full prices, while your warmest buyers get first crack at the clearance.
Gated sales solve the leak problem at the source. The discount reaches people who already like you, not the passer-by who would have paid full price. It also rewards loyalty, which softens the "everything is on sale" signal that a public banner sends.
A dedicated, unlisted sale page is the mechanism here. Share the URL where you want and nowhere else.
Sitewide Discount vs. Targeted Clearance
| Factor | Sitewide % Off | Targeted Clearance |
|---|---|---|
| What gets discounted | Every product, including bestsellers | Only the dead SKUs and variants |
| Full-price shoppers | Pay less on items they would have bought anyway | Never see the cut, pay full price |
| Brand signal | List prices look inflated | Discount reads as a limited event |
| Trains "wait for the sale" | Yes | No, the sale is scoped and time-boxed |
| Setup effort | One code, one banner | Per-SKU targeting, one dedicated page |
How to Run It: A Simple Sequence
Put the tactics in order so each sale is clean and repeatable:
- Identify the genuinely dead SKUs and variants from your sell-through data.
- Decide the mechanism per item: solo flash sale, bundle, or gated drop.
- Set real stock limits and a hard end time on every sale.
- Point the discount at a dedicated page, not a sitewide code.
- Send it to a segment or list when you want to keep it off the public store.
- Let the window close, return to full price, and measure what cleared.
For the details on timing, copy, and stock display that make each window convert, our rundown of flash sale best practices covers the execution end to end.
Frequently Asked Questions
What counts as dead stock on Shopify?
Dead stock is inventory that has stopped selling: SKUs, sizes, or colors sitting past your reorder point with little to no sell-through over a fixed window. In fashion, it often shows up as broken size runs where only the extreme sizes remain.
Why not just run a store-wide discount?
A sitewide cut discounts your bestsellers too, hands margin to shoppers who would have paid full price, and trains customers to wait for the next sale. It clears the dead stock but damages everything around it.
How do I discount only the dead variants and not the whole product?
Use a dedicated flash-sale page with variant-level control. You mark down only the specific dead variants, place them on their own page, and leave the product's healthy variants at full price in your main catalog.
Do stock limits really move product faster?
Honest scarcity converts. Showing the true remaining count and a hard end time creates urgency that a deeper discount does not, so you clear units without cutting the price further or making the low price permanent.
How do I keep a clearance sale off my public store?
Gate it. Send the sale to your email list, a customer segment, or a private link instead of a public banner. Your broad audience keeps seeing full prices while your warmest buyers clear the dead stock.