Перейти к содержимому

11 минут чтения

A/B-тестирование при малом трафике: почему тест врёт

Сколько трафика нужно для A/B-теста на самом деле: таблица сроков для сайтов на 50, 200 и 1000 посетителей в день, симуляция ложных победителей при подглядывании и что делать, если трафика мало.

A/B-тестирование на сайте с парой сотен посетителей в день почти всегда врёт: чтобы надёжно заметить рост конверсии на 20%, каждой версии страницы нужно около 400 заявок, а при 200 посетителях в сутки и конверсии 3% это четыре с половиной месяца. Тест, остановленный раньше, или тест, на который смотрят каждый день, объявляет победителя там, где его нет, в каждом четвёртом случае и чаще. Ниже – таблица сроков для типичного малого бизнеса, симуляция того, как именно рождаются ложные победители, и что делать вместо классического теста.

Все цифры с пометкой «мой расчёт» получены кодом: Python 3.13, numpy 2.5, scipy 1.18, двусторонний z-тест для двух долей, уровень значимости 5%, мощность 80%, трафик делится 50/50. Симуляции – 20 000 прогонов на сценарий.

Сколько трафика нужно для A/B-теста

Размер выборки зависит от трёх вещей: текущей конверсии, эффекта, который вы хотите поймать, и того, насколько вы готовы ошибаться. Эффект задают заранее и называют MDE (minimum detectable effect) – минимальный рост, который тест должен заметить. Стандартные настройки отрасли – 5% ложных срабатываний и 80% шанса найти эффект, если он реально есть.

Для конверсии есть простая формула из книги ван Белля, которую приводят и Эван Миллер, и Рон Кохави с соавторами: на каждую группу нужно примерно 16 · p · (1 − p) / δ² посетителей, где p – текущая конверсия, а δ – абсолютная разница, которую хотите заметить. Смысл в знаменателе: эффект вдвое меньше требует вчетверо больше трафика.

Вот что это даёт для сайта с конверсией 3% в заявку.

Ожидаемый рост

Всего посетителей

50 в день

200 в день

1000 в день

+10%

106 422

2128 дней (≈ 5,8 года)

532 дня (≈ 1,5 года)

106 дней

+20%

27 828

557 дней

139 дней

28 дней

+30%

12 910

258 дней

65 дней

13 дней

+50%

5 036

101 день

25 дней

5 дней

Мой расчёт, конверсия 3%, двусторонний тест, α = 5%, мощность 80%.

Сколько дней идёт тест при 200 посетителях в суткиСрок до надёжного результата в зависимости от текущей конверсии и ожидаемого роста.
Сколько дней идёт тест при 200 посетителях в сутки
Конверсия 1%Конверсия 2%Конверсия 3%Конверсия 5%
+10%1 631 дн.807 дн.532 дн.312 дн.
+20%427 дн.211 дн.139 дн.82 дн.
+30%198 дн.98 дн.65 дн.38 дн.
+50%78 дн.38 дн.25 дн.15 дн.

Источник: Мой расчёт: z-тест двух долей, α = 5%, мощность 80%, трафик 50/50

Считайте конверсии, а не посетителей

Из таблицы видна удобная закономерность. При любой конверсии от 1% до 5% на каждую группу нужно примерно одинаковое число целевых действий:

  • около 1600 заявок на группу, чтобы поймать рост на 10%;
  • около 410 – для роста на 20%;
  • около 190 – для 30%;
  • около 75 – для 50%.

Чем ниже конверсия, тем больше посетителей нужно, чтобы набрать эти заявки, но сами заявки – главный ограничитель. Если сайт получает 30 заявок в месяц, то тест на рост в 20% (по 410 заявок в двух группах, всего 820) займёт больше двух лет. Это быстрее любой формулы отвечает на вопрос «стоит ли мне вообще запускать A/B-тест».

Полная таблица: конверсия 1%, 2%, 3%, 5%

Сколько посетителей нужно на одну группу (вторая такая же). Мой расчёт, те же условия.

Конверсия

+10%

+20%

+30%

+50%

1%

163 095

42 693

19 827

7 750

2%

80 682

21 109

9 798

3 826

3%

53 211

13 914

6 455

2 518

5%

31 234

8 158

3 780

1 471

