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%.
| Конверсия 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 дн. |
Считайте конверсии, а не посетителей
Из таблицы видна удобная закономерность. При любой конверсии от 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%
При 50 посетителях в сутки ежедневное подглядывание даёт 24% ложных побед, при 1000 – 28%. Трафик почти ни на что не влияет: значение имеет число проверок. Чем дольше тест идёт с ежедневным просмотром, тем выше шанс, что случайная волна однажды пересечёт порог.
| Проверка каждый день | Одна проверка в конце | |
|---|---|---|
| 7 дней | 16,7% | 5% |
| 14 дней | 21,7% | 5% |
| 28 дней | 27% | 5% |
| 56 дней | 32,4% | 5% |
| 90 дней | 36,6% | 5% |
Результат совпадает по порядку величины с оценкой Миллера: в его худшем сценарии, с проверкой после каждого посетителя, ложных срабатываний 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 году, он работает даже на бумаге:
- Заранее выбираете максимальное число конверсий
Nпо таблице или калькулятору Миллера. - Считаете конверсии в тестовой группе (
T) и контрольной (C). - Если
T − Cдостигла примерно2√N, тестовая версия победила (для двустороннего варианта порог2,25√N). - Если
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%. Байесовская вероятность в отчёте от этого не защищает.
- Если маленький тест показал огромный рост, скорее всего, реальный эффект намного меньше или его нет.
- На малом трафике работают крупные изменения, фиксированный срок или последовательный тест, наблюдение за пользователями и аккуратное сравнение периодов. Подробнее о том, как я подхожу к таким задачам для бизнеса, – на странице для владельцев бизнеса.
Источники
- 01How Not To Run an A/B TestEvan Miller · evanmiller.org · 2010
- 02Simple Sequential A/B TestingEvan Miller · evanmiller.org · 2015
- 03A/B Testing Intuition Busters: Common Misunderstandings in Online Controlled ExperimentsRon Kohavi, Alex Deng, Lukas Vermeer · KDD 2022 · 2022
- 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
- 05Always Valid Inference: Bringing Sequential Analysis to A/B TestingRamesh Johari, Leo Pekelis, David Walsh · arXiv · 2015
- 06Is Bayesian A/B Testing Immune to Peeking? Not ExactlyDavid Robinson · r-bloggers.com · 2015
- 07Bayesian A/B testing is not immune to peekingAlex Molas · alexmolas.com · 2025
- 08Are Multi-Armed Bandits Susceptible to Peeking?Markus Loecher · Zagreb International Review of Economics and Business · 2018
- 09Отчёт о результатах экспериментаСправка Varioqub
- 10Why You Only Need to Test with 5 UsersJakob Nielsen · NN/g · 2000