Imagine you spent a week on a new button design, launched an A/B test on 50 visitors — conversion increased by 40%. You happily rolled it out, but a month later everything returned to baseline. The mistake: a small sample gave a false positive. We've encountered this dozens of times. A/B testing is a controlled experiment for improving website conversion and conversion optimization. It provides objective answers only when statistical requirements are met. We use server-side split, pre-calculate the sample size, and analyze results by segments. This ensures each test yields reliable conclusions, not random fluctuations.
Problems We Solve
- Flicker effect — when users see the original, then the variant. Server-side split eliminates this completely: the variant is assigned before HTML rendering, no redraws.
- Insufficient traffic — many test on a small sample and get unreliable data. We pre-calculate the required volume using a calculator: for a 3% conversion and MDE of 15%, you need 3842 visitors per variant.
- Ignoring segments — overall conversion may not change, but on mobile devices the improvement could be 25%. We break down analytics by device, browser, source, and provide CRO insights accordingly.
How We Do It
We use server-side split on PHP (Laravel) or Node.js. This gives deterministic variant assignment without flicker. Before each test, we formalize a hypothesis using hypothesis testing principles. Example middleware for Laravel:
// Laravel Middleware: assign variant before rendering
class AbTestMiddleware
{
public function handle(Request $request, Closure $next)
{
$testName = 'checkout_form_v2';
$userId = auth()->id() ?? $request->session()->getId();
// Deterministic assignment based on user ID
$variant = (crc32($userId . $testName) % 2 === 0) ? 'control' : 'variant';
$request->merge(['ab_variants' => [$testName => $variant]]);
View::share('ab_variants', [$testName => $variant]);
$response = $next($request);
$response->headers->set('X-AB-Variant', $variant);
return $response;
}
}
{{-- In the template --}}
@if($ab_variants['checkout_form_v2'] === 'variant')
@include('checkout.form-v2')
@else
@include('checkout.form-v1')
@endif
Why Server-Side Split is Better Than Client-Side
Server-side split loads 3 times faster for the user (no redraw), tracks conversions more accurately (100% of events recorded), and eliminates flicker. Client-side solutions (Google Optimize, VWO) can distort data due to asynchronous loading and flicker. We recommend a server-side approach for projects with high accuracy requirements.
| Characteristic | Server-Side Split | Client-Side Split |
|---|---|---|
| Flicker | None | Possible |
| Load speed | Instant (HTML ready) | Delay due to JS loading |
| Data accuracy | 100% | Depends on async scripts |
| Server load | Minimal | None |
How to Calculate Sample Size
Using the formula for proportions: n = (Z_alpha/2 + Z_beta)^2 * (p1*(1-p1) + p2*(1-p2)) / (p2-p1)^2. Z_alpha/2 = 1.96 for 95% confidence, 80% power gives Z_beta = 0.84. For example, with current conversion 5% and MDE 10%, you need 7089 visitors per variant.
| Current Conversion | MDE | Sample Size per Variant |
|---|---|---|
| 2% | 20% | 3785 |
| 5% | 10% | 7089 |
| 10% | 10% | 11468 |
Step-by-Step Calculation
- Determine current conversion (p1) and minimum detectable effect (MDE).
- Set confidence level (usually 95%) and statistical power (80%).
- Use the formula or an online calculator (e.g., Wikipedia).
- Collect the required number of visitors per variant.
- Do not stop the test until you reach the calculated volume.
A/B testing is a controlled experiment with two variants. — Wikipedia
Common Mistakes
- Stopping the test early — p-value fluctuates; wait for the calculated volume.
- Testing multiple changes at once — that's multivariate; results are hard to interpret.
- Ignoring segments — the test may be neutral overall, but on mobile there could be a 25% improvement in UX.
- Not accounting for seasonality — run the test during a representative period (not Black Friday).
Case in point: 30% false positives
In one project, a client ran 10 tests — 3 showed significance. After implementation, only 1 confirmed the effect. The reason: small sample size and multiple comparisons. We reran all tests with proper calculation: out of 10, only 2 were truly significant. Savings amounted to hundreds of development hours.
To avoid these mistakes, it's important to follow the methodology and not rush to conclusions. For example, we always check segments and use confidence intervals to assess variability. Accurate A/B tests help avoid spending resources on ineffective changes.
What's Included
- Setup of server-side A/B split on your stack (Laravel, Node.js, Python).
- Integration with web analytics tools like Google Analytics 4 or Yandex.Metrica for event tracking.
- Analysis script with Z-test and confidence intervals.
- Documentation of conducted tests and their interpretation.
- Support for 2 weeks after launch (adjustments if needed).
Timeline and Cost
Setting up a single A/B test takes 2 to 4 working days. Cost is calculated individually depending on integration complexity and number of tests. We guarantee a transparent process and a clear final report. Typical setup costs range from $800 to $2500 per test, with potential monthly savings from increased conversion exceeding $10,000 for e-commerce sites. For example, a single test costing $1500 can lead to $12,000 in extra revenue per month. With 7+ years of experience and over 50 completed A/B tests across industries, we help you avoid common pitfalls and achieve reliable results.
Want to increase conversion predictably? Contact us — we'll discuss your project and select an optimal testing plan. Get a consultation from a senior engineer right now. We also recommend exploring Bayesian approaches and multiple comparison corrections (e.g., Bonferroni) when running multiple variants simultaneously.
Additional Technical Insights
For more advanced analysis, consider using chi-square tests for categorical data or logistic regression for controlling covariates. Stratified sampling can reduce variance, and sequential testing methods like the SPRT allow early stopping without inflating false positives. Our team applies these techniques as needed.
Company Credentials
Our company has 5 years on the market, with a track record of delivering measurable conversion lifts. We have worked with SaaS, e-commerce, and B2B clients, consistently improving their ROI through rigorous experimentation.