Дни теста = 2 × число из таблицы / посетителей в сутки. Тест стоит вести целыми неделями, чтобы обе группы прошли одинаковые будни и выходные.

Рон Кохави, Алекс Денг и Лукас Вермеер в статье для конференции KDD 2022 формулируют ориентир ещё жёстче: A/B-тесты полезны для эффектов разумного размера, когда у продукта как минимум тысячи активных пользователей, а лучше десятки тысяч. Для сравнения: при 200 посетителях в сутки сайт набирает 6000 визитов в месяц, и это ещё не уникальные пользователи.

Почему тест на малом трафике «находит» победителей

Владелец небольшого сайта запускает тест, через две недели видит в отчёте «+35%, значимо» и раскатывает победителя. Через месяц заявок столько же, сколько было. Так происходит по двум причинам, и обе работают даже тогда, когда тест посчитан честно.

Подглядывание: ложные победители в каждом четвёртом тесте

Уровень значимости 5% означает: если версии на самом деле одинаковые, тест ошибётся в 5% случаев – при условии, что результат проверили один раз, в запланированный день. Эван Миллер ещё в 2010 году показал, что это условие нарушают почти все: отчёт обновляется каждый день, и тест останавливают, как только он «позеленел». Каждый просмотр – это ещё одна попытка выиграть в лотерею.

Я проверил, как это выглядит на трафике малого бизнеса. Симуляция A/A-теста: обе версии одинаковые, конверсия 3%, тест идёт 28 дней, результат смотрят каждый вечер и останавливают при первом «значимо».

ложных побед, если смотреть один раз в конце
5,2%
ложных побед, если смотреть каждый день
27,6%
при байесовском правиле «вероятность больше 95%» каждый день
42%
Источник: Мой расчёт: A/A-тест, 200 посетителей в сутки, конверсия 3%, 28 дней, 20 000 прогонов

При 50 посетителях в сутки ежедневное подглядывание даёт 24% ложных побед, при 1000 – 28%. Трафик почти ни на что не влияет: значение имеет число проверок. Чем дольше тест идёт с ежедневным просмотром, тем выше шанс, что случайная волна однажды пересечёт порог.

Шанс объявить ложного победителя при ежедневной проверкеA/A-тест, обе версии одинаковые. Номинально ошибок должно быть 5%.
Шанс объявить ложного победителя при ежедневной проверке
Проверка каждый деньОдна проверка в конце
7 дней16,7%5%
14 дней21,7%5%
28 дней27%5%
56 дней32,4%5%
90 дней36,6%5%

Источник: Мой расчёт: 200 посетителей в сутки, конверсия 3%, 20 000 прогонов на точку

Результат совпадает по порядку величины с оценкой Миллера: в его худшем сценарии, с проверкой после каждого посетителя, ложных срабатываний 26,1% вместо 5%. Рамеш Джохари, Лео Пекелис и Дэвид Уолш из Стэнфорда и Optimizely в работе 2015 года прямо пишут, что обычные p-value и доверительные интервалы становятся ненадёжными, если решения принимают по ходу непрерывного наблюдения за тестом.

Байесовский тест тоже не спасает от подглядывания

В русской и английской выдаче по запросу «a/b тестирование» популярен совет перейти на байесовский подход, потому что он якобы позволяет смотреть на результаты сколько угодно. Это заблуждение, и его опровергали не раз.

  • Дэвид Робинсон (Stack Exchange, 2015) симулировал байесовское правило остановки, которое предлагали Миллер и Крис Стуккио: без подглядывания худший вариант выбирался в 2,5% случаев, с ежедневным подглядыванием – в 11,8%.
  • Маркус Лёхер (Берлинская школа экономики и права, 2018) показал, что вероятность превосходства и «остаточная ценность» сильно искажаются при повторных проверках.
  • Алекс Молас (2025) прогнал симуляции для конверсий 0,1%, 1% и 10% с разной частотой проверок и пришёл к тому же: фиксированный порог апостериорной вероятности не удерживает долю ложных побед, если останавливаться при первом успехе.

Моя симуляция показывает то же на малом трафике. Правило «вероятность, что B лучше A, выше 95% (или ниже 5%)» при одной проверке в конце даёт около 10% ложных побед, при ежедневной – 42%. Байесовская вероятность честно отвечает на вопрос «насколько B лучше по данным на сегодня», но не обещает, что правило остановки по ней не ошибётся.

