Промо-сайт на 1С-Бітрікс: A/B-тести, кешування, CRM

При запуску масової email-розсилки лендінг на конструкторі ліг — сервер не витримав 5 000 одночасних відвідувачів. Промо-сайт на 1С-Бітрікс з кешуванням nginx FastCGI та інфоблоками витримує такі піки без втрати конверсії. Власна CMS дає повний контроль: від верстки до інтеграції з CRM. Один розгорн
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Промо-сайт на 1С-Бітрікс: A/B-тести, кешування, CRM
Середній
~1-2 тижні

Наші компетенції:

Часті запитання

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1462
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1019
  • Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    764
  • Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    882
  • Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    810
  • Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1166

При запуску масової email-розсилки лендінг на конструкторі ліг — сервер не витримав 5 000 одночасних відвідувачів. Промо-сайт на 1С-Бітрікс з кешуванням nginx FastCGI та інфоблоками витримує такі піки без втрати конверсії. Власна CMS дає повний контроль: від верстки до інтеграції з CRM. Один розгорнутий кейс: для клієнта з телеком-сектору ми зробили промо-сторінку, яка за 3 дні залучила 12 000 лідів — середня вартість ліду знизилася на 30%. Маркетологи заощадили 40% бюджету за рахунок відмови від зовнішніх сервісів аналітики.

Технічно промо-сайт на Бітрікс — це односторінковик з секціями, формами захоплення та інтеграцією з Бітрікс24 через REST API. Використовуємо інфоблоки v2.0 для контенту, hl-блоки для статистики A/B-тестів, теговане кешування для швидкості. Такий підхід у 5 разів швидший за типовий лендінг на конструкторі при пікових навантаженнях.

Коли промо на Бітрікс, а не на конструкторі

  • Основний сайт вже на Бітрікс — промо розміщується на піддомені або в папці, використовуючи той самий шаблон і кеш. Інтеграція займає 2 години.
  • Потрібна CRM без прошарків — форми одразу створюють ліди в Бітрікс24 через API, фіксуючи UTM-мітки.
  • Промо планується багаторазово використовувати (акції, події) — контент змінюється через адмінку без розробника.
  • Потрібне A/B-тестування вбудованими засобами — без підключення зовнішніх сервісів.

Архітектура промо-сайту

Два підходи:

  1. Окремий шаблон на основному сайті. Створюється шаблон /local/templates/promo_EVENTNAME/ — мінімальна обгортка без навігації. Сторінка /promo/event-name/index.php підключає його через $APPLICATION->SetTemplate().

  2. Окремий сайт у складеному сайті. Якщо промо на піддомені promo.example.ru — створюється новий сайт в адмінці (Налаштування → Сайти → Список сайтів). Свій шаблон, налаштування, поштові події.

Редаговані секції через інфоблок

Щоб маркетолог міняв контент — розміщуємо блоки через інфоблок promo_sections.

Властивості елемента: тип секції (hero, features, testimonials, cta, faq), фон, текст CTA. У шаблоні — switch по SECTION_TYPE:

$sections = \CIBlockElement::GetList( ['SORT' => 'ASC'], ['IBLOCK_ID' => PROMO_SECTIONS_IBLOCK_ID, 'ACTIVE' => 'Y', 'PROPERTY_PROMO_ID' => $promoId], false, false, ['ID', 'NAME', 'CODE', 'DETAIL_TEXT', 'PROPERTY_SECTION_TYPE', 'PROPERTY_BG_IMAGE', 'PROPERTY_CTA_TEXT', 'PROPERTY_CTA_URL'] ); while ($section = $sections->GetNext()) { $sectionType = $section['PROPERTY_SECTION_TYPE_VALUE']; $sectionFile = __DIR__ . '/sections/' . $sectionType . '.php'; if (file_exists($sectionFile)) { include $sectionFile; } } 

Форми захоплення лідів

На промо-сайті кілька точок конверсії: hero-форма, форма в кінці, exit-intent popup. Усі надсилають запит на один обробник:

\Bitrix\Main\Loader::includeModule('crm'); $promoId = htmlspecialchars($_POST['promo_id'] ?? ''); $name = htmlspecialchars(trim($_POST['name'] ?? '')); $phone = htmlspecialchars(trim($_POST['phone'] ?? '')); $email = htmlspecialchars(trim($_POST['email'] ?? '')); $source = htmlspecialchars($_POST['form_position'] ?? 'unknown'); // hero | bottom | popup if (empty($phone) && empty($email)) { echo json_encode(['error' => 'Вкажіть телефон або email']); exit; } $lead = new \CCrmLead(false); $leadId = $lead->Add([ 'TITLE' => 'Промо: ' . $promoId . ' — ' . $name, 'NAME' => $name, 'PHONE' => [['VALUE' => $phone, 'VALUE_TYPE' => 'WORK']], 'EMAIL' => [['VALUE' => $email, 'VALUE_TYPE' => 'WORK']], 'SOURCE_ID' => 'WEB', 'SOURCE_DESCRIPTION' => 'Промо: ' . $promoId . ', форма: ' . $source, 'UTM_SOURCE' => $_COOKIE['utm_source'] ?? '', 'UTM_MEDIUM' => $_COOKIE['utm_medium'] ?? '', 'UTM_CAMPAIGN' => $_COOKIE['utm_campaign'] ?? '', ]); echo json_encode(['success' => (bool)$leadId]); 

