Troubleshooting
Klaviyo popup not showing on Shopify — full checklist
Why Klaviyo popups stop appearing — JS load order, targeting rules, cookies and sessions, theme conflicts, ad-blockers, and mobile breakpoints — with the diagnostic step for each.
title: "Klaviyo popup not showing on Shopify — full checklist" description: "Why Klaviyo popups stop appearing — JS load order, targeting rules, cookies and sessions, theme conflicts, ad-blockers, and mobile breakpoints — with the diagnostic step for each." slug: "klaviyo-popup-not-showing" publishedAt: "2026-05-19" updatedAt: "2026-05-19" painCluster: 7 intent: 8 tier: 2 faq:
- q: "Why isn't my Klaviyo popup showing on my Shopify store?" a: "The most common cause is the klaviyo.js snippet isn't loading on the page, usually because a Shopify theme update removed it or because another app is interfering with script load order. Check the page source for a klaviyo.js reference, then check the browser console for JavaScript errors that might be blocking the form."
- q: "How do I know if klaviyo.js is loaded on my Shopify store?" a: "Open the storefront. Right-click and view source. Search for 'klaviyo' — you should see a script tag pulling from static.klaviyo.com. If it's missing, the integration isn't injecting the snippet. Re-enable Onsite Tracking in Settings → Integrations → Shopify."
- q: "Why does my Klaviyo popup show on desktop but not mobile?" a: "Klaviyo forms have separate targeting rules and display behaviors for desktop and mobile. Check the form's display rules — there's a device-targeting toggle. Also check the mobile breakpoint behavior: if the form is set to a fixed pixel width that's larger than the viewport, the form is rendering but invisible off-screen."
- q: "Will an ad blocker block a Klaviyo popup?" a: "Yes — some aggressive ad blockers (uBlock Origin with all lists enabled, DuckDuckGo Privacy Essentials, some privacy-focused browsers) block the klaviyo.js domain entirely. There's no clean workaround. Assume a small percentage of your traffic will never see the popup."
- q: "How long should I wait between showing a popup to the same visitor?" a: "Klaviyo's default cookie duration is 30 days — a visitor who has seen the form (whether they signed up or dismissed it) won't see it again for 30 days. You can change this in the form's behavior settings, but shortening it aggressively will annoy returning visitors and hurt overall conversion."
- q: "Why is my A/B test showing zero impressions on the B variant?" a: "Either the variant isn't published, the traffic split isn't configured correctly, or the variant has a targeting rule the original doesn't. Check the test's variant analytics — Klaviyo shows impressions per variant. If B shows zero, click into the variant settings and verify it's published and targeted at the same audience as A."
- q: "Will Klaviyo tell me if my popup stops showing?" a: "No. Klaviyo's UI shows the form as Live and reports recent submissions, but there's no alert if impressions drop from a thousand a day to zero. Detecting that drop is exactly the kind of always-on monitoring that catches form failures before they cost a week of list growth." related:
- klaviyo-list-growth-stopped
- klaviyo-double-opt-in-not-working
- klaviyo-shopify-integration-not-syncing
A Klaviyo popup that has stopped showing is one of the most expensive failures in the entire product — a single popup typically drives a meaningful share of new-subscriber acquisition, and when it silently breaks, list growth flatlines. The form itself looks live. The targeting rules haven't changed. But impressions go to zero, and the only way to notice is to watch the list-growth chart carefully or check the form's analytics manually.
This page walks through the failure modes in rough order of frequency. Most of them come down to the same root cause: klaviyo.js isn't loading on the page where the form should appear. The downstream causes — theme regressions, ad blockers, conflicting apps, ordering issues — all produce the same symptom.
Quick diagnosis checklist
- Open your storefront. View source. Search for "klaviyo". You should see a script tag pulling from static.klaviyo.com. If it's missing, the snippet isn't loading and no form can appear.
- Open the browser console (F12 → Console). Look for red errors. Errors mentioning klaviyo, _klOnsite, or learnq usually indicate a load-order or conflict issue.
- Open the form's analytics in Klaviyo. Forms → [form name] → Analytics. Check yesterday's impression count vs the previous week. A drop to zero is a hard signal that the form isn't being displayed at all.
- Disable ad blockers and incognito-test. Test in a clean incognito session with no extensions. If the form appears here but not in your regular browser, an extension or a previous-visit cookie is blocking it.
- Check the form's targeting rules. Confirm the rules match the page you're testing on. A form set to "only show on /collections/*" won't show on the homepage.
- Test on mobile. Both real mobile (your phone) and Chrome's device toolbar. Mobile-specific display issues are common.
- Confirm the form is published, not in draft. Forms → [form name] → status should read "Live."
1. klaviyo.js isn't loading on the page
If the snippet isn't on the page, no form can render. This is the most common failure and the easiest to verify.
How to verify. Open your storefront. Right-click → View Page Source (not Inspect — actual source). Use ctrl-F to search for "klaviyo." You should find at least one script tag pulling from static.klaviyo.com. If you find nothing, the snippet isn't being injected.
How to fix it. Settings → Integrations → Shopify in Klaviyo. Confirm Onsite Tracking is enabled. If it's already enabled, toggle it off and on — this forces a re-injection through Shopify's script-tag API. Then reload the storefront and re-check the source.
A wrinkle on custom themes. If your theme is heavily customized or runs on Shopify's headless storefront, the script-tag injection may not work. In that case, add the snippet manually to your theme's layout file (theme.liquid for Shopify standard themes). Klaviyo's integration page shows the exact tag.
2. Another app or script is breaking JavaScript load order
This is the second-most-common failure and the hardest to diagnose. Klaviyo.js loads fine — and then another script throws an error that prevents Klaviyo's form-render code from executing.
How to verify. Open the browser console (F12 → Console). Reload the page. Watch for red errors. Errors that mention undefined variables, "Cannot read property of undefined," or specific app names (Shogun, ReConvert, Yotpo, Judge.me) often indicate a conflict.
How to fix it. This is iterative. The fastest path is to disable storefront apps one at a time until the popup reappears. Start with apps that inject their own scripts: page builders, review widgets, chat tools, A/B testing platforms. Once you identify the conflicting app, contact its support — sometimes they have a "load after Klaviyo" setting.
Why this gets worse over time. Each app you install increases the surface area for conflicts. A store with 12 storefront apps will have brittle JavaScript regardless of which apps they are. Periodic app audits — removing apps you no longer use — reduce the risk.
3. An ad blocker is blocking the script
Some privacy-focused browsers and ad blockers block the klaviyo.js domain entirely. There's no clean fix for this — the form simply won't appear for those users.
How to verify. Test in a clean incognito session with no extensions. If the form appears here but doesn't appear in your normal browser, an extension is blocking it. Common culprits: uBlock Origin with all default lists, DuckDuckGo Privacy Essentials, Brave's built-in shields on aggressive mode.
What to do. Accept the loss. Estimates suggest 5-15% of ecommerce traffic uses some form of script-blocking technology. That traffic will not see your popup regardless of what you do. Your job is to ensure the other 85-95% see it correctly.
One thing not to do. Don't proxy klaviyo.js through your own domain to evade blockers. Klaviyo's terms prohibit this, and the blockers will catch up to it within months anyway.
4. The form's targeting rules don't match where you're testing
Forms have targeting rules that control which pages they appear on. If the rules don't include the page you're viewing, the form won't show — and the form is working as designed.
How to verify. Open the form in Klaviyo. Click "Targeting & behavior." Read every rule. Each rule restricts where and to whom the form appears. Common restrictions: URL patterns, device type, country, subscriber status (don't show to existing subscribers).
Common mistakes. A "don't show to existing subscribers" rule that excludes you because you're logged in as a subscriber on the test site. A URL pattern that excludes your test page. A country rule that excludes whatever VPN you happen to be on.
How to test cleanly. Open an incognito browser. Visit a public page (homepage, collection page) that matches your form's targeting. If the form still doesn't appear, the targeting isn't the issue.
5. Cookies or session storage are suppressing the form
Klaviyo's form behavior includes a cookie that suppresses the form for users who've seen it recently. Default suppression: 30 days from last impression. If you've seen the form, dismissed it, and now wonder why it's not showing again, the cookie is doing its job.
How to verify. Clear cookies for your storefront (or open a fresh incognito window). Reload. If the form now appears, cookie suppression was the cause of your apparent "not showing" issue.
How to adjust. Form behavior → "Display frequency." You can shorten the suppression to days or hours instead of 30 days. Be careful: shortening too aggressively makes the form feel spammy to returning visitors and can hurt overall conversion.
The trap. Operators often test the form, see it once, sign up or dismiss it, and then assume it's broken when they don't see it again. Always test in incognito.
6. The mobile breakpoint isn't rendering the form correctly
Klaviyo forms have separate desktop and mobile layouts. If the mobile layout has display issues — fixed pixel widths exceeding viewport, missing breakpoint handling, conflicting CSS from the theme — the form may render off-screen, with zero opacity, or behind another element.
How to verify. Test the form on a real mobile device. Then test in Chrome's device toolbar (F12 → device icon → iPhone preset). Compare. If the form appears in the toolbar but not on a real device, the issue is real-device-specific (often Safari-specific). If it fails in both, the form's mobile layout has a structural issue.
How to fix. Open the form's design view. Switch to the mobile preview. Check that text fits, that the form's container is responsive, that no element overflows. Klaviyo's mobile layout editor handles most cases but isn't bulletproof on custom designs.
How to verify the fix
After any change:
- Open an incognito browser. Visit your storefront on the page where the form should appear.
- Wait for the form's trigger condition. If it's a 5-second delay, wait 5 seconds. If it's an exit-intent trigger, move the mouse off the page.
- Confirm the form appears. Visually, not just in the console.
- Submit a test signup. Use an email you control. Verify the submission appears in Klaviyo's form analytics within a few minutes.
- Repeat on mobile. Real device, not just the device toolbar.
If all five steps pass, the form is working. Schedule a follow-up check in 24 hours that impression volume matches historical norms.
Why this keeps happening
The pattern across every failure mode above is the same: something outside Klaviyo (a theme update, a new app, a browser extension, a script ordering change) changed the page environment, and the form silently stopped rendering. None of those changes show up as an alert in Klaviyo's UI. The form's status stays Live; the impression count just goes to zero.
That's the gap monitoring closes. We watch the impression count for every active form and surface a finding when it drops sharply. A form that did 800 impressions yesterday and 12 today is broken, regardless of what the form editor says. The faster you know, the faster you fix it — and the less list growth you lose.
Frequently asked questions
- Why isn't my Klaviyo popup showing on my Shopify store?
- The most common cause is the klaviyo.js snippet isn't loading on the page, usually because a Shopify theme update removed it or because another app is interfering with script load order. Check the page source for a klaviyo.js reference, then check the browser console for JavaScript errors that might be blocking the form.
- How do I know if klaviyo.js is loaded on my Shopify store?
- Open the storefront. Right-click and view source. Search for 'klaviyo' — you should see a script tag pulling from static.klaviyo.com. If it's missing, the integration isn't injecting the snippet. Re-enable Onsite Tracking in Settings → Integrations → Shopify.
- Why does my Klaviyo popup show on desktop but not mobile?
- Klaviyo forms have separate targeting rules and display behaviors for desktop and mobile. Check the form's display rules — there's a device-targeting toggle. Also check the mobile breakpoint behavior: if the form is set to a fixed pixel width that's larger than the viewport, the form is rendering but invisible off-screen.
- Will an ad blocker block a Klaviyo popup?
- Yes — some aggressive ad blockers (uBlock Origin with all lists enabled, DuckDuckGo Privacy Essentials, some privacy-focused browsers) block the klaviyo.js domain entirely. There's no clean workaround. Assume a small percentage of your traffic will never see the popup.
- How long should I wait between showing a popup to the same visitor?
- Klaviyo's default cookie duration is 30 days — a visitor who has seen the form (whether they signed up or dismissed it) won't see it again for 30 days. You can change this in the form's behavior settings, but shortening it aggressively will annoy returning visitors and hurt overall conversion.
- Why is my A/B test showing zero impressions on the B variant?
- Either the variant isn't published, the traffic split isn't configured correctly, or the variant has a targeting rule the original doesn't. Check the test's variant analytics — Klaviyo shows impressions per variant. If B shows zero, click into the variant settings and verify it's published and targeted at the same audience as A.
- Will Klaviyo tell me if my popup stops showing?
- No. Klaviyo's UI shows the form as Live and reports recent submissions, but there's no alert if impressions drop from a thousand a day to zero. Detecting that drop is exactly the kind of always-on monitoring that catches form failures before they cost a week of list growth.