Проклятие победителя: даже настоящий эффект оказывается раздутым

Вторая ловушка тоньше. Допустим, новая версия действительно лучше на 10%, тест никто не трогает до конца. При 200 посетителях в сутки и конверсии 3% за 28 дней тест увидит этот эффект только в каждом десятом случае. Мощность – вероятность найти эффект, когда он есть, – около 10% вместо 80%.

Хуже другое: в тех редких случаях, когда тест всё-таки показал «значимо», средний найденный рост – около +41% при реальных +10%. Значимым мелкий эффект на маленькой выборке становится, только если шум случайно его раздул. Статистики называют это проклятием победителя, а Эндрю Гельман и Джон Карлин в 2014 году ввели для него термин «ошибка M» (magnitude, ошибка величины).

Трафик и срок

Шанс заметить реальные +10%

Средний рост в «значимых» тестах

200 в день, 28 дней

10%

+41%

200 в день, 90 дней

21%

+23%

1000 в день, 28 дней

30%

+19%

1000 в день, 90 дней

73%

+12%

Мой расчёт, конверсия 3%, проверка один раз в конце.

На практике это значит: владелец заложит в план +40% заявок, а получит +10% или ничего.

Реальные примеры громких результатов

Кохави, Денг и Вермеер разобрали опубликованный в 2021 году тест, где новая посадочная страница «увеличила конверсию на 337%». В контрольной группе было 82 посетителя и 3 конверсии, в тестовой – 75 посетителей и 12 конверсий, p-value около 0,01. Авторы посчитали, что заранее мощность такого теста для эффекта в 10% составляла около 3%, а значит, результату нельзя доверять. Они ссылаются на закон Твимана: любая цифра, которая выглядит интересной или необычной, обычно ошибочна.

В той же статье есть таблица, которая хорошо отрезвляет. Если в компании успешной оказывается примерно каждая десятая идея (оценка, которую авторы приводят для Booking.com, Google Ads и Netflix), а тесты идут с мощностью 20%, то больше половины «значимых» результатов – ложные: 52,9%. При мощности 80% – 22%.

Свежий пример – проверка исследования из Journal of Consumer Research (2023), где закругление углов кнопок якобы подняло кликабельность на 55% при p = 0,037. Кохави, Гельман, Имбенс и соавторы в конце 2025 года опубликовали три теста, в каждом из которых пользователей было более чем в две тысячи раз больше, чем в исходной работе. Эффект оказался примерно в сто раз меньше заявленного и статистически неотличим от нуля.

Что делать, если трафика мало

Отказаться от классического A/B-теста – не значит принимать решения наугад. Есть способы, которые работают на малом трафике честнее.

Проверяйте только крупные изменения

Таблица выше подсказывает правило: при 200 посетителях в сутки разумно тестировать то, от чего ждёте роста хотя бы на 30–50%. Цвет кнопки или формулировка заголовка так не двигают конверсию. Новое предложение, другая цена, другая форма заявки, другой первый экран целиком – могут. Если идея не тянет на +30%, её проще внедрить без теста и следить за общими показателями.

Выбирайте метрику ближе к действию

Клик по кнопке «Оставить заявку» случается чаще, чем отправленная заявка, а заявка – чаще, чем оплата. Больше событий – меньше дней теста. Минус в том, что клик – это промежуточная метрика: вариант может собирать больше кликов и при этом не давать больше продаж. Поэтому промежуточную метрику берут для отбраковки явно плохих идей, а не для финального решения о деньгах. Про то, какие показатели в Метрике действительно связаны с выручкой, я писал в статье о метриках сайта для владельца.

Фиксируйте срок заранее или используйте последовательный тест

Если тест всё-таки запускается, самое простое лекарство от подглядывания – посчитать размер выборки до старта, записать дату окончания и не принимать решений до неё. Смотреть на отчёт можно, останавливать нельзя.

Если ждать невыносимо, есть последовательные тесты, где досрочная остановка заложена в расчёт. Самый простой вариант описал Эван Миллер в 2015 году, он работает даже на бумаге:

  1. Заранее выбираете максимальное число конверсий N по таблице или калькулятору Миллера.
  2. Считаете конверсии в тестовой группе (T) и контрольной (C).
  3. Если T − C достигла примерно 2√N, тестовая версия победила (для двустороннего варианта порог 2,25√N).
  4. Если T + C достигла N, а порог так и не пересечён, победителя нет.

