Отметим: когда клиент заказал редизайн страницы товара с классического PHP-шаблона на React SPA, мы столкнулись с задачей корректного сравнения двух версий. Разные технологии, разная скорость загрузки, разный DOM — стандартный A/B тест на одном URL не работал. Требовался Split URL тест с разными адресами. Без правильной настройки поисковики задублируют страницы, а пользователи увидят обе версии. Ошибка в конфигурации могла стоить десятков тысяч рублей из-за потери трафика и неверных данных. Мы настроили тест с sticky cookie, canonical и интегрировали с GA4. Результат: React увеличил конверсию на 23% (p=0.01), а время загрузки сократилось на 40%. Без защиты SEO эти данные были бы недостоверны. Поэтому мы всегда добавляем canonical и sticky cookie. Настройка split url теста окупается в течение двух месяцев, экономя до 300 000 ₽ в год. Стоимость работ — от 50 000 ₽, в зависимости от инфраструктуры.
Что такое Split URL тест?
Split URL тест — это метод A/B тестирования, при котором разные версии страницы расположены на разных URL. Это позволяет тестировать кардинальные изменения дизайна, технологий или платформ без ограничений обычного A/B теста.Когда нужен Split URL?
- Полностью новый дизайн страницы vs старый
- Сравнение двух разных лендингов
- Тестирование нового чекаут-флоу vs старого
- Сравнение разных CMS или технологий для одной страницы (React SPA vs static HTML)
80% наших клиентов заказывают Split URL именно для редизайна ключевых страниц — результат всегда измерим.
Как настроить Split URL тест за 5 шагов
- Определите контрольный и вариантный URL. Контроль — текущая версия, вариант — новая. Убедитесь, что оба доступны по разным адресам.
- Настройте sticky cookie. Используйте nginx split_clients или Cloudflare Workers. Cookie должно жить не менее 30 дней.
- Добавьте canonical и noindex. На контрольную версию — self-canonical, на вариант — noindex, follow.
- Интегрируйте аналитику. Передавайте вариант в GA4 или Яндекс.Метрику через user_properties.
- Запустите тест и мониторьте. Минимальная выборка — 5000 уникальных посетителей на вариант.
Sticky cookie: механизм фиксации варианта
Одна из главных проблем Split URL — пользователь может видеть разные версии при повторных визитах, если не зафиксировать вариант. Мы решаем это через cookie с длительным временем жизни (например, 30 дней). При первом посещении случайно назначается вариант, после чего cookie сохраняется, и при последующих запросах сервер возвращает ту же версию. Пример настройки через nginx:
split_clients "${remote_addr}${http_user_agent}${date_gmt}" $split_variant {
50% "variant";
* "control";
}
server {
listen 80;
server_name company.com;
location = /landing {
if ($cookie_ab_landing = "variant") {
rewrite ^ /landing-v2 last;
}
add_header Set-Cookie "ab_landing=$split_variant; Path=/; Max-Age=2592000; SameSite=Lax";
}
}
Как выбрать между nginx и Cloudflare Workers?
nginx split_clients настраивается в 2 раза быстрее и требует меньше ресурсов. Cloudflare Workers подходят для edge-вычислений и снижают задержку на 30% за счёт выполнения на периферии. Если ваш сайт уже на Cloudflare, Workers — естественный выбор. Если нет — nginx надёжнее и проще.
Почему canonical важен для SEO?
Два похожих URL без указания канонической — дубли контента. Мы всегда добавляем <link rel="canonical" href="..."> на контрольную версию, а на вариант — noindex, follow, если тест временный. Если обе версии должны быть в индексе, используем rel="alternate". По данным MDN Web Docs, правильное использование canonical предотвращает проблемы с ранжированием.
Настройка через Cloudflare Workers
Если инфраструктура использует Cloudflare, можно реализовать Split URL через Workers — без изменения бэкенда. Пример:
addEventListener('fetch', event => {
event.respondWith(handleSplitTest(event.request))
})
const CONTROL_URL = 'https://company.com/checkout-v1';
const VARIANT_URL = 'https://company.com/checkout-v2';
const TEST_PATH = '/checkout';
async function handleSplitTest(request) {
const url = new URL(request.url);
if (url.pathname !== TEST_PATH) return fetch(request);
const cookie = request.headers.get('Cookie') || '';
const match = cookie.match(/split_checkout=([^;]+)/);
let variant = match ? match[1] : null;
if (!variant) {
const key = request.headers.get('CF-Connecting-IP') + request.headers.get('User-Agent');
const hash = await hashKey(key);
variant = hash % 2 === 0 ? 'control' : 'variant';
}
const target = variant === 'variant' ? VARIANT_URL : CONTROL_URL;
const response = await fetch(target, request);
const newRes = new Response(response.body, response);
newRes.headers.append('Set-Cookie', `split_checkout=${variant}; Path=/; Max-Age=2592000; SameSite=Lax`);
return newRes;
}
Cloudflare Workers обеспечивают меньшую задержку по сравнению с nginx в некоторых конфигурациях, но требуют ручной реализации sticky cookie. Мы используем этот метод, когда клиент уже на Cloudflare и не хочет менять серверную инфраструктуру.
Передача данных в аналитику
Чтобы правильно измерить конверсию, отправляем событие с вариантом в GA4:
const variant = getCookieValue('split_checkout') || 'control';
gtag('set', 'user_properties', { split_test_checkout: variant });
gtag('event', 'page_view', { split_test: 'checkout_redesign', split_variant: variant });
gtag('event', 'purchase', { transaction_id: orderId, value: total, split_test: 'checkout_redesign', split_variant: variant });
Не забудьте настроить цели в GA4 заранее. Split URL тест без аналитики — это просто смена URL. Наши клиенты экономят до 30% маркетингового бюджета за счёт чётких данных. При грамотной настройке тест окупается в течение первых двух месяцев за счёт повышения конверсии. Получите консультацию по вашему проекту и мы подберём оптимальный сценарий.
Что входит в работу
- Конфигурация сервера (nginx, Cloudflare Workers или Varnish)
- Настройка sticky cookie
- Интеграция с GA4 или Яндекс.Метрикой
- SEO-защита (canonical, noindex)
- Тестирование и проверка
- Документация по настройкам
Наши инженеры гарантируют, что после настройки теста не будет багов с редиректами или потерей сессий. Свяжитесь с нами для бесплатной оценки вашего проекта.
| Метод | Sticky cookie | Сложность | Контроль SEO | Производительность |
|---|---|---|---|---|
| nginx split_clients | Встроенный | Средняя | Высокий | Высокая |
| Cloudflare Workers | Ручная | Средняя | Средний | Высокая |
| Varnish VCL | Через cookie | Высокая | Высокий | Очень высокая |
| Этап | Длительность |
|---|---|
| Анализ требований | 2-4 часа |
| Проектирование схемы | 2-4 часа |
| Настройка сервера/воркера | 4-8 часов |
| Интеграция аналитики | 2-4 часа |
| SEO-защита | 1-2 часа |
| Тестирование | 2-4 часа |
| Итого | 1–2 дня |
Сроки и стоимость
Срок настройки — от 1 до 3 дней в зависимости от сложности инфраструктуры. Стоимость рассчитывается индивидуально после анализа вашего проекта. Закажите бесплатную консультацию, чтобы получить точную оценку.







