Why is my Klaviyo popup signup form stuck on loading when submitting?
If your Klaviyo signup form isn't appearing, submitting, or working as expected, you're not alone. This is one of the most common issues brands face when setting up their email and SMS list growth – and one of the most frequent questions posted in the Community forum!
Which is why I’ve put together a consolidated summary of all the questions and issues with the best answers and solutions that have come into the Community forum. So the good news if you are reading this is that your issue is not just a you problem and there is likely a fix below. If you’re new to setting up forms, start with the Getting started with sign-up forms guide first!
Quick diagnosis: identify your issue
Before diving into fixes, find the symptom that best matches what you’re seeing:
-
Form shows but won’t submit
The form appears, but clicking “Subscribe” does nothing or shows a loading spinner indefinitely. -
Form doesn’t appear at all
No popup, flyout, or embedded form is visible on your site. -
Form only visible in incognito/private mode
The form appears in an incognito/private window but not in your normal browser session. -
Form appears but looks broken
The form is cut off, misaligned, or styled incorrectly compared to what you see in the editor. -
Form submits but subscribers aren’t added to your list
People can submit the form, but they don’t show up in the connected list in Klaviyo.
For general troubleshooting steps, also see:
Popup stuck on loading or won’t submit
If your form shows a loading spinner but never completes, it’s usually due to JavaScript conflicts, theme issues, or bot‑protection behavior.
Step‑by‑step:
-
Check for JavaScript conflicts
- Temporarily disable or remove other onsite apps and scripts (especially other popup tools, chat widgets, and page builders).
- Refresh the page and test the form again. If it starts working, re‑enable apps one at a time to find the conflict.
-
Verify onsite tracking / Klaviyo script is running
Klaviyo sign‑up forms depend on onsite tracking being enabled. The quickest way to verify this is to confirm that sign‑up form functionality is enabled for your integration:
Platform‑specific notes:
-
Shopify
- In Klaviyo: Integrations → Shopify.
- Ensure the integration is “Connected.”
- In the Onsite tracking section, check “Track behavioral events” and click “Turn on” to enable the Klaviyo app embed in your Shopify theme.
- In Shopify’s theme editor → App embeds tab, make sure the Klaviyo app embed is toggled on and saved.
Details:
-
BigCommerce, Wix, Square, PrestaShop
- In Klaviyo → Integrations → [Your Platform], make sure “Automatically add Klaviyo onsite JavaScript” is checked and save.
-
Custom sites / other platforms
- Manually install Klaviyo.js according to the developer guide linked from the “verify sign‑up forms are enabled” article.
You can also open your browser dev tools (right‑click → Inspect → Console) and check for errors referencing Klaviyo or klaviyo.js.
-
-
Confirm the Shopify integration is connected (for Shopify stores)
- In Klaviyo → Integrations → Shopify, confirm the status is “Connected.”
- If you recently switched Shopify themes, re‑enable the Klaviyo app embed for the new theme (embeds are per‑theme).
-
Understand bot protection / CAPTCHA behavior
Klaviyo automatically enables bot prevention, including CAPTCHA, on sign‑up forms that collect email addresses, phone numbers, or feature coupon codes.
If Klaviyo detects suspicious behavior or prior bot activity from a visitor’s IP, it may:- Prompt the user with a CAPTCHA challenge, or
- In some high‑risk cases (e.g., list bombing), block submissions entirely.
This can surface as “stuck” submissions from specific IPs while the form works for others.
For more on how this works, see:
-
Test in an incognito/private window and another browser
- If the form submits correctly in incognito but not in your regular browser:
- Clear cache and cookies for your site, or
- Test in a different browser.
- This can confirm whether a stale cookie or local extension is causing the problem.
- If the form submits correctly in incognito but not in your regular browser:
-
Confirm timing is not set to “Only on a custom trigger”
- In Klaviyo: Sign‑up Forms → [Your Form] → Targeting & behavior → Display → Timing.
- If “Only on a custom trigger” is selected, the form will never appear on its own; it only shows when your site’s JavaScript explicitly opens it.
- Switch to “Immediately” or “Based on rules” unless you have a custom JS trigger in place.
Details: Understanding targeting and behavior settings for sign‑up forms
Embedded form not showing on Shopify
If an embedded (inline) Klaviyo form isn’t appearing on Shopify, it usually points to embed code placement, theme conflicts, or display/targeting.
Use this checklist:
-
Verify embed code placement
- In Klaviyo: Sign‑up Forms → [Your Form] → Publish → Copy embed code.
- In Shopify:
- Online Store → Themes → Customize.
- Add a Custom Liquid (or HTML) block where you want the form.
- Paste the embed code exactly as provided and save.
Full instructions:
-
Confirm sign‑up form functionality / onsite tracking is enabled
- For Shopify, ensure the Klaviyo app embed is enabled (see “How to enable onsite tracking for Shopify”).
- For other platforms, confirm onsite tracking or “Automatically add Klaviyo onsite JavaScript” is turned on as described in the “verify sign‑up forms are enabled” doc.
-
Review targeting & device settings
- In Klaviyo: Sign‑up Forms → [Form] → Targeting & behavior.
- Display → Devices: ensure the form is allowed on desktop/mobile based on your test device.
- Targeting → URLs: confirm the form is set to show on the URL you’re viewing and isn’t excluded there.
- In Klaviyo: Sign‑up Forms → [Form] → Targeting & behavior.
-
Inspect CSS and theme conflicts
- Use your browser’s Inspect tool where the form should appear and look for CSS like
display: noneorvisibility: hiddenon the Klaviyo form container. - Some themes’ native newsletter sections can conflict with embedded forms. Try:
- Removing or disabling the theme’s built‑in newsletter block, or
- Moving the Klaviyo embed to a simpler section or a test page.
- Use your browser’s Inspect tool where the form should appear and look for CSS like
-
Test on a minimal page
- Create a new Shopify page with minimal content, paste the embed code there, save, and visit that URL.
- If the form shows there, the issue is likely theme‑ or layout‑specific on the original page.
Special case: form only visible in incognito / some browsers
If the form appears in incognito or in one browser but not others, common causes are:
-
Ad blockers and privacy extensions
- Extensions like uBlock Origin or DuckDuckGo Privacy Essentials can block Klaviyo.js and prevent forms from loading.
- Temporarily disable ad blockers or privacy extensions and refresh the page.
- Whitelist your site / Klaviyo while testing.
-
Cookie consent / privacy tools
- Many consent banners block tracking scripts (including Klaviyo) until visitors accept cookies.
- Configure your consent tool so that once a visitor accepts, Klaviyo scripts are allowed to load.
-
Browser privacy settings
- Enhanced tracking protection or strict privacy modes can interfere with third‑party scripts.
- Testing across multiple browsers and networks helps isolate whether local browser settings are responsible.
For more context:
Popup not closing or blocking the page
If your popup won’t close or blocks page interaction, it’s usually a combination of z‑index/overlay behavior and dismissal settings.
-
Check close button and dismissal settings
- In the form editor:
- Ensure the close (“X”) icon is enabled and visible on your popup/flyout/full‑page form.
- Under Targeting & behavior → Display, you can optionally enable “Click outside form to close” on desktop and/or mobile for popup forms.
- In the form editor:
-
Look for z‑index conflicts
- Sticky headers, chat widgets, or other overlays can sit above or below the popup and prevent clicks from registering correctly.
- You can override the popup’s z‑index via custom CSS in the form to ensure:
- The popup panel sits above the overlay.
- The overlay sits above the main page content.
-
Test on mobile vs desktop
- Close/tap behavior can differ by device, and mobile‑only CSS might accidentally hide the close button or mis‑place the overlay.
- Test on an actual phone to confirm the close icon is visible and tappable.
Form targeting and display settings
If your form appears inconsistently or not at all for certain visitors, Targeting & behavior is often the culprit.
Open your form and go to Targeting & behavior:
-
Display → Timing
- Options include:
- “Immediately”
- “Based on rules” (exit intent, time delay, scroll depth, number of pages viewed)
- If you choose multiple rules (e.g., “When visitor is exiting the page” + “After scrolling 60%”), all must be satisfied before the form appears.
- For testing, temporarily set to “Immediately” to confirm the form can display.
Details:
- Options include:
-
Display → Frequency
- Key settings:
- “After a visitor closes this form, show again after __ day(s)”
- “Don’t show again if a form was submitted or a URL button was clicked”
- These rely on cookies. If:
- The delay is long, or
- “Don’t show again” is checked,
returning visitors (including you) might not see the form again until cookies are cleared or the delay passes.
- Key settings:
-
Display → Devices
- Ensure the form is allowed on your current device: Desktop only, Mobile only, or Both.
-
Targeting → Visitors, URLs, UTM, location, cart
Visitor targeting options include:
- “Don’t show to existing Klaviyo profiles”
- “Show to all visitors”
- “Show to any existing profile”
- “Show to email subscribers only”
- “Show to SMS subscribers only”
- “Show to specific profiles in a list or segment”
URL and UTM targeting let you control exactly which URLs or UTM‑tagged sessions see the form.
Location and cart‑based targeting (Shopify only) can further narrow the audience.For Shopify stores in the EU/EEA/UK/Switzerland, Customer Privacy settings may prevent tracking and some targeting from applying until a visitor consents; this can affect who sees forms.
-
A/B test considerations
- If you’re A/B testing forms, some visitors may see a different variant or no form (if you’ve configured a holdout/control group).
-
Clear cookies or use incognito for testing
- Because display frequency and many targeting rules are cookie‑based, testing in a fresh incognito/private window is often the fastest way to view the form as a first‑time visitor.
Form submits but subscribers aren’t added to the list
If the form appears and seems to submit, but new subscribers don’t show up where you expect:
-
Confirm list assignment on the form
- In the form editor, click the submit button and check:
- Action: “Submit form”
- “List to Submit” is set to the correct list.
- In the form editor, click the submit button and check:
-
Check list double opt‑in settings
- Go to Audience → Lists & Segments → [Your List] → Settings → Consent.
- If Double opt‑in is enabled:
- A confirmation message (email/SMS) is sent after form submission.
- Contacts are only added to the list once they confirm via that message.
- If they don’t confirm, they won’t appear as list members, though a basic profile may still exist in Audience → Profiles if they submitted a Klaviyo form.
Full details:
-
Verify confirmation messages are sending and being received
- Check your list’s opt‑in related pages and confirmation email content, then test with a real address to make sure the confirmation arrives and can be clicked.
-
Shopify’s native forms vs Klaviyo forms
If you’re using Shopify’s built‑in sign‑up forms (not a Klaviyo form):
- In Klaviyo → Integrations → Shopify, confirm “Sync your Shopify email subscribers to Klaviyo” is enabled and mapped to the right list.
- Getting started with Shopify
-
Check profile creation
- Go to Audience → Profiles and search for the email used in testing:
- If a profile exists but is not on the list, the form submit likely worked; list subscription (often double opt‑in) is the blocker.
- If no profile exists, the form submit itself may have failed or is pointing to a different list/account.
- Go to Audience → Profiles and search for the email used in testing:
-
Review suppression status
- In Klaviyo → Audience → Profiles → Suppressed, check whether the address is suppressed for email.
- Suppressed profiles:
- Can exist and can even appear in lists or segments.
- Cannot receive marketing emails and don’t count as active email profiles for billing.
More on suppression:
Coupon code errors on form submission
If your form promises a discount but the code doesn’t appear or doesn’t work, the issue is usually with coupon setup, not the form itself.
For full details, see:
- How to add coupon codes to sign‑up forms
- Getting started with coupon codes in Klaviyo
- How to create unique coupon codes for Shopify
Checklist:
-
Confirm the coupon exists and is active in your ecommerce platform
- For Shopify:
- Go to Shopify → Discounts and confirm the code or price rule is present, active, and correctly configured (amount/percentage, minimums, dates, etc.).
- For Shopify:
-
Check the coupon block configuration in your form
- In Klaviyo: Sign‑up Forms → [Form] → Success step.
- Click the Coupon block and choose:
- Static Coupon if using a single shared code created in your store, or
- Unique Coupon if using:
- Shopify Coupon (generated via Coupons tab), or
- Uploaded Coupon (list of unique codes you’ve uploaded).
-
Check unique coupon availability
- For Shopify unique coupons in forms: Klaviyo generates batches of codes and replenishes them automatically based on your expiry settings; if you run out, the Fallback static coupon will be used instead.
- For Uploaded coupons: ensure you’ve uploaded enough codes and they haven’t expired.
-
Test end‑to‑end
- Submit the form yourself and make sure:
- A coupon code appears in the Success step.
- The code can be applied at checkout and follows the rules you set.
- Submit the form yourself and make sure:
-
If the coupon is delivered by email instead of in the form
- Ensure your welcome flow is:
- Triggered by the same list the form submits to, and
- Live (not draft).
- Insert the coupon using the Coupons personalization menu or a Coupon block in the email template.
- Ensure your welcome flow is:
Still not resolved?
Collect these details before reaching out:
- Form type, platform, theme name, and when the issue started
- Whether it affects all pages/devices/browsers or only specific ones
- Console errors (right-click → Inspect → Console) referencing Klaviyo
Post in the Klaviyo Community or contact Support via the Help Center with screenshots and a summary of what you've already tried.

