Most popup problems are not design problems. The offer is fine, the copy is fine, the timing is reasonable, and the results are still bad because the same visitor has seen it nine times.

Frequency capping is the unglamorous setting that decides whether your popup reads as a helpful offer or as a nag. It is also the one most teams never configure, which is why returning visitors, the people most likely to buy, end up being the ones most annoyed.


What is frequency capping?

Frequency capping is the rule that limits how often a given visitor sees a given popup. It usually has four parts:

  • Session cap. Once per session, or once every two sessions.
  • Time based cap. Not more than once per visitor per day, week or month.
  • Lifetime cap. A hard ceiling such as three impressions ever, after which the popup stops for that visitor.
  • Suppression rules. Conditions that switch the popup off entirely: already subscribed, already purchased, dismissed twice, arrived from an email campaign.

The first three control volume, the fourth controls relevance. Teams that configure only the volume half still annoy people who have already converted, which is the worst version of the problem: you interrupt your best customers with an offer they already took.

Why frequency matters more than design

A popup seen once is an offer. The same popup seen five times is a reminder that you are not listening.

There is a second, more measurable reason. Every additional impression on the same visitor costs you the conversion rate of the first impression, because the population seeing impression four is smaller and angrier than the population that saw impression one. Aggregate conversion rate hides this completely: it stays flat while your returning visitor experience collapses, and returning visitors are the group with the highest purchase intent.

When visitor behaviour degrades, it shows up later as unsubscribes, ad blockers, faster bounces and a shrinking email list, which is why the honest way to read popup performance is per visitor rather than per view.

A starting cap by popup type

Use these as defaults, then adjust with your own data rather than guessing in the other direction.

Popup typeStarting capNotes
Welcome discount for new visitorsOnce per session, once per visitor ever if not claimedThe classic first visit offer; a second showing rarely converts
Exit intent offerOnce per session, twice per visitor per monthCheap to show because they were leaving anyway, but stacking offers gets rude
Cart abandonmentOnce per session, stop after purchaseSuppression after conversion matters more than the cap here
Newsletter or lead magnetOnce per visitor per month until subscribedIf they declined twice, stop for a quarter
Product announcementOnce per visitor, high lifetime cap only if it changesSame message twice is noise; a genuinely new message is not
Survey or feedback askOnce per visitor, then suppress for 90 daysNever ask someone who just answered
Chat promptOnce per session, suppress after dismissal permanentlyA dismissed chat bubble that returns is the most common annoyance in this whole table

Two rules apply across all of them. First, a dismissal is a decision: honour it for longer than you would like to. Second, a subscriber or customer should not see acquisition popups at all.

How to set caps step by step

  1. List every popup you run and write down what each one is for. If two have the same goal, one of them is redundant.
  2. Assign each a cap and a suppression rule from the table above, and write both down where the team can see them.
  3. Segment new versus returning visitors. New visitors can take a first-visit offer. Returning visitors should get a different, later message, if anything.
  4. Set the dismissal memory. Store it on the visitor, not the session, so a closed popup stays closed across visits.
  5. Review after two weeks. Look at impressions per visitor, not just total views, and cut anything above your intended average.
  6. Cap the whole stack, not just each popup. Three popups each capped at once per session is three interruptions, which is how visitors experience it.

Step six is the one teams miss. Your caps can all be technically correct and the total experience can still be relentless.

Which metrics tell you a cap is wrong?

MetricWhat a bad reading looks like
Impressions per visitorCreeping above two per week across your whole popup stack
Close rate without conversionRising over successive impressions for the same visitor
Conversion rate by impression numberImpression one healthy, impressions three and four near zero
Unsubscribe and complaint rateRising after a frequency change, not after a design change
Repeat visitor conversionFalling while new visitor conversion holds steady

The last row is the clearest signal. If new visitors convert and returning visitors do not, your caps are too loose or the offer is aimed at the wrong people.

Mistakes that turn an offer into a nuisance

  • Capping per page load instead of per visitor. A visitor who reads six pages sees the offer six times.
  • Ignoring conversion state. Showing a discount to someone who just bought is the fastest way to teach them that your offers are generic.
  • One rule for all traffic. Paid traffic arriving from a specific campaign deserves a message about that campaign, not the generic homepage offer.
  • Same offer for returning visitors. If they declined last week, repeating it verbatim adds nothing. Change the message or the offer, or stay quiet.
  • Testing design variations while frequency is broken. Fix the cap before you test the button colour, or your results will be noise. Segment tests by visitor cohort if you want them to mean anything, and treat the whole thing like any other A/B test.
  • No global ceiling. Every team adds "just one more" popup, and nobody owns the total.

Frequency is the least visible conversion lever you have and one of the few that costs nothing to improve. Loosen nothing by default, tighten with data, and remember that suppression is a feature your best customers will never consciously notice but always feel. Pair sensible caps with a genuinely useful offer, the way a well targeted lead magnet does, and the same popup that used to annoy starts earning.

Q: What is a reasonable cap for a welcome discount?

A: Once per session, and once per visitor ever if they do not claim it. A second showing converts a small fraction of the first, and a fourth or fifth converts almost nobody.

Q: How long should a dismissal be remembered?

A: At least 30 days for a newsletter offer, and permanently for a chat prompt or an offer the visitor explicitly closed twice. Session-only memory is what makes popups feel like harassment.

Q: Should returning visitors see the same popup?

A: No. Either change the message, raise the value, or show nothing. The same offer to a repeat visitor is a reminder rather than an invitation.

Q: How do I measure impressions per visitor?

A: Track popup views against a persistent visitor identifier, then divide. If your tool only reports total impressions, you cannot see the problem, which is why per visitor reporting is worth insisting on.

Q: Does frequency capping reduce total conversions?

A: Usually the opposite. You lose low-quality impressions from people who were never going to convert and gain conversion rate and goodwill from the visitors who were. Fewer views, better outcomes.