A few years ago, the mouse-leave popup was genuinely clever. A shopper's cursor drifts toward the browser chrome, a script catches the vector, and a discount code appears just before they'd have left for good. The first time a shopper saw one, it probably worked. The tenth time, it registered as background noise. Today, for most stores, it barely registers at all.

That's not a design problem. It's a timing problem, and it's worth being precise about why, because the fix isn't "make a better popup" — it's rethinking when and how you intervene in the first place.

The exit-intent popup was built for a browser that doesn't exist anymore

Exit-intent detection relies on cursor movement: the assumption that a shopper about to leave will move their mouse toward the top of the window to reach the tab bar or the back button. That was a reasonable bet in 2015, when most shopping happened on desktop. It's a much weaker bet now that most retail traffic is on mobile, where there's no cursor to track at all — just a thumb that closes an app or swipes away a tab with no warning motion whatsoever.

Even on desktop, shoppers have learned the pattern. A popup that fires the instant the cursor nears the top of the screen has trained an entire generation of online shoppers to expect it, and shoppers who expect an interruption discount it before they've even read it. The offer might be genuinely good. It doesn't matter — it arrives at a moment the shopper has already mentally filed under "thing to close," not "thing to consider."

What's actually happening when someone abandons a cart

Cart abandonment isn't one behavior. It's several different situations that all end with the same database row, and they need different responses:

  • Price-checking. The shopper is comparing your total against a competitor's, or against what they remember paying last time. A generic discount might land, or might just look like proof they were right to shop around.
  • Genuine hesitation. Something in the checkout flow raised a question — shipping cost, return policy, sizing — and they left to go find the answer somewhere else, or just to think about it.
  • Interruption. A phone call, a notification, a kid needing something. No purchase decision was made at all; the tab is probably still open somewhere.
  • Browsing, not buying. The cart was never a serious commitment. This person was never going to convert today regardless of what popped up.

A single exit-intent popup, firing on cursor movement with one generic offer, can't distinguish between these. It treats a distracted parent the same as a comparison shopper the same as a window browser, and the discount that might have worked on one insults the other two.

What's replacing it: recovery that reads context, not just cursor position

The stores actually improving their recovery rate have moved away from a single trigger toward a handful of signals used together:

Time on the checkout step, not time on site. Someone sitting on the shipping page for ninety seconds is doing something different from someone who just landed. Dwell time on a specific step is a far cleaner signal than overall session length.

What's actually in the cart. A single low-margin item and a cart worth several hundred pounds don't call for the same message. One might warrant a small nudge; the other might warrant nothing at all, because a discount on a cart that was already going to convert is pure margin loss.

Return visits, not just the current session. A shopper who's added the same item to their cart across two separate visits is showing real intent. A first-time visitor with an empty browsing history is showing something closer to curiosity. Treating both as equally "about to abandon" wastes the intervention on the wrong person.

Device and channel. Mobile abandonment often really is interruption — the shopper fully intends to come back. That calls for a well-timed email or a return-visit reminder, not a popup that can't even fire reliably on a phone. Desktop abandonment on a checkout step, by contrast, is a much better candidate for a real-time onsite message, because the shopper is still there.

None of this requires guessing. It's the difference between a system that fires the same trigger at everyone and one that's actually reading what's in front of it before deciding whether to say anything at all — and if it does, what to say.

The sequence matters as much as the trigger

Even a well-targeted onsite message is only the first touch. A shopper who leaves without converting — whatever the reason — is still a real recovery opportunity for hours or days afterward, not just in the sixty seconds before they close the tab. A message that fires onsite when the signals justify it, followed by a well-timed email if the cart is still sitting there an hour later, covers far more of the abandonment reasons above than either channel does alone. The interrupted parent who never saw the popup gets caught by the email. The price-checker who dismissed the popup gets a second, less naggy chance later, after they've had time to compare.

This is really a question of matching the response to what the shopper is actually signaling, rather than assuming every visitor who moves their cursor toward the top of the screen is the same shopper with the same objection.

What to do instead

If exit-intent popups are still the only recovery mechanism a store has, the fastest improvement isn't a better offer — it's better targeting of when any message shows up at all. Start by separating checkout-step abandonment (high intent, worth a real-time nudge) from early-browse abandonment (low intent, better left to email or simply left alone). Then look at cart value before deciding whether a discount is even the right lever, since plenty of recoverable carts need nothing more than a helpful nudge about shipping cost or delivery time, not a percentage off.

The mouse-leave popup isn't dead because popups don't work. It's dead because "everyone who moves their cursor" stopped being a useful enough definition of "someone worth talking to."