UTM-мітки зберігаються в cookies на 30 хвилин через JS і передаються в лід. Доступні поля UTM_SOURCE, UTM_MEDIUM, UTM_CAMPAIGN, UTM_TERM, UTM_CONTENT — використовуємо їх. Як зазначено в документації REST API, метод CCrmLead::Add дозволяє створити лід за один запит.

Як реалізувати таймер зворотного відліку?

Таймер до кінця акції — ключовий елемент конверсії. Реалізуємо на JS з серверним часом:

// Дата з налаштувань інфоблоку, без хардкоду $promoEndDate = \COption::GetOptionString('promo', 'end_date'); echo '<script>window.PROMO_END_DATE = "' . $promoEndDate . '";</script>'; 
function startCountdown(endDateStr) { const endDate = new Date(endDateStr); const timer = setInterval(() => { const now = new Date(); const diff = endDate - now; if (diff <= 0) { clearInterval(timer); document.getElementById('timer').textContent = 'Акція завершена'; return; } const days = Math.floor(diff / 86400000); const hours = Math.floor((diff % 86400000) / 3600000); const minutes = Math.floor((diff % 3600000) / 60000); const seconds = Math.floor((diff % 60000) / 1000); document.getElementById('timer-days').textContent = String(days).padStart(2, '0'); document.getElementById('timer-hours').textContent = String(hours).padStart(2, '0'); document.getElementById('timer-minutes').textContent = String(minutes).padStart(2, '0'); document.getElementById('timer-seconds').textContent = String(seconds).padStart(2, '0'); }, 1000); } 

Чому варто додати A/B тестування?

A/B тест дозволяє порівняти варіанти сторінки без зовнішніх сервісів. Ділимо відвідувачів через cookie:

if (!isset($_COOKIE['promo_variant'])) { $variant = rand(0, 1) ? 'A' : 'B'; setcookie('promo_variant', $variant, time() + 86400 * 30, '/'); } else { $variant = $_COOKIE['promo_variant']; } $templateFile = __DIR__ . '/variants/' . $variant . '.php'; include $templateFile; 

Результати пишемо в окрему таблицю b_local_promo_ab_stats з полями PROMO_ID, VARIANT, VIEWS, CONVERSIONS. Після 1 000 відвідувачів на варіант видно статистичну значущість — можна обрати кращий.

Коли A/B тест вважається завершеним?Після накопичення 1 000 відвідувачів на варіант можна оцінити статистичну значущість. Якщо різниця конверсії перевищує 5%, варіант-лідер вважається переможцем.

Кешування та продуктивність

Промо-сайт може отримати пікове навантаження: 10 000 відвідувачів на годину від розсилки. Налаштовуємо:

  • Повносторінкове кешування через nginx FastCGI cache для анонімних користувачів. Віддача сторінки — 0.002 с.
  • Cache-Control: public, max-age=3600 для статики.
  • Прогрів кешу після кожного деплою.
  • Rate limiting AJAX-запитів (nginx limit_req_zone).

Як запустити промо-сайт за 5 кроків?

  1. Фіксація цілей та аудит поточного сайту.
  2. Проектування архітектури інфоблоків та інтеграцій.
  3. Розробка шаблону, форм, таймера, A/B-тесту.
  4. Навантажувальне тестування та налаштування кешування.
  5. Запуск та передача інструкції редактору.

Що входить у роботу

Етап Опис
Аналіз та ТЗ Фіксація цілей, аудит поточного сайту, підбір шаблону
Проектування Архітектура інфоблоків, схема інтеграцій з CRM
Розробка Верстка, програмування компонентів, форм, таймерів
Тестування Перевірка на пікових навантаженнях, UTM-аналітика, A/B тест
Запуск та навчання Налаштування кешування, передача доступів, інструкція для редакторів

Наша команда має 5+ років досвіду в розробці на Бітрікс і більше 50 реалізованих промо-сайтів. Гарантуємо якість і фіксуємо терміни в договорі. Оцініть ваш проект — отримайте консультацію інженера. Зв'яжіться з нами для розрахунку вартості.

Терміни розробки

Варіант Склад Термін
Лендінг за готовим макетом Верстка + форма + лід в CRM 3–5 днів
З редагованим контентом + Інфоблок секцій, керування через адмінку 5–8 днів
Повнофункціональний промо + Таймер, A/B тест, аналітика UTM 8–14 днів

Вартість розраховується індивідуально і фіксується в договорі.