Skip to content

A/B Testing overview

Run page-level A/B tests with server-side variant routing. A test takes one page, runs two or more variants at different traffic percentages, tracks impressions and conversions, and tells you which variant wins.

Variants are snapshots of the page. The control variant is the live published page; additional variants are saved versions of the same page. Switching a winner copies the winning snapshot back onto the published page.

This page explains the concepts. See Create a test for step-by-step setup.

Where the module lives

Open Pages → A/B Testing in the sidebar. The landing screen shows a flat list of all tests with their status.

A/B testing list with tests, status, variants, duration, winner

The test lifecycle

text
draft ── Start Test ──▶ active ── Pause ──▶ paused ── Resume ──▶ active
                         │                                           │
                         └──────────── End Test ────────────────────┘


                                       completed ── Apply Winner ──▶ live page updated
StatusWhat it means
draftTest is configured but not running. Add or remove variants freely.
activeTest is live. Visitors are randomly assigned variants per the traffic distribution.
pausedTest is running but new visitors are not assigned. In-flight cookies still see their variant.
completedTest has ended. Results are frozen, no new impressions are tracked.

How variants are assigned

  1. A visitor lands on a page with an active test.
  2. The server checks the consent cookie (category statistics). If the visitor has not consented, the control variant is served and no tracking happens.
  3. The server rolls a random number against the traffic distribution and picks a variant.
  4. A cookie ns_ab_vid is set so the same visitor sees the same variant on later visits.

Variants live server-side. The visitor's URL never changes — they see /landing-page regardless of which variant they got.

Consent-gated tracking

A/B tracking sits in the statistics cookie-consent category. If the user has not accepted statistics, they see the control variant and no impression is recorded. The test still runs — you just capture fewer data points.

Conversion types

When you create a test you pick what counts as a conversion:

TypeTrigger
Page VisitThe visitor reached a specific target URL. Use the path, e.g. /thank-you.
Button ClickA button with a matching CSS selector was clicked. Use a #id or .class selector.
Form SubmitA form element was submitted. Use the form's CSS selector.
CustomTriggered by a dispatchEvent('ab-conversion') in custom JavaScript. Advanced use only.

Results and confidence

Each variant card on the detail view shows:

  • Impressions — how many visitors were assigned the variant.
  • Conversions — how many of them converted.
  • Rate — conversions over impressions.
  • Improvement — relative difference to the control.
  • Confidence — statistical confidence of the difference (simplified z-test against control).
Variant cards with impressions, conversions, rate, improvement, confidence

The confidence bar turns green at 95% confidence. Do not apply a winner before the bar is green and you have at least min_sample_size impressions per variant.

Apply a winner

When a test is completed, click Apply Winner. Pick the winning variant from the dropdown. The CMS copies that variant's page snapshot onto the live page — the change is immediate and visible to every visitor, regardless of cookie state.

Applying a winner replaces the live page

Make sure the winner is the version you want to ship. The original published page is overwritten by the variant's snapshot. A/B test records stay, but the live page now matches the winner.

Analytics integration

Impressions and conversions are also dispatched to:

  • Google Analytics 4 — if analytics consent is granted.
  • Matomo — if analytics consent is granted.
  • Facebook Pixel — if marketing consent is granted.

Nothing is sent without the matching consent — the CMS respects the cookie-consent banner strictly.

Permissions

  • Editors create tests, manage variants, end tests.
  • Admins additionally apply winners to live pages.

See also