---
title: "A/B testing"
description: "**Visitor**acme.com"
canonical: https://landtest.dev/ab-testing
last-updated: 2026-10-30
---

# A/B testing

**Visitor**acme.com

**Your host**One cached page shell

Control · 50%**Invoicing for agencies**CR 3.2%

Variant A · 50%**Get paid 2x faster**CR 4.1%

**Goal**/signup/success

**0**third-party hops in the request path

**1**cached page shell for every visitor

**100%**of variants are real code in your repo

How the split works

## One page shell. A cookie picks the version.

Every visitor gets the same HTML from your CDN. A first-party cookie assigns control or a variant in the browser before paint, so the page never flickers and the cache stays warm.

Lifecycle

## From draft to a clean winner.

- 01**Draft**The agent writes the variant as code in your repo.
- 02**Preview**Waits for a green preview deploy before anything goes live.
- 03**Live**Split published. Visitors are assigned with no flicker.
- 04**Winner**Declared on conversion, confidence and a healthy split.
- 05**Cleanup**Winner merged as a plain page. Test runtime removed.

Measurement

## Every variant gets the same tracking.

Pageviews, goals, sections and clicks, measured identically for control and each variant.

### Per visitor

Pageview, referrer, traffic source, device, and a unique visitor ID.

### Per section

Whether a section was seen, and how long visitors stayed on it — so you know if people reached pricing, not just how far they scrolled.

### Per button and link

Every clickable element tracked separately — hero button, nav signup, pricing button, footer CTA, and more.

Plus per-goal conversions and full per-variant rollups. See [Analytics](https://www.landtest.dev/analytics) for the full picture.

Goals can be a page visit (like /signup/success) or a button click you choose. Confidence uses mSPRT, so it is safe to check results at any time. See [Analytics](https://www.landtest.dev/analytics) for the full breakdown.
