How to add a popup to Ghost
To add a popup to Ghost, paste Popupsmart's embed code into Settings → Advanced → Code injection → Site footer and click Save. Ghost prints that code on every post and page, so you build and publish each popup in Popupsmart, with no theme edit and no Ghost integration to set up.
Ghost's own Portal handles member signups; Popupsmart adds popups that open on scroll, exit intent or a page rule.
Setup at a glance
- Runs on
- Ghost CMS
- Where the code goes
Settings → Advanced → Code injection → Site footer- Add-on
- No integration needed
Before you start
You need three things, and a developer isn't one of them:
- A Ghost staff account that can open Settings, such as the Owner or an Administrator.
- A free Popupsmart account. The free plan covers one website and one live popup, so you can finish this guide without paying.
- The address your readers use for the site, which Popupsmart verifies after the install.
How to add a popup to Ghost
A Ghost popup from Popupsmart needs one embed code in Ghost's site-wide code injection, added once. After that you build, change and publish popups in Popupsmart without opening Ghost Admin again.
Step 1: Create your Popupsmart account
Create your free Popupsmart account, or sign in if you already have one.

Step 2: Copy your embed code
In the dashboard, click Embed Code.

Your embed code opens in a window; copy it to your clipboard. The code is one line, <script src="https://cdn.popupsmart.com/bundle.js" data-id="…" async defer></script>, and the data-id belongs to your account.

Step 3: Open code injection in Ghost Admin
In Ghost Admin, click the Settings icon (the gear) at the bottom left.
![]()
Under Advanced, open Code injection.

Step 4: Paste the code into the site footer
Paste the embed code into Site footer and click Save. According to Ghost's code injection tutorial, Site footer code is injected before the closing </body> tag, and site-wide code injection appears on every page, posts and pages alike.

Step 5: Add and verify your website
Back in Popupsmart, hover over the profile icon at the bottom left and click Websites.

Click + New Website.

Enter your site's address in the Add a new website box and click Save.

If the site shows as Unverified, click Unverified, then Verify website, and go back to the dashboard and click Refresh. The guide to verifying your website covers the other cases.
Step 6: Create your popup
On the dashboard, click New Campaign, name it, choose your Ghost site and pick a template.

Change its copy, colours and form fields to match your site, then click Save.

Step 7: Publish and check the popup on your site
Click Publish. Then open your site in a private window and load a post. The popup appears when its trigger fires.

