A product page
The price
The cursor heads for the tabs.
Your offer gets there first.
An exit intent popup opens when a visitor looks about to leave: on a desktop, when the cursor leaves the page through the top of the window, towards the tabs, the address bar or the back button. Phones have no cursor, so there is no true exit intent on mobile; tools fall back to a timer, a scroll depth or a fast scroll back up. To add one without a plugin, paste one script tag into your site’s head, then build the popup and choose the trigger. Below: a live demo, an offer planner, install steps for each platform, and what Builderify popups actually do.
By the Builderify team
It doesn’t know; it guesses from the mouse. The browser fires a mouseleave event when the cursor moves out of the page, and the event says where the cursor was. If it left through the top edge, it is heading for the tabs, the address bar, the back button or the close button, so the popup opens before the click lands.
So exit intent catches the visitors who leave with the mouse, on a desktop or laptop. It is a good trigger for that group, and it is silent for everyone else. Plan for both.
Move your cursor up and out through the dashed top edge of this frame.
Then try leaving through a side. On a touch screen, use the button below: there is no cursor to move.
A sample only. Nothing is sent anywhere.
No exits yet. With the cap on, the popup opens once; close it and leave again to see it stay shut.
The demo uses the same test as Builderify’s exit-intent trigger: a mouseleave, counted only when the cursor left through the top. The frame stands in for the browser window.
A phone gives no warning before someone taps back or swipes the tab away. Tools that sell “mobile exit intent” use one of the signals below instead. Some are fine, one is now against Google’s spam policies, and Builderify’s exit-intent trigger uses none of them: on a phone it simply never fires.
| Signal | What it guesses from | The catch | In Builderify |
|---|---|---|---|
| Fast scroll back up | A quick flick towards the top, as if reaching for the address bar | People scroll up to re-read, too. It misfires often. | No |
| Back button | A fake history entry, so pressing back opens the popup instead of leaving | Google calls this back button hijacking, a spam policy violation enforced since 15 June 2026. | No, and don’t |
| Tab hidden | The page becomes hidden when they switch tabs or apps | They have already gone. The popup waits for them to come back. | No |
| Time on page | Someone who has read for a while is close to deciding | Not about leaving at all, but honest and predictable. | Yes: Delay, in seconds |
| Scroll depth | Someone who reached the end is finished with the page | Fires for readers who were staying, too. | Yes: Scroll, a percentage |
| Page views | Several pages viewed without acting | Needs a few pages of browsing first. | Yes: N views within D days |
| Your own button | The visitor asks for it | Only reaches people who tap. | Yes: a link or a line of code |
Google says intrusive dialogs “make it hard for Google and other search engines to understand your content, which may lead to poor search performance”, and suggests “banners that take up only a small fraction of the screen” instead. Legally required dialogs, such as age gates, are treated as an exception.
From Avoid intrusive interstitials and dialogs, Google Search Central.
Give phones their own popup: the same offer, a delay, scroll or page-view trigger, and a small card at the bottom rather than a cover over the page. In Builderify that is a second popup with its audience set to Mobile and its position set to bottom. The planner in section 04 writes both for you.
A good exit offer answers the most likely reason for leaving, in one line, and is easy to say no to. Guess the reason from the page they are on.
The price
Delivery cost
Not sure it fits
Not ready to buy
Needs a person
The templates named are Builderify’s; the offers are examples to adapt, not results from a test.
One ask, one field.
Someone halfway out of the door will type an email address. They will not fill in a form. Keep the headline readable in two seconds.
A plain way out.
Make the no-thanks link easy to find and plainly worded. Builderify’s Exit Offer template ships with “No thanks, I will pay full price”; it is editable, and a simple “No thanks” is kinder.
Cap the frequency.
Once per visit is plenty. An exit popup that returns on every page teaches people to close it without reading. In Builderify a closed popup stays closed for the rest of the visit, and anyone who submits it is not asked again in that browser for a year.
First-order codes only.
Make the discount a first-order code in your shop. Otherwise regulars learn to wave the cursor at the tab bar before every order.
Stay off the money pages.
Leave checkout, cart and thank-you pages out with a page rule. Someone entering a card number is not leaving.
Pick what the popup is for, what it offers, who should see it and how often. The planner writes the settings, using the names Builderify gives them, and a short checklist for launch day.
Runs in your browser. Page rules are examples; use your own paths.
Two popups, one offer: exit intent on desktop, a page-view trigger on phones.
Every popup tool that runs on any site works the same way: one script tag in the <head> of every page, then the popups are built in the tool’s dashboard. Here is where that tag goes on each platform, as their own help pages describe it.
Plain HTML site? Paste the tag just before </head> in your page template and upload it.
Classic theme: Appearance › Theme File Editor, open header.php and paste the tag just before </head>, ideally in a child theme. Block theme: there is no header.php; print the tag from a wp_head action in a child theme’s functions.php.
The catch WordPress warns that theme edits are lost when the theme updates, and the editor keeps no backup. If you would rather not touch PHP, a header-code plugin does the same job.
Online Store › Themes, then … › Edit code. Open layout/theme.liquid, paste the tag just before </head> and save.
The catch Shopify suggests duplicating the theme first so you can throw changes away.
Site settings › Custom code. Paste the tag into Head code, click Save changes, then publish.
The catch Site-wide custom code needs an active Site plan or a paid Core, Growth, Agency or Freelancer Workspace.
Settings › Custom Code › + Add Custom Code. Paste the tag, choose All pages and Head, and apply.
The catch The site has to be published with a connected domain first.
Pages › Custom Code › Code Injection (Website Tools on version 7.0). Paste the tag into Header and save.
The catch Code injection is on the Core, Plus, Advanced and some legacy plans, and checkout pages do not run it. Squarespace’s own pop-up has no exit intent; the guide to running multiple popups on Squarespace covers why.
Builderify’s popup builder has an Exit intent trigger, an Exit Offer template among its 13, and audience rules for device, new or returning visitors, referrer and page. Signups go to a lead list you choose.
| Question | What the exit-intent trigger does |
|---|---|
| What sets it off | The cursor leaving the page through the top edge of the window |
| Sensitivity | Fixed. There is no threshold to tune: the top edge is the line |
| Sides, bottom, keyboard | Ignored |
| Phones and touch tablets | Never fires: no cursor. Use Delay, Scroll, Page views or your own link |
| How often per page | At most once per page load |
| Another popup open | It waits its turn and opens when that one is closed |
| After they close it | Stays closed for the rest of the visit in that tab |
| After they sign up | Not shown again in that browser for a year |
| Who sees it | Mobile, desktop or all; new or returning; a referrer; include or exclude page rules |
Read from Builderify’s widget code on 3 October 2026.
Every account gets 250 free credits a month. Past that, one-time packs start at $9 and never expire, with no monthly fee. The full rate card is on the pricing page.
A popup that opens when a visitor looks about to leave. On a desktop the browser reports the cursor leaving the page, and if it left through the top edge, towards the tabs, address bar or back button, the popup opens before the click lands. Leaving through the sides or closing the tab with the keyboard does not count.
Not truly, because phones have no cursor to watch. Tools that offer mobile exit intent guess from a fast scroll up, the tab being hidden or the back button, and intercepting the back button is now against Google's spam policies. Builderify's exit-intent trigger does not fire on phones, so give phone visitors a separate popup on a delay, scroll depth or page-view trigger.
Paste one script tag into the head of your site, then build the popup and choose the Exit intent trigger. On Shopify that is Online Store, Themes, Edit code, layout/theme.liquid; on Webflow, Site settings, Custom code; on Wix, Settings, Custom Code; on Squarespace, Pages, Custom Code, Code Injection. On a classic WordPress theme it goes in header.php, ideally in a child theme.
Once per visit is plenty. In Builderify a popup opens at most once per page load, a closed popup stays closed for the rest of the visit in that tab, and someone who signs up is not asked again in that browser for a year. Keep it off checkout, cart and thank-you pages with a page rule.
Google says intrusive dialogs that cover content may lead to poor search performance, and suggests banners that take up a small fraction of the screen. Exit intent only fires with a mouse, so it mostly affects desktop visitors. On phones, use a small card at the bottom of the screen rather than a full-screen cover.
Read on 3 October 2026.
More leads from the traffic you already have, and follow-up that sends itself. Free to start. No card, no monthly fee.