Например, для одностороннего поиска роста на 20% с α = 5% и мощностью 80% Миллер даёт N = 808 конверсий и порог разницы 56. Бесплатного выигрыша тут нет: если эффекта нет, такой тест идёт дольше обычного, зато настоящий «хит» он выявляет заметно раньше. На том же принципе (sequential testing, «всегда валидные» p-value) построены движки коммерческих платформ – подход Джохари и соавторов внедрён в Optimizely.

Наблюдайте за людьми вместо подсчёта процентов

Качественные исследования не дают процентов, зато показывают, почему люди не оставляют заявку. Якоб Нильсен и Том Ландауэр вывели модель, по которой пять участников юзабилити-теста находят около 85% проблем интерфейса. Нильсен рекомендует несколько маленьких раундов по пять человек вместо одного большого. Это исследование 2000 года и касается поиска проблем, а не измерения эффекта, но для малого бизнеса пять созвонов с клиентами, которые пробуют оформить заказ при вас, часто дают больше, чем полгода A/B-теста.

Похожую работу делает Вебвизор в Метрике: записи визитов показывают, где люди застревают в форме или уходят с первого экрана. Записи хранятся ограниченное время, поэтому их стоит смотреть регулярно, а не раз в квартал.

Сравнивайте периоды, но с оговорками

Сравнение «месяц до изменения и месяц после» – не эксперимент: за это время могли поменяться сезон, реклама, цены конкурентов. Сделать его полезнее можно так:

  • менять за раз одну вещь и записывать дату изменения;
  • сравнивать одинаковые дни недели и, по возможности, год к году;
  • смотреть на каналы отдельно: если выросла только реклама, дело может быть в ставках, а не в странице;
  • проверять заявки в продажу, а не только заявки, и оценивать результат на нескольких неделях, а не на первых днях.

Такой вывод слабее A/B-теста, и это стоит честно признавать. Но он лучше теста, который наверняка выдаст случайного победителя.

Коротко

  • Прежде чем запускать A/B-тест, посчитайте заявки: для роста на 20% нужно около 400 целевых действий на каждую версию, для роста на 10% – около 1600.
  • При 200 посетителях в сутки и конверсии 3% тест на +20% длится четыре с половиной месяца, на +10% – полтора года. Мелкие правки на таком трафике не тестируются.
  • Ежедневная проверка и остановка «как только позеленело» превращают 5% ошибок в 25–35%. Байесовская вероятность в отчёте от этого не защищает.
  • Если маленький тест показал огромный рост, скорее всего, реальный эффект намного меньше или его нет.
  • На малом трафике работают крупные изменения, фиксированный срок или последовательный тест, наблюдение за пользователями и аккуратное сравнение периодов. Подробнее о том, как я подхожу к таким задачам для бизнеса, – на странице для владельцев бизнеса.

Источники

  1. 01How Not To Run an A/B TestEvan Miller · evanmiller.org · 2010
  2. 02Simple Sequential A/B TestingEvan Miller · evanmiller.org · 2015
  3. 03A/B Testing Intuition Busters: Common Misunderstandings in Online Controlled ExperimentsRon Kohavi, Alex Deng, Lukas Vermeer · KDD 2022 · 2022
  4. 04Power Analysis is Essential: High-Powered Tests Suggest Minimal to No Effect of Rounded Shapes on Click-Through RatesRon Kohavi, Jakub Linowski, Lukas Vermeer и др. · arXiv · 2025
  5. 05Always Valid Inference: Bringing Sequential Analysis to A/B TestingRamesh Johari, Leo Pekelis, David Walsh · arXiv · 2015
  6. 06Is Bayesian A/B Testing Immune to Peeking? Not ExactlyDavid Robinson · r-bloggers.com · 2015
  7. 07Bayesian A/B testing is not immune to peekingAlex Molas · alexmolas.com · 2025
  8. 08Are Multi-Armed Bandits Susceptible to Peeking?Markus Loecher · Zagreb International Review of Economics and Business · 2018
  9. 09Отчёт о результатах экспериментаСправка Varioqub
  10. 10Why You Only Need to Test with 5 UsersJakob Nielsen · NN/g · 2000