To eliminate flicker: Use server-side testing (Statsig, LaunchDarkly) for true zero-flicker, or ExperimentHQ for client-side testing with minimal flicker. Avoid tools with 100KB+ scripts—they cause flicker regardless of anti-flicker snippets. Anti-flicker snippets are band-aids that hide the page (hurting UX) rather than solving the root cause.
Who this is for
- Teams frustrated with flickering A/B tests
- Performance-focused developers
- Sites where page speed affects conversions
Who this is NOT for
- Sites where minor flicker is acceptable
- Teams without developer resources for server-side implementation
What is A/B Test Flicker?
Flicker (also called "flash of original content" or FOOC) is when users briefly see the original page before the variant loads. It looks like this:
Original Page
Loads first
Flash!
100-500ms
Variant
Finally shows
Why it matters: Flicker biases test results (users see both versions), damages trust, and hurts conversions.
What Causes Flicker?
Large script size
Heavy scripts take longer to load, increasing the window for flicker
Async loading
Async scripts load after the page renders, causing visible changes
DOM manipulation
Client-side changes to visible elements cause repaints
Network latency
Slow CDN or server response delays variant assignment
Flicker Solutions Compared
| Solution | Effectiveness | How it Works |
|---|---|---|
| Server-side rendering | Best | Render the correct variant on the server before sending HTML |
| Synchronous loading | Good | Load script in <head> before page renders (blocks rendering) |
| Anti-flicker snippet | OK | Hide page until variant loads (increases perceived load time) |
| CSS preloading | OK | Preload variant styles to reduce repaint time |
Tool Comparison
| Tool | Approach | Flicker-Free | Script Size | Verdict |
|---|---|---|---|---|
| ExperimentHQ | Optimized client-side | <5KB | Best Overall | |
| Statsig | Server-side SDK | N/A | Best server-side | |
| LaunchDarkly | Server-side SDK | N/A | Best feature flags | |
| VWO | Anti-flicker snippet | ~150KB | Has flicker workaround | |
| Optimizely | Anti-flicker snippet | ~200KB | Has flicker workaround |
Our Recommendation
For true zero-flicker: Use server-side testing with Statsig or LaunchDarkly. Requires developer implementation.
For minimal flicker (client-side): Use ExperimentHQ. <5KB script, optimized loading, imperceptible flicker.
Avoid: Tools with 100KB+ scripts. No anti-flicker snippet can compensate for slow loading.