Popup Triggers Compared: Time on Page vs. Scroll Depth vs. Exit Intent
The same pop-up can feel helpful or annoying depending on one setting: when it appears. This guide compares the common popup triggers, explains which offers fit each one, shows how to pick the actual numbers from your own data, and lists the practices that can get a site into trouble with visitors and with Google.
Updated

Why timing matters more than design
A pop-up is an interruption. Visitors came for a product page, a blog post or a price list, and the pop-up asks them to stop and do something else. Whether they accept the interruption depends mostly on two things: whether they have already gotten some value from the page, and whether the offer matches what they are doing right now.
Good design can’t fix bad timing. A beautifully designed 10% coupon that covers the screen half a second after the page loads still blocks the content the visitor came for. The same coupon shown to someone who has read most of a product page is an answer to a question they may already be asking: “Is there a better price?”
Timing also matters for search. Google’s guidance on intrusive interstitials asks site owners not to obscure the entire page with pop-ups and dialogs, and points to small banners that take up only a fraction of the screen as a better alternative (Google Search Central, Avoid intrusive interstitials and dialogs). A trigger that waits for engagement and a format that leaves the content visible work together.
The four common popup triggers at a glance
Most pop-up tools, including marketingLABO, offer the same basic set of triggers. In marketingLABO they are named “show immediately,” “after N seconds on the page,” “at N% scroll” and “exit intent.” Here is what each one means in practice.
| Trigger | When the pop-up appears | Best for | Main risk |
|---|---|---|---|
| Show immediately | As soon as the page loads | Short, site-wide notices in a bar format | Blocks content before the visitor has read anything |
| After N seconds | After the visitor has been on the page for a set time | Offers that make sense once someone has looked around | A fixed delay ignores what the visitor is actually doing |
| At N% scroll | When the visitor scrolls past a set share of the page | Offers tied to reading or browsing a long page | On short pages, the threshold is reached almost at once |
| Exit intent | When the tool judges that the visitor is about to leave | A last message before leaving | Behavior differs by device and browser; easy to overuse |
This guide focuses on time and scroll triggers, because they cover most everyday needs and are the easiest to reason about. They are based on what the visitor has already done on the page, so you can choose the numbers from your own analytics. Exit intent is a different kind of trigger. In marketingLABO it fires when the mouse leaves the window through the top edge on desktop, or, on phones and tablets, when the visitor has scrolled down a fair way and then scrolls back up quickly. It should never be confused with trying to stop people from leaving, which is covered in the “What not to do” section below.
Show immediately: keep it to bars and real announcements
An immediate trigger is the right choice when the message applies to everyone on the page and needs to be seen before they start browsing. Typical examples:
- A shipping cutoff (“Order by Dec 18 for delivery before the holidays”).
- A site-wide free shipping rule (“Free US shipping on orders over $50”).
- A store notice, such as a holiday closure or a delay in fulfilment.
All of these work best as a thin bar at the top or bottom of the page, not as a modal. A bar leaves the content visible, which is what Google’s guidance recommends, and visitors can read it without doing anything. If you show a sign-up or coupon modal immediately, the visitor has to close it before they see the page they came for, and many will close it without reading it.
One technical point: a bar that pushes the page content down after the page has already rendered causes a layout shift. Google’s Cumulative Layout Shift metric counts unexpected movement of visible content, and web.dev recommends a CLS score of 0.1 or less (web.dev, Cumulative Layout Shift). An overlay or a floating bar that sits on top of the content avoids pushing text around while the visitor is reading. Check how your bar behaves on a phone before you publish it.
For wording and placement of shipping bars specifically, see our guide to free shipping banners and threshold wording.
Time on page: show it after the visitor has engaged
A time trigger waits until the visitor has been on the page for a set number of seconds. It is the simplest way to avoid interrupting someone who just arrived. In marketingLABO you can set it from 1 to 100 seconds.
The difficult part is the number. A delay that is too short behaves like an immediate trigger; one that is too long means most visitors leave before the pop-up ever appears. Instead of copying a number from another site, look at how long people actually stay on the page you are targeting.
- Open the page’s time-on-page data in your analytics. In marketingLABO, the heatmap for each page shows time on page, scroll depth and clicks together.
- Note how long a typical visitor stays. Focus on visitors who actually read the page, not only the ones who bounce in a couple of seconds.
- Set the delay so the pop-up appears after a visitor has had time to see the main content, but well before most of them leave.
- After a week or two, compare impressions with the number of visitors to that page. If very few visitors ever see the pop-up, the delay is probably too long.
Time triggers suit offers that make sense once a visitor has looked around, but don’t depend on how far they’ve read:
- An email sign-up offer on a home page or collection page.
- A first-order coupon for first-time visitors (combined with a visit-frequency condition, covered below).
- A help or contact prompt on a pricing or shipping-policy page, where a visitor who stays a while may have a question.
The weakness of a fixed delay is that it ignores what the visitor is doing. Someone who leaves the tab open while making coffee and someone who is carefully comparing products may both reach 30 seconds. For long pages where reading progress matters, a scroll trigger is often a better signal.
Scroll depth: tie the pop-up to reading progress
A scroll trigger shows the pop-up when the visitor scrolls past a set share of the page. In marketingLABO you choose a percentage from 1 to 100. Scrolling is an action, so it is a stronger sign of interest than time alone: a visitor who has scrolled halfway down a product page has at least looked at the photos and probably the price.
Scroll triggers fit offers that follow naturally from what the visitor has just seen:
| Page type | Example scroll depth | Offer that fits |
|---|---|---|
| Product page | Around 50%, after the description and price | A free shipping notice or a first-order coupon |
| Blog post or guide | Near the end of the article | An email sign-up for related guides |
| Collection or category page | After the first few rows of products | A notice about new arrivals or a current sale |
| Long landing page | After the main benefits section | A short sign-up form or a link to the offer |
The example depths are only starting points. Pick the real number from your scroll heatmap: find the point where the key content ends, and check what share of visitors reach it. A trigger set at a depth that only a small share of visitors ever reach will rarely fire. For help reading scroll maps, see Website Heatmaps Explained.
Watch out for short pages. On a page that fits on one or two screens, 50% scroll may be reached in a second, so the scroll trigger behaves like an immediate one. Page length also differs a lot between desktop and mobile: the same page is usually much longer on a phone, where the layout stacks into one column. Look at the scroll heatmap for each device if your tool shows it, and use a time trigger on short pages instead.
Match the trigger to the offer
The trigger, the offer and the page should tell one consistent story. A useful way to decide is to ask: “At what moment would a visitor want this?” The table below shows common pairings.
| Offer | Suggested trigger | Where to show it | Format |
|---|---|---|---|
| Shipping cutoff or store notice | Show immediately | All pages | Bar |
| Free shipping threshold | Show immediately (bar) or scroll on product pages | All pages, or product pages only | Bar or floating |
| Email sign-up for content | Scroll near the end of the article | Blog posts and guides | Floating or small modal |
| First-order coupon | Time on page or scroll | Product and collection pages, first visit only | Modal or floating |
| New arrivals | Time on page | Home and collection pages, returning visitors | Floating or bar |
| Cart reminder | Time on page (short delay) | Any page, for visitors who viewed the cart but not the order-complete page | Floating or modal |
Notice that most rows combine the trigger with a condition about the page or the visitor. The trigger decides when; the targeting decides who and where. Getting the second part right usually matters more than fine-tuning the number of seconds.
Pair triggers with page and visitor targeting
A time or scroll trigger on its own fires for everyone who reaches the threshold on the pages where the banner runs. Adding targeting conditions narrows it to the visitors for whom the offer makes sense. In marketingLABO, a banner can be limited by:
- Page URL, with an option to include a prefix match (for example, every URL that starts with your /products/ path).
- Visit frequency: first visit only, or a given number of visits within a set number of days.
- Days since the last visit, for people who come back after a gap.
- Pages viewed or not viewed, such as “viewed the cart page but not the order-complete page.”
- Traffic source: organic search, referral, direct, or a URL parameter such as one in your ad links.
- Display period, with a start and end date for time-limited campaigns.
Conditions can be combined with AND, and you can add alternative condition sets with OR. Three example recipes:
- First-order coupon on product pages. Page URL: your product path with prefix match. Visit frequency: first visit. Trigger: 50% scroll. Format: modal with a coupon code, sized so it doesn’t cover the whole screen on mobile.
- Cart reminder. Pages viewed: the cart page. Pages not viewed: the order-complete page. Trigger: a short time delay on the next page they open. Format: floating banner linking back to the cart. The tag doesn’t read the contents of the cart, so keep the message general (“Your cart is waiting”) rather than naming products. Our cart abandonment guide covers what to fix on the site itself.
- Campaign match for ad visitors. Traffic source: the URL parameter used in your ads. Trigger: time on page. Format: bar repeating the ad’s offer, so visitors see that they landed in the right place.
For more on treating new and returning visitors differently, see How to Show Different Messages to First-Time and Returning Visitors.
Mobile: the same trigger, a different screen
Most problems with pop-ups are worse on phones. A modal that covers a third of a desktop screen can cover nearly all of a phone screen, and the close button can end up off-screen or too small to tap. A few practical rules:
- Prefer bars and floating banners on mobile. They leave the content visible, in line with Google’s interstitial guidance.
- If you use a modal, keep it small and make the close button large and easy to reach with a thumb.
- Re-check scroll depths on mobile, where pages are longer and 50% means more scrolling.
- Use separate images for desktop and mobile, or a mobile-only or desktop-only banner, when one design doesn’t work at both sizes. marketingLABO supports all four device options.
- Test on a real phone, not only in a desktop browser’s narrow window.
What not to do
Some techniques try to keep visitors from leaving rather than giving them a reason to stay. They hurt trust, and some are named in Google’s policies.
Don’t hijack the back button. Google’s spam policies list back button hijacking under “Malicious practices”: a site interfering with browser navigation by manipulating the browser history, so that users can’t use the back button to immediately return to the page they came from (Google Search Central, Spam policies for Google web search). This includes scripts that insert extra history entries to show an offer when a visitor presses Back. Whatever the offer, don’t do this.
Don’t use “Leave site?” prompts for marketing. Browsers let a page ask for confirmation before it is closed, through the beforeunload event. MDN’s documentation says to listen for it only when users have unsaved changes, so they can be warned about data loss, and to remove the listener when it isn’t needed. The browser shows a generic message that the page can’t change, and modern browsers only show the dialog after the visitor has interacted with the page. MDN also notes that in Firefox, pages with beforeunload listeners are not placed in the back/forward cache, which is bad for performance (MDN, Window: beforeunload event). A half-filled checkout or form is a legitimate case; a sales pitch is not.
Don’t stack triggers on the same page. A bar on load, a coupon after 10 seconds and a sign-up form at 50% scroll on one page add up to three interruptions. Decide which message matters most for that page, and give the others different pages or different visitors.
Don’t make closing difficult. A tiny or low-contrast close button, or a “No thanks, I don’t like saving money” link, makes visitors less likely to come back. A clear close button and a plain “No thanks” are enough.
Don’t promise urgency that isn’t real. If a countdown banner says the offer ends at midnight, end it at midnight. Use the display period setting to take the banner down when the campaign is over.
How to compare triggers without A/B testing
marketingLABO reports impressions and clicks per banner campaign. It doesn’t run A/B tests on pop-up banners (A/B testing is available for forms), so comparing two triggers is a matter of careful before-and-after comparison:
- Change one thing at a time: the trigger or the delay, not the trigger and the offer together.
- Run each version for a comparable period, such as two full weeks, so weekdays and weekends are both included.
- Write down the dates and settings of each version.
- Compare clicks relative to impressions, and also look at what happened after the click, such as sign-ups or orders in your conversion reports.
- Be cautious with small numbers. A difference of a few clicks can easily be chance, and seasonal changes or a sale can move results on their own.
Also watch for signs of annoyance. If a pop-up gets many impressions but very few clicks, and visitors on that page leave sooner than before, the trigger is probably too early or the offer doesn’t fit the page.
Checklist before you publish
- The pop-up has one clear job, and the trigger matches the moment a visitor would want it.
- Immediate triggers are used only for bars and short notices.
- The delay or scroll depth is based on your own time-on-page and scroll data.
- Short pages use a time trigger rather than a scroll trigger.
- Page URL and visitor conditions limit the pop-up to the people it is for.
- No other pop-up fires on the same page for the same visitor.
- On mobile, the content stays visible or the modal is small, and the close button is easy to tap.
- No back button tricks and no “Leave site?” prompts for marketing.
- A display period ends time-limited offers on time.
- You have written down the settings and start date, so you can compare later.
FAQ
What is a good default delay for a pop-up?
There is no universal number. The right delay depends on how long people stay on that page, which varies a lot between a product page, a blog post and a home page. Start from your own time-on-page data and adjust based on how many visitors see the pop-up.
Is a scroll trigger better than a time trigger?
On long pages, scroll depth is usually a better sign that a visitor is engaged. On short pages, a scroll trigger fires almost immediately, so a time trigger works better. Many sites use scroll on product pages and articles, and time on home and collection pages.
Should I use exit intent as my main trigger?
We don’t recommend building your pop-up strategy around it. Time and scroll triggers are based on what the visitor has done on the page and are easier to set from your own data. Whatever triggers you use, never combine a pop-up with techniques that stop people from leaving, such as back button manipulation or leave-page prompts. marketingLABO’s exit-intent trigger uses neither: it doesn’t touch the Back button, browser history, link clicks or the browser’s “Leave site?” prompt.
Do pop-ups hurt SEO?
Google’s guidance warns against interstitials that obscure the whole page and suggests small banners instead. Bars, floating banners and modals that appear after engagement and leave content visible are much less likely to be a problem than a full-screen pop-up on page load.
How many pop-ups should run on one page?
Ideally one per visitor per page. You can run several banners across the site, but use page URLs and visitor conditions so they don’t overlap.
Want to try these settings on your own site? Create a free account: the Free plan includes analytics, heatmaps, visitor history and one pop-up banner. The Light and Standard plans add more banners; see the pricing section. If you’re new to automation in general, start with What Is Marketing Automation?.
Sources
- Google Search Central, “Avoid intrusive interstitials and dialogs” (last updated December 10, 2025; accessed October 12, 2026): https://developers.google.com/search/docs/appearance/avoid-intrusive-interstitials
- Google Search Central, “Spam policies for Google web search” (last updated August 28, 2026; accessed October 12, 2026): https://developers.google.com/search/docs/essentials/spam-policies
- MDN Web Docs, “Window: beforeunload event” (accessed October 12, 2026): https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event
- web.dev, “Cumulative Layout Shift (CLS)” (accessed October 12, 2026): https://web.dev/articles/cls
Start free — no credit card needed
Sign up freeMore articles