Does Ghost have a built-in popup?
Yes, for member signups. Ghost's Portal opens a signup and account window over your site: according to Ghost's Portal guide, it "handles the full membership experience for your subscribers" on any Ghost theme, and you customize it under Settings → Membership → Signup portal. Portal opens from the Portal button or from a link to #/portal; the guide doesn't describe opening it on a timer, a scroll or exit intent. Ghost also has embeddable signup forms, made under Settings → Growth → Signup forms, which sit inside a post, a page or another website.
| Ghost Portal | Popupsmart | |
|---|---|---|
| What it is | Ghost's signup and account window for members | A popup builder with templates |
| How it opens | The Portal button, or a link to #/portal |
Exit intent, scroll depth or time on page |
| Which pages | Not documented | URL and device rules on each campaign |
| Where signups go | Ghost members of your publication | The help center lists 19 destinations, including Mailchimp and MailerLite; Ghost isn't one of them |
| Paid tiers | Shown in the signup form, with their prices | Not covered: Popupsmart collects leads for your email tool |
| Price | Part of every Ghost site | Free plan: one website, one live popup, 5,000 pageviews a month; paid plans from $39 a month |
Portal is the right tool for member signups and paid subscriptions: new members join Ghost's own list and receive your newsletter from Ghost. Popupsmart earns its install for the jobs around it: a popup that opens on scroll, exit intent or a page rule, a reader survey, an announcement, or signups for an email tool other than Ghost's newsletter. My advice on a Ghost site is to let Portal own member signups and give Popupsmart the other jobs, so a reader never sees two signup windows for the same newsletter.
How do you show a popup only on some Ghost pages?
Leave the embed code in the site footer and choose the pages in Popupsmart. The code only loads Popupsmart; which pages show a popup is a targeting rule on each campaign, such as "the URL contains /tag/" or "the visitor has scrolled half the post". Ghost also has code injection on each post, in the post settings, but code placed there loads on that one post only, and moving a popup means editing posts again.
Pages are half of the rule; timing is the other half. In Popupsmart's 2026 benchmark, popups that wait before appearing convert 0.83% against 0.61% for popups shown the instant the page loads (median campaign), a lean rather than a proven gap, and exit intent shows no statistically reliable advantage. When a popup fires is worth deciding on purpose, and on a post it decides whether a signup interrupts the first paragraph or waits until the reader has read enough to care.
Where do Ghost popup leads go?
Ghost popup leads from Popupsmart go to the Leads page in your Popupsmart dashboard, where you can export them, and to the email tool you connect in the campaign's Integration section. Ghost isn't one of the 19 destinations the help center lists, so a Popupsmart signup doesn't become a Ghost member on its own. If your newsletter goes out from Ghost, collect that signup with Portal; if it goes out from another tool, connect that tool.
The Mailchimp popup guide and the MailerLite popup guide walk through a connection; a webhook, Zapier or Make covers a tool that isn't on the list.
Popup ideas for a Ghost site
Ghost sites are built around posts and readers, so start there:
- Newsletter signups for an email tool on posts: the email popup guide.
- Reader surveys to learn what to write next: the survey popup recipe.
- A last offer for readers about to leave: the exit-intent popup recipe.
- A launch or event, with a countdown and a signup: the countdown popup recipe.
Does a popup slow down a Ghost site?
A Popupsmart popup doesn't hold up your Ghost pages: the embed code loads asynchronously (async defer), so the browser finishes building your page before it fetches Popupsmart. Nothing changes in your theme: code injection adds one script tag to the site footer, and you can remove it the same way.
Popup not showing on Ghost? Check these
- The theme doesn't print code injection. Ghost adds code injection through the
{{ghost_foot}}helper in the theme'sdefault.hbs. Ghost's own themes include it; a custom theme that leaves it out drops the embed code. - The code is in one post's code injection. Then only that post loads Popupsmart. Move it to Settings → Advanced → Code injection → Site footer.
- The website isn't verified. A campaign runs only on a verified website; see Step 5.
- The address doesn't match. If your Ghost(Pro) site has a custom domain, add that domain in Popupsmart, not the ghost.io address.
- A Content Security Policy blocks the script. If your server sends a CSP header, add Popupsmart's domains, starting with
cdn.popupsmart.com. - The trigger hasn't fired yet. An exit-intent or scroll trigger waits for the reader to leave or scroll; test in a private window and behave like a reader.
Still stuck? Contact Popupsmart support with your site's address and the campaign name.
Ghost popup FAQ
Is there a free way to add a popup to Ghost?
Yes. Popupsmart's free plan is permanent, not a trial: one website, one live popup and 5,000 pageviews a month, with Popupsmart branding. It is enough to install the code and run your first popup on a Ghost site.
The Popupsmart pricing page compares it with the paid plans.
Can Ghost Portal open automatically?
Not according to Ghost's Portal guide, which describes two ways to open it: the Portal button and links to #/portal on your site. To show a signup on a timer, after a scroll or on exit intent, use a popup tool such as Popupsmart and keep Portal for member accounts.
Do I need a Ghost integration or a theme edit for popups?
No. Code injection adds the embed code to every page without touching your theme files, and there is nothing to set up under Settings → Integrations.
Will the popup work with any Ghost theme?
Yes, as long as the theme includes Ghost's ghost_foot helper, which prints code injection on every page. Ghost's own themes include it; a custom theme that leaves it out drops the embed code.
Do Popupsmart popups work on mobile?
Yes. The same embed code loads on phones and desktops. The Popupsmart editor has a desktop and a mobile view, and device targeting lets you choose which devices a campaign shows on.

