22:47, вторник, кухня, остывший американо и ноут с орущими логами. Конверсия лендинга срочного выкупа авто за вечер рухнула с 6,1% до 2,9%. Реклама крутилась на всю мощность, менеджеры в чате писали «телефон молчит», а в Метрике плясали странные пики отказов. Через 12 минут я нашёл виновника — «безобидный» скрипт виджета обратного звонка, который грузился 1,7 секунды и блокировал ввод в форме. Вроде бы мелочь, а минус 27% заявок за ночь.
Такие проекты — как работа сапёра. Пользователь горячий, бюджет капает каждую минуту, окно принятия решения — одна чашка кофе. Чуть промахнулся с перформансом, логикой формы или текстом в кнопке — и деньги летят в трубу быстрее, чем Cloudflare успевает отдать кэш.
Чем «горячие» лендинги отличаются от обычных
Первое — терпения нет. LCP должен быть до 1,8 секунды на 4G, иначе половина людей даже не увидит кнопку. Второе — форма. Не восемь полей, не «оставьте VIN, цвет салона, ПТС и девичью фамилию менеджера». Три поля максимум: телефон, марка/модель, год. Всё остальное — после контакта. Третье — доверие здесь и сейчас: заголовок без воды, конкретика в первом экране, фото реальных оценщиков, не сток с «улыбающейся женщиной на фоне кроссовера».
И да, уберите тяжёлые библиотеки. В моём февральском проекте 2024 мы срезали Moment.js, две маски ввода и карусель на 96 кБ ради трёх слайдов. Итог — минус 312 кБ, TTI с 3,4 до 1,9 секунды, конверсия с мобильного +1,8 п.п. Мобильный трафик там был 78%, так что эффект — как сняли кирпич с капота.
Микро‑архитектура, которая тащит
Я больше не трачу время на грандиозные фреймворки для таких страниц. Статика с SSR‑рендером контента, кэш на краю, критический CSS инлайном (8–12 кБ), остальное — отложенно. Шрифты — системные, максимум один вариативный с preload и swap. Изображения в WebP/AVIF, размеры фиксированные, lazy только ниже первого экрана. Любые сторонние виджеты — через defer и с «стабом», чтобы место не прыгало.
С формой — минимализм без компромиссов. Маску телефона пишу на ванильном JS в 18 строк, валидация по событию blur, кнопка активируется только когда есть 10 цифр. Ошибки — человеческим языком: «Кажется, не хватает цифр» вместо «validation error #402». И одна смешная деталь, которая дала +0,6 п.п.: подсказка «Мы не звоним с робота, только человек» прямо под полем.
В марте 2023 был показательный кейс с сервисом срочного выкупа в Москве: ребята пришли после провала у подрядчика — 41 лид за месяц и CPL 1 240 ₽ из поиска. Мы собрали сверхлёгкий лендинг, подключили коллтрекинг, навели порядок в событиях и вынесли форму на первый экран. Запустились в 09:20 пятницы. К вечеру — 17 заявок, за первые 7 дней — 126, CPL просел до 612 ₽. На проде страница весила 138 кБ без кэша и открывалась за 1,6 секунды на среднем LTE. Чуть позже подтянули структурированные данные LocalBusiness и блок с реальными фото оценщиков — это добавило ещё 0,9 п.п. к конверсии из органики.
За последний год у меня было ещё два похожих проекта, один из них — для сервиса, который работает с выкупом и быстрой продажей машин. Мы договорились не городить «портал мечты»: один лендинг, аккуратно подсаженный на CRM, и жёсткая дисциплина по скорости. Там я впервые протестировал вариант без традиционной «Спасибо» страницы: показываем модалку и сразу даём второй CTA «скинуть фото авто в мессенджер» — 23% оставивших телефон кидали фото за 15 минут. Детальный разбор выложен на xn--80aeqpnjq.com, но суть в том, что победили не за счёт магии дизайна, а за счёт скучной инженерии: кэширование, антиспам и честные тексты без бахвальства.
Технические мелочи, которые делают погоду
— Предзагрузка важной картинки первого экрана. Обычно это фото на 60–120 кБ. Без preload браузер тратит драгоценные 200–300 мс на догадку.
— DNS‑prefetch и preconnect к домену коллтрекинга. Если у вас динамический номер, но первый запрос к стороннему домену уезжает в подземелье — готовьтесь к «тени» над кнопкой и лишним скроллам.
— Серверные заголовки: immutable для ассетов, короткий max‑age для HTML. Сжатие — Brotli на уровне 5–6, gz — запасной.
— Блокируем рендер только критическим CSS. Всё остальное — media=»print» + onload переключение, старый трюк, но на мобиле выдирает полсекунды.
— Логи ошибок на клиенте с сэмплингом 1%: хватает, чтобы поймать хрупкие места вроде падения маски телефона на редких Android.
Факапы, которые повторяют снова и снова
1) «Мы подключили reCAPTCHA v3, всё норм». Нет. Порог 0,5 по умолчанию у меня стабильно режет живых людей с защищённых корпоративных сетей. На «горячих» лендингах я держу 0,3 + honeypot‑поле + задержку в 800 мс перед сабмитом — и мусора меньше, и живые проходят.
2) «Сделаем мультишаговую форму, она психологически мягче». На бумаге — да, на мобиле — ад. Два шага ещё терпимо, три уже режут поток на 12–18%. Убрал мультишаг — получил рост заявок, а скептика уговорил A/B‑тестом 50/50 на 3 800 визитов.
3) «Красивый шрифт и фуллскрин‑видео на первом экране». Видео убивает LCP, особенно если кто‑то забывает poster и preload metadata. Один раз ловил 5,2 секунды LCP на 4G: видео 5 МБ в сапогах еще и с автоплеем. После вырезания — 1,9 с, конверсия +2,1 п.п.
4) «Давайте CTA повыше, а доверие ниже». Наоборот. Заголовок — цифры и выгода, рядом форма. Доверие (сертификаты, фото, короткие цитаты клиентов) — прямо тут же, в зоне первого скролла, а не в подвале, куда доходят 22%.
Трекинг без шпиономании
Сразу забиваю события: просмотреть первый экран, клик по телефону, фокус на поле телефона, сабмит, успешный сабмит, открытие мессенджера. Эти шесть точек превращают «конверсия упала» в понятный график: где именно растёт трение. Любимая находка прошлого лета — люди тыкали в кнопку «Оценить» и уходили. Оказалось, в мобильной версии лейбл поля закрывал цифры телефона на половину экрана. Исправили — возврат на 1,4 п.п. и минус 900 ₽ к CPL в RCA.
Если CRM нестабильна (а бывает), ставлю промежуточную очередь: ловлю форму на своём бэке, подтверждаю 200 OK пользователю за 150 мс, а потом уже пушу в CRM с повторными попытками. Иначе при каждом чихе их API вы будете сливать заявки молча, без шанса перезвонить.
Контент, который работает
Первый экран: «Оценим за 7 минут, приедем сегодня, расчёт сразу на месте». Ни слова про «лучшие, лидеры, семейные ценности». Подтягиваю микро‑калькулятор — ввёл год и марку, получил вилку. Люди любят контроль. Но не обещайте ерунду: если вилку рисуете «от 900 000», а реальная оценка 780 000 — получите свалку гневных звонков и репутацию на помойку.
Фото. Реальные. Снимки с парковки у офиса, телефон менеджера в кадре, грязный бампер — тоже реальный. Я как‑то попросил прислать «неидеальные» фото, и внезапно это сработало лучше, чем лощёная студия: времени на решение меньше, доверия — больше.
И напоследок — про домены и IDN
Русские домены удобны в рекламе, но в технике капризны. Следите, чтобы каноникал был в punycode, сертификаты — корректные, а редиректы не плясали между http/https и www/без‑www. Один «петляющий» редирект съедал у меня 320 мс на первом заходе — то самое время, за которое горячий пользователь решает: писать номер или нет.
Сайты под «горячие» заявки редко выигрывают красотой. Они выигрывают скоростью, внятной формой, честным текстом и дисциплиной. Всё остальное — фон. И если вы сейчас пилите очередной лендинг и сомневаетесь, что выкинуть — выкидывайте смелее. Ночью, под остывший американо, это спасает бюджеты лучше любого «креатива».