Cookie Consent and Analytics Tags: What Small Sites Need to Know
When EU and UK rules require consent before analytics and marketing tags run, what a valid cookie banner looks like, and how to load tags only after consent.
Read the article →
CCPA/CPRA for Small Online Stores: Does It Apply to You?
The CCPA thresholds explained for small e-commerce stores: the $26.6M revenue test, the 100,000-consumer test, ad pixels as “sharing,” and what covered stores must do.
Read the article →
Organic vs. Direct vs. Referral Traffic: Traffic Sources Explained
What organic, direct and referral traffic really mean, why “direct” is inflated, how tools classify visits, and how to use traffic source in targeting.
Read the article →
Back-in-Stock and New-Arrival Banners for Returning Visitors
How to announce restocks and new arrivals with an on-site banner: who should see it, timing, copy that stays accurate, and a manual workflow that works.
Read the article →
Announcement Bars: What to Put in Them and When
What to put in an announcement bar, when to change it, and how to place it (floating or pushing content down) without hurting the page.
Read the article →
Hotjar Alternatives for Small Stores: Heatmaps Plus On-Site Messaging
Hotjar is now part of Contentsquare. Compare Contentsquare, Microsoft Clarity, Lucky Orange and marketingLABO on price, recordings, heatmaps and messaging.
Read the article →