Troubleshooting
Diagnose and fix the most common Split Test Pro issues — variants not showing, conversions not tracked, results not updating, and platform-specific gotchas for both HTML and Shopify.
When Split Test Pro doesn’t behave the way you expect, the cause is almost always one of a small number of usual suspects. This guide walks through the diagnostic flow for the most common problems.
Variant Doesn’t Apply
The single most reported issue. Work through this checklist in order.
1. Confirm the script is loading
Open your site in DevTools → Network tab → reload → filter for experiment.js.
- You see a 200 response → script is loading. Skip to step 2.
- You see a 404 or 403 → the API key is wrong. For HTML, recopy the snippet from Settings → Script & API. For Shopify, the script lives in the Theme App Extension — see step 3.
- You don’t see a request at all → the script tag isn’t in the page’s HTML. For HTML, verify the snippet is pasted in
<head>of every page (or via your tag manager firing on All Pages). For Shopify, see step 3.
2. Confirm targeting matches the current page
The variant only activates if the current URL matches the experiment’s targeting rules.
- Open the experiment’s Targeting tab.
- Paste the URL you’re testing into the Preview URL field.
- The Preview URL banner should say Match. If it says No match, your targeting doesn’t match the URL. Adjust targeting or pick a different test URL.
See URL Targeting for the exact behavior of each operator.
3. (Shopify) Confirm App Embeds is enabled
The most common Shopify-specific cause:
- Online Store → Themes → Customize on your live theme.
- App embeds icon (puzzle-piece) in the left sidebar.
- Find Split Test Pro — toggle should be ON.
If you recently switched themes, the new theme may have started with App embeds OFF. See Shopify Theme App Extension.
4. Check device targeting
If the experiment has device targeting enabled, you need to be on a matching device class. A mobile-targeted experiment won’t activate on a desktop browser. Check the Targeting tab.
5. Check the assignment cookie
Open DevTools → Application (Chrome) or Storage (Firefox) → Cookies. Look for splittestpro-experiment.
- Cookie present, contains the right experiment ID → the visitor is bucketed but the variant CSS/JS isn’t applying. Skip to step 6.
- Cookie present, but contains a different variant ID → you’re in the control. Try a fresh incognito window to get re-bucketed.
- Cookie missing → assignment never happened. Check console for JS errors that may have interrupted the script.
6. Check for theme specificity issues
If the cookie is correct but the variant still doesn’t render visibly, theme styles are overriding your variant CSS. See Specificity Escalation in Selector Cookbook.
7. Check console for errors
DevTools → Console. Red errors that occurred before the script ran can interrupt initialization. Look especially for errors from theme scripts that load early in <head>.
Conversions Not Tracked
The variant applies fine, but the Results dashboard shows no conversions.
HTML: snippet missing on the conversion page
The snippet must be on the page where the conversion event fires (typically the thank-you / confirmation page). If the conversion happens on a different domain or a page where the snippet isn’t installed, no conversion is recorded.
Fix: install the snippet site-wide.
HTML: event key mismatch
The event you fire must match the goal’s event key exactly. trackConversion("Signup") won’t match a goal defined as signup. Case-sensitive, exact-string match.
Fix: open Settings → Conversion goals, copy the exact event key, paste it into your trackConversion call.
HTML: trackConversion not actually firing
Open DevTools → Network tab → filter for analytics. Trigger the conversion. You should see a POST to /api/html/experiment/analytics.
- No POST → your code isn’t reaching the
trackConversioncall. Add aconsole.logto verify the line executes. - POST returns 4xx → the payload is malformed or the API key is wrong. Check the response body for the error.
- POST returns 200 but Results still shows zero → see “Results not updating” below.
HTML: visitor in multiple experiments (known issue)
If the visitor is bucketed into 2+ concurrent experiments, only the first experiment’s conversion is recorded. See Custom Events for the workaround. Fix is in flight (see TASK-21).
Shopify: Web Pixel not connected
In your Shopify admin, go to Settings → Customer events. Split Test Pro should show Connected. If it doesn’t, uninstall and reinstall the app.
Shopify: customer privacy / consent
In regions where Shopify’s customer-privacy banner is active, visitors who decline analytics consent don’t get pixeled — and therefore don’t appear in any experiment results. This is expected behavior.
Results Not Updating
You’re sure data is flowing in, but the Results dashboard isn’t reflecting it.
Cache lag
Results are cached server-side and may take a few minutes to reflect new events. Click Refresh on the Results page to force a recompute. For very large datasets, refresh can take 1–2 minutes.
Stale browser state
Hard-refresh the page (Ctrl+Shift+R / Cmd+Shift+R) to bypass the browser cache. Sometimes the page itself is showing a cached older state.
Wrong workspace
If you have multiple workspaces, the dashboard is scoped to the currently-selected one. Confirm you’re in the workspace where the experiment lives.
Variant CSS Shows Briefly, Then Disappears
The variant flashes in then is replaced by the original styling. This means a theme script is reapplying styles after the variant CSS injects.
Two fixes:
- Use
!importantmore aggressively in the variant CSS. The theme’s late-applied styles are usually inline (style="...") — only!importantbeats those. - Switch to a JS variant that uses
MutationObserverto re-apply the change whenever the theme overwrites it.
See JavaScript Variants for the MutationObserver pattern.
Variant Causes Layout Shift
Variant CSS that changes element sizes can cause cumulative layout shift (CLS), where the page jumps as the variant applies. Mitigations:
- Pre-allocate space in the variant CSS (
min-height,padding). - Avoid changing display modes (
block↔flex↔grid) at runtime — those reflows are jarring. - For full-page redesigns, use a redirect variant instead of CSS — visitors arrive at the redesigned page directly with no shift.
Variant Works in Incognito but Not Normal Window
Cookies persist your variant assignment across visits. If you’re testing in your normal browser, you keep seeing the same variant. To verify, either:
- Open a fresh incognito window.
- Delete the
splittestpro-experimentcookie in DevTools and reload. - Use the preview cookie to force a specific variant — see Screenshots and Preview.
Single-Page App: Variant Works on Initial Load Only
Split Test Pro evaluates targeting on initial page load. SPA route changes via history.pushState don’t retrigger experiments. See Single-Page Apps for the workaround.
”Connected” Indicator Stays Gray on HTML
After installing the snippet on your site, the Connected indicator in Settings → Script & API should turn green within a minute of the first pageview from your registered domain.
If it stays gray:
- Confirm the snippet is on your public-facing domain (not just a staging URL).
- Confirm the API key in the snippet matches your workspace.
- Visit the site once, then wait up to a minute and refresh the Settings page.
- If still gray, check that the registered workspace domain matches your actual domain (Settings → Workspace).
Shopify: Experiment Worked Yesterday, Not Today
Most likely cause: you published a new theme, and the new theme has App Embeds OFF.
Re-enable App Embeds on the published theme — see step 3 above. This is the single most frequent regression report.
AI Review Returns Errors or Unhelpful Output
Two common scenarios:
- “Analysis temporarily unavailable. Try again in a few minutes.” → the underlying Claude API is rate-limited or temporarily down. Wait 5 minutes and retry.
- The review is generic or wrong → the experiment’s data is too thin (fewer than ~100 sessions per variant) for the AI to draw meaningful conclusions. Wait until more data accumulates and request a fresh review (the cache TTL is 6 hours).
Errors in Browser Console About SplitTestPro
If you see window.SplitTestPro is undefined in the console, the script isn’t loaded yet. Common causes:
- Script tag is at the bottom of the page (it should be in
<head>). - Tag manager fires the script on a later trigger than
All Pages. - A third-party blocker (ad blocker, privacy extension) is blocking the request.
Check the Network tab to confirm the script is actually loading.
When to Contact Support
If you’ve worked through this guide and the issue persists, contact support with:
- Your workspace ID (visible in Settings → Workspace).
- The experiment ID.
- The exact symptom (with a URL we can reproduce on if possible).
- Browser version and DevTools console output if you have them.
Most issues are resolvable with the workspace + experiment ID alone.
Next Steps
- Run through the FAQ for common questions: Frequently Asked Questions.
- Re-verify your install end-to-end: Installing on an HTML Site or Installing on Shopify.
- Confirm the variant editor has what it needs: Variant Types Overview.
Ready to start testing?
Install Split Test Pro and run your first experiment today.