Чат-бот на сайте: когда помогает, когда бесит и что он делает со скоростью
Разбираем виджеты чатов и ботов для сайта услуг: сценарии, влияние на конверсию и Core Web Vitals, персональные данные в переписке.
Содержание
Под словом чат-бот продают три разные вещи: живой чат с оператором за 1 000-1 800 рублей в месяц, сценарный бот за 1 200-3 000 плюс настройка, и своя разработка за 40-120 тысяч разово. Виджет весом в полмегабайта роняет мобильную скорость, поэтому его грузят по клику, а не сразу.
Чат бот на сайте продают одинаково всем: круглосуточный приём заявок, минус нагрузка на менеджера, плюс конверсия. На практике я вижу два исхода. Либо виджет действительно снимает половину однотипных вопросов, либо он висит мёртвым грузом в 600 килобайт, роняет мобильную скорость и раздражает людей всплывающим окном на третьей секунде. Разница не в бренде виджета, а в том, кто и зачем его ставил. Ниже разберу, чем живой чат отличается от бота, что происходит со скоростью после установки, как не влететь по 152-ФЗ с перепиской и как понять по цифрам, окупается эта штука или нет.

Веду абонентку шестой год, ставил и снимал эти виджеты десятками. Снимал, честно говоря, чаще.
Три разных зверя под одним словом
Когда клиент говорит «поставь нам чат-бота», он может иметь в виду три технически несовместимые вещи. Стоят они по-разному, ломаются по-разному, и польза у них тоже разная.
Живой чат. Окно на сайте, в котором сидит человек: Jivo, Битрикс24 Открытые линии, Talk-Me, Chatra. Бот тут в лучшем случае здоровается и спрашивает имя. Цена в 2026 году порядка 1 000-1 800 рублей в месяц за оператора, у Битрикс24 входит в тариф. Работает ровно настолько, насколько дисциплинирован человек по ту сторону.
Скриптовый бот. Дерево кнопок и заранее написанных ответов. Никакого интеллекта: клиент жмёт «Узнать цену», бот выдаёт заготовленный текст и предлагает оставить телефон. Собирается в конструкторе (Salebot, Botmother, встроенные сценарии Jivo) за 1 200-3 000 рублей в месяц плюс разовая настройка сценария. Для сайта услуг с десятком типовых вопросов этого обычно хватает.
Бот на языковой модели. Отвечает свободным текстом, опираясь на вашу базу знаний. Подключается к YandexGPT или GigaChat, оплата за токены (ориентир: единицы рублей за тысячу запросов при коротких ответах), сверху разработка сценария, загрузка базы и обвязка. Разово это 40 000-120 000 рублей, если делать нормально, с проверкой ответов и запретом фантазировать про цены и сроки.
Последний вариант эффектно выглядит на демо и создаёт новый класс проблем. Модель охотно придумывает то, чего у вас нет: скидку, филиал в соседнем городе, срок выезда завтра. Для сайта на десять страниц это дорогое развлечение. Я такое ставил дважды и оба раза потом дописывал жёсткие ограничения на темы, иначе бот начинал продавать услуги, которых у клиента не было в прайсе.
| Тип | Разово | В месяц | Кому подходит |
|---|---|---|---|
| Живой чат с оператором | 0-5 000 | 1 000-1 800 за оператора | Есть человек, который реально сидит в чате |
| Скриптовый бот на кнопках | 8 000-25 000 | 1 200-3 000 | 5-15 повторяющихся вопросов, ответы не меняются |
| Бот на языковой модели | 40 000-120 000 | от 2 000 плюс токены | Большая база знаний, поток обращений от 300 в месяц |
| Форма плюс доставка в мессенджер | 5 000-12 000 | 0 | Сайт услуг с 10-40 заявками в месяц |
Нижняя строка выглядит скучно, но именно она чаще всего оказывается правильным ответом для малого бизнеса. К ней вернусь ниже.
Где чат снимает нагрузку, а где отгоняет клиента
Полезен чат ровно в одном сценарии: у вас есть вопросы, которые задают постоянно, ответы на них не меняются месяцами, и человек не хочет ради них звонить. Часы работы, адрес и парковка, укладывается ли услуга в бюджет, сколько ждать выезда, что делать с гарантией. Такие вопросы бот закрывает без потери качества, и менеджер разгружается заметно.
Дальше начинается территория, где виджет работает против вас.
Всплывающее окно на третьей секунде на мобильном. Экран небольшой, окно занимает половину, кнопка закрытия мелкая. У клиента с натяжными потолками я такое видел вживую: после включения автооткрытия отказы на мобильном выросли примерно на четверть, при этом число диалогов почти не изменилось. Вернули задержку в 40 секунд и триггер по прокрутке до половины страницы, отказы вернулись к прежним значениям.
Бот, который не понимает вопрос и водит по кругу. Три раза «Уточните запрос», потом «Соединяю с оператором», потом тишина. Человек уходит и больше не возвращается, а вы даже не узнаете об этом: в статистике будет числиться диалог.
Обещание ответа, которого нет. Виджет пишет «Обычно отвечаем за 2 минуты», а на деле оператор заходит в панель раз в день. Это хуже, чем не иметь чата вовсе: клиент ждал, ему не ответили, теперь у него личное мнение о вашей компании.
Мой критерий простой. Если нет человека, который открывает панель чата хотя бы дважды в день, живой чат ставить не надо. Ставьте кнопку «Написать в Телеграм» и форму, они честнее.
Что виджет делает со скоростью
Тут начинается моя любимая часть, потому что владельцы почти никогда не связывают внезапно просевшую мобильную скорость с виджетом, который поставили полгода назад.
Загрузчик стороннего чата весит немного, 15-25 КБ. Но он тянет за собой основной пакет, а это уже 300-900 КБ в зависимости от сервиса, плюс постоянное соединение по вебсокету, плюс запросы к своему API каждые несколько секунд. На мобильном канале и на слабом телефоне это чувствуется.
По моим замерам на типовом сайте услуг картина такая:
- Jivo с настройками по умолчанию: около 380 КБ дополнительного трафика, PageSpeed на мобильном падает на 8-14 баллов;
- Битрикс24 Открытые линии: 600-900 КБ, падение на 15-25 баллов, на дешёвом хостинге ещё и заметная задержка отрисовки;
- скриптовый бот в конструкторе: 150-300 КБ, но часто с собственным шрифтом и иконочным набором, которые тянутся отдельно.
На LCP хорошо настроенный виджет обычно не влияет: он подключается асинхронно и не блокирует отрисовку главного экрана. Бьёт он по другому. Скрипт разбирается и исполняется в основном потоке, растёт время блокировки, и первое же нажатие на кнопку или пункт меню обрабатывается с задержкой. Это INP, метрика отзывчивости, и она входит в Core Web Vitals. Пользователь описывает это словами «сайт тупит», хотя визуально всё загрузилось быстро.
Лечится это фасадом. Свою кнопку чата рисуете сами (кружок в углу, 2 КБ разметки и стилей), а настоящий скрипт подгружаете только после того, как человек по ней кликнул, либо через несколько секунд бездействия. Для 95 процентов посетителей, которые в чат не пишут, виджет вообще не загружается.
<button id="chat-fab" type="button" aria-label="Открыть чат">Чат</button>
<script>
(function () {
var loaded = false;
function loadWidget() {
if (loaded) return;
loaded = true;
var s = document.createElement('script');
s.src = 'https://code.jivo.ru/widget/XXXXXXXX';
s.async = true;
document.head.appendChild(s);
}
document.getElementById('chat-fab').addEventListener('click', loadWidget);
// запасной вариант: подгрузить в простое, если браузер поддерживает
if ('requestIdleCallback' in window) {
requestIdleCallback(function () { setTimeout(loadWidget, 8000); }, { timeout: 15000 });
}
})();
</script>
На одном интернет-магазине такой фасад дал 68 против 84 баллов на мобильном PageSpeed без единой другой правки. Подробнее про вес популярных виджетов и замеры до и после я разбирал в статье про виджеты Jivosite и Битрикс24 и их влияние на скорость.
Отдельно про то, чего делать нельзя: заворачивать виджет чата в defer и надеяться, что этого достаточно. defer откладывает загрузчик, а не всё остальное, что он потом притащит. Экономия получается на уровне погрешности.
Персональные данные в переписке
Это самый недооценённый пункт. Форму на сайте владельцы худо-бедно оформляют по закону, а чат считают чем-то вроде телефона. Юридически он ближе к форме.
В переписке человек оставляет имя, телефон, почту, иногда адрес и подробности заказа. Это персональные данные, и вы их оператор. Отсюда несколько практических следствий.
Согласие нужно до начала диалога. У всех нормальных виджетов есть форма преконтакта: имя, контакт и чекбокс со ссылкой на политику конфиденциальности. Чекбокс должен быть непроставленным по умолчанию, а текст рядом с ним внятным: на обработку каких данных и для чего. Если виджет не умеет добавлять чекбокс, это повод его не ставить.
Переписка хранится не у вас. Сервер провайдера чата держит историю диалогов месяцами. Значит, провайдер выступает обработчиком по вашему поручению, и это поручение должно быть зафиксировано в договоре с ним, с обязанностью соблюдать конфиденциальность и требования к безопасности. У российских сервисов это обычно есть в оферте, у зарубежных виджетов вида Tawk.to или Crisp данные уезжают за границу, и вы получаете трансграничную передачу со всеми её процедурами.
Уведомление в РКН должно учитывать чат. Если вы подавали уведомление об обработке данных, а потом поставили виджет, перечень собираемых данных и способ обработки изменились. Это отдельная точка сбора, её нужно указать. Общая логика по обязанностям владельца сайта разобрана в материале про 152-ФЗ для сайта малого бизнеса, тут добавлю только то, что относится к чату.
Пересылка диалогов в мессенджер это тоже передача. Схема «все обращения падают в Телеграм менеджеру» удобна и повсеместна. Просто держите в голове, что канал зарубежный, и не гоняйте через него ничего чувствительнее имени и телефона. Паспортные данные, медицинские подробности, номера карт в чате быть не должны в принципе, и бот должен уметь на такое отвечать отказом.
Практический минимум, который я прошу настроить на каждом проекте с чатом:
- чекбокс согласия в преконтактной форме, ссылка на политику рабочая, не на главную;
- срок хранения переписки в панели виджета выставлен явно (обычно 6-12 месяцев), а не «вечно»;
- в политику конфиденциальности дописан абзац про чат: какие данные, зачем, кому передаются;
- в самом боте запрет спрашивать документы, реквизиты карт и данные о здоровье.
Свой чат без сторонних сервисов
Для сайта услуг с 10-40 обращениями в месяц сторонний виджет часто избыточен. Он стоит денег, тянет чужой JavaScript, хранит вашу переписку у себя и требует, чтобы кто-то в него заходил.
Альтернатива, которую я ставлю чаще всего: обычная форма в модальном окне плюс мгновенная доставка заявки в Телеграм и на почту. Клиент пишет вопрос свободным текстом, заявка через две секунды у владельца в телефоне, тот отвечает по телефону или в мессенджере. Диалога на сайте нет, зато нет и повода объяснять, почему на сообщение никто не ответил.
Технически это один обработчик на PHP и вызов Bot API:
$text = "Вопрос с сайтаn"
. "Имя: {$name}n"
. "Телефон: {$phone}n"
. "Страница: {$page}n"
. "Сообщение: {$message}";
$ch = curl_init("https://api.telegram.org/bot{$token}/sendMessage");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 5,
CURLOPT_POSTFIELDS => [
'chat_id' => $chatId,
'text' => $text,
],
]);
$response = curl_exec($ch);
Таймаут в 5 секунд тут не для красоты: если Телеграм недоступен, форма не должна висеть и пугать посетителя. Заявку в этом случае пишем в лог и дублируем письмом, чтобы она не потерялась. Подробная сборка со всеми проверками и обработкой ошибок разобрана в статье про интеграцию формы с Телеграм-ботом.
Что вы теряете: онлайн-диалога в окне сайта не будет, истории переписки у клиента тоже. Что получаете: ноль рублей в месяц, ноль стороннего JavaScript, данные лежат на вашем хостинге, и никакого договора поручения с чужим сервисом.
Как понять, окупается ли он
Через месяц после установки владелец обычно говорит «вроде пишут». Это не измерение. Измерение выглядит так.
Ставим три цели в Яндекс Метрике: открытие чата, отправка первого сообщения, оставленный контакт. Первые две показывают интерес, третья считается лидом.
// открытие виджета
ym(XXXXXXXX, 'reachGoal', 'chat_open');
// отправлено первое сообщение
ym(XXXXXXXX, 'reachGoal', 'chat_message');
// клиент оставил телефон или почту
ym(XXXXXXXX, 'reachGoal', 'chat_lead');
Дальше смотрим на две вещи. Первая: какая доля обращений пришла из чата, а какая из формы и звонков. Если чат даёт меньше 10 процентов при заметном весе скрипта, он не окупается. Вторая: качество. Считаю простое отношение числа диалогов к числу сделок. У меня по клиентам оно обычно в диапазоне 1 к 12 для чата и 1 к 4 для формы обратной связи. Чат ловит больше праздного интереса, это нормально, но если разрыв слишком большой, то бот собирает не заявки, а вопросы про режим работы.
Как правильно заводить цели, чтобы они не считали лишнего и не ломались после правки шаблона, я описывал в разборе про цели Метрики для сайта услуг.
Ещё стоит открыть Вебвизор и посмотреть десяток записей сессий, где чат открывали. Там сразу видно, кто ушёл после первого ответа бота и на каком именно месте сценарий не сработал.
Чек-лист перед внедрением
Прогоняю его на каждом проекте, где владелец просит поставить чат.
- Есть человек, который открывает панель минимум дважды в день? Если нет, ставим форму, а не чат.
- Собран список повторяющихся вопросов за последние три месяца. Меньше пяти вопросов означает, что боту нечего отвечать.
- Виджет умеет показывать чекбокс согласия со ссылкой на политику.
- Известно, где физически хранится переписка и на какой срок.
- Автооткрытие отключено или отложено минимум на 30-40 секунд, на мобильных лучше по прокрутке.
- Скрипт грузится по клику через фасад, а не в шапке страницы.
- Замерена мобильная скорость до установки, чтобы потом было с чем сравнивать.
И после установки, через две недели:
- Мобильный PageSpeed не просел больше чем на 5 баллов относительно замера до.
- INP в отчёте Метрики или в Search Console не ушёл в жёлтую зону.
- Цели в Метрике фиксируются, числа сходятся с панелью виджета.
- Прочитаны все диалоги за две недели, найдены места, где бот не понял вопрос.
- Проверено, что заявки из чата реально доходят до того, кто их обрабатывает.
Пункт про прочитанные диалоги обычно самый полезный. Первые две недели показывают, о чём люди спрашивают на самом деле, и часто это совсем не то, что владелец закладывал в сценарий.
Что бы я сделал на вашем месте
Если сайт услуг с потоком до полусотни обращений в месяц: форма с доставкой в Телеграм и кнопка «Написать в мессенджер». Никакого виджета, ноль рублей абонплаты, скорость не страдает.
Если обращений больше и есть живой человек в поддержке: живой чат российского сервиса с отложенной загрузкой и скриптовым приветствием на 3-5 кнопок. Языковую модель прикручивать только тогда, когда база вопросов устоялась и её есть чем наполнять.
Если чат уже стоит и вы читаете это после того, как мобильная скорость просела: сначала замерьте вклад виджета через режим блокировки запросов в DevTools, потом решайте, чинить фасадом или снимать совсем. Второе тоже нормальный вариант, я так делал не раз.
Настройка отложенной загрузки виджета, целей в Метрике и формы с доставкой в мессенджер входит в абонентское обслуживание, разбивку по пакетам смотрите в тарифах. Если чат уже установлен и утянул скорость вниз, напишите через форму на главной: замерю вклад виджета, покажу цифры до и после, и мы решим, оставлять его или менять на что-то легче.
Частые вопросы
Нужен ли чат-бот на сайте
Нужен, если однотипных вопросов много и на них реально кто-то отвечает. Если оператор заходит раз в день, виджет с надписью про ответ за две минуты работает против вас.
Сколько стоит чат на сайте
Живой чат с оператором 1 000-1 800 рублей в месяц за рабочее место. Сценарный бот 1 200-3 000 рублей в месяц плюс разовая настройка. Своя разработка 40-120 тысяч рублей единоразово.
Как чат влияет на скорость сайта
Плохо, если грузится сразу: виджеты весят сотни килобайт и тянут свои шрифты и картинки. Лечится отложенной загрузкой по прокрутке или по клику на кнопку.
Что с персональными данными в переписке
Переписка это данные посетителя, и сервис чата их обрабатывает. Значит он должен быть указан в политике конфиденциальности, а если сервер за рубежом, добавляется трансграничная передача.