ROI - это единственная метрика, которая имеет значение
Вы потратили 500 000 рублей на сайт. Маркетолог показывает красивые графики: "Трафик вырос на 200%! CTR рекламы 3.5%! Показатель отказов снизился на 15%!" Звучит отлично. Но главный вопрос: эти 500 000 вернулись?
ROI (Return on Investment) - возврат на инвестиции. Самая важная метрика для бизнеса. Не клики, не трафик, не позиции в Яндексе - а деньги. Сколько рублей вы вложили и сколько получили обратно.
Формула ROI проста:
ROI = (Доход - Затраты) / Затраты * 100%
Вложили 100 000, заработали 300 000: ROI = (300 000 - 100 000) / 100 000 * 100% = 200%. Каждый вложенный рубль принёс 2 рубля прибыли.
Вложили 100 000, заработали 80 000: ROI = (80 000 - 100 000) / 100 000 * 100% = -20%. Убыток. Каждый рубль потерял 20 копеек.
Проблема в том, что большинство бизнесов не считают ROI от сайта и маркетинга. Они платят за рекламу, за SEO, за доработки сайта - и не знают, окупаются ли эти вложения. Это как вести бизнес не считая прибыль.
Что именно считать: три уровня ROI
ROI можно считать на трёх уровнях:
1. ROI от сайта целиком - окупился ли сайт как вложение?
Затраты: разработка + хостинг + поддержка + контент. Доход: все продажи/заявки, пришедшие через сайт.
2. ROI от рекламного канала - какой канал прибыльнее?
Отдельно считаем ROI от Яндекс Директа, SEO, email-рассылок, социальных сетей. Это показывает, куда вкладывать больше, а что отключить.
3. ROI от конкретной кампании - сработала ли акция?
Запустили "Чёрную пятницу" - потратили 50 000 на рекламу, заработали 200 000. ROI = 300%.
// Расчёт ROI на трёх уровнях
// Все расчёты можно делать в Excel или Google Sheets
// Но автоматизация через код - точнее и быстрее
// === Уровень 1: ROI от сайта целиком ===
function calculateWebsiteROI(period) {
// Затраты за период (месяц, квартал, год)
const costs = {
development: 500000, // Разработка сайта (разовая, делим на 36 месяцев)
hosting: 2000, // Хостинг в месяц
maintenance: 15000, // Поддержка и доработки в месяц
content: 10000, // Написание контента в месяц
// Итого: 500000/36 + 2000 + 15000 + 10000 = ~41 000 руб/мес
}
const totalCosts = costs.development / 36 + costs.hosting
+ costs.maintenance + costs.content
// Доход от сайта за период
// Все заказы/заявки, пришедшие через сайт
const revenue = {
onlineOrders: 850000, // Заказы через сайт (прямые продажи)
phoneFromSite: 120000, // Звонки с сайта (отслеживаем через коллтрекинг)
formSubmissions: 200000, // Заявки с форм (конвертированные в продажи)
// Итого: 1 170 000 руб/мес
}
const totalRevenue = revenue.onlineOrders
+ revenue.phoneFromSite + revenue.formSubmissions
// ROI
const roi = ((totalRevenue - totalCosts) / totalCosts) * 100
// (1 170 000 - 41 000) / 41 000 * 100 = 2 753%
// Каждый рубль, вложенный в сайт, приносит 27 рублей!
return {
costs: totalCosts,
revenue: totalRevenue,
profit: totalRevenue - totalCosts,
roi: roi.toFixed(0) + '%'
}
}
// === Уровень 2: ROI по каналам ===
function calculateChannelROI() {
const channels = [
{
name: 'Яндекс Директ',
costs: 80000, // Бюджет на рекламу + услуги настройки
revenue: 320000, // Продажи с рекламного трафика
// ROI = (320000 - 80000) / 80000 * 100 = 300%
},
{
name: 'SEO (органический трафик)',
costs: 40000, // SEO-специалист + контент
revenue: 450000, // Продажи с органического трафика
// ROI = (450000 - 40000) / 40000 * 100 = 1025%
// SEO - самый рентабельный канал!
},
{
name: 'Email-рассылки',
costs: 5000, // Сервис рассылок + время на письма
revenue: 180000, // Продажи из рассылок
// ROI = (180000 - 5000) / 5000 * 100 = 3500%
// Email - самый дешёвый канал
},
{
name: 'Социальные сети',
costs: 60000, // Таргетированная реклама + SMM
revenue: 95000, // Продажи из соцсетей
// ROI = (95000 - 60000) / 60000 * 100 = 58%
// Работает, но хуже других каналов
},
]
// Считаем ROI для каждого канала
return channels.map(channel => ({
...channel,
profit: channel.revenue - channel.costs,
roi: (((channel.revenue - channel.costs) / channel.costs) * 100).toFixed(0) + '%'
}))
// Вывод: перераспределить бюджет!
// Уменьшить расходы на соцсети (ROI 58%)
// Увеличить бюджет на SEO (ROI 1025%) и email (ROI 3500%)
}
Ключевые метрики: что считать кроме ROI
ROI - это итоговая метрика. Но чтобы понять, ПОЧЕМУ ROI такой и как его улучшить, нужны промежуточные метрики:
| Метрика | Формула | Что показывает | Пример |
|---|---|---|---|
| CAC (стоимость привлечения клиента) | Расходы на маркетинг / Кол-во клиентов | Сколько стоит один покупатель | 80 000 руб / 40 клиентов = 2 000 руб/клиент |
| LTV (пожизненная ценность клиента) | Средний чек * Частота покупок * Время | Сколько клиент принесёт за всё время | 5 000 * 4 раза/год * 3 года = 60 000 руб |
| CPA (стоимость целевого действия) | Расходы / Кол-во действий | Стоимость заявки/звонка | 80 000 / 200 заявок = 400 руб/заявка |
| CR (конверсия) | Покупатели / Посетители * 100% | Процент посетителей, которые купили | 40 / 2000 * 100% = 2% |
| AOV (средний чек) | Выручка / Кол-во заказов | Средняя сумма одного заказа | 320 000 / 40 = 8 000 руб |
| ROAS (возврат рекламных расходов) | Доход от рекламы / Расходы на рекламу | Сколько рублей приносит 1 рубль рекламы | 320 000 / 80 000 = 4x |
Главное соотношение: LTV должно быть минимум в 3 раза больше CAC. Если привлечение клиента стоит 2 000 руб, а он приносит 6 000+ руб за всё время - бизнес здоров. Если LTV < CAC - вы теряете деньги на каждом клиенте.
Атрибуция: как понять, откуда пришёл клиент
Самая сложная задача в расчёте ROI - понять, какой канал привёл клиента к покупке. Человек может увидеть вашу рекламу в Яндексе, потом зайти на сайт из поиска, потом получить email-рассылку, и только потом купить. Какой канал "виноват" в продаже?
Модели атрибуции:
- Последний клик - продажа засчитывается каналу, по которому клиент пришёл последним. Простая модель, но несправедливая (реклама привела клиента, а "победителем" стал email)
- Первый клик - продажа засчитывается каналу, через который клиент узнал о вас впервые. Тоже не идеально
- Линейная - продажа равномерно распределяется между всеми каналами. Справедливее, но не точнее
- С учётом позиции - первый и последний каналы получают по 40%, остальные делят 20%. Самая популярная модель в 2026
// Отслеживание источников трафика
// UTM-метки - способ пометить каждую ссылку
// UTM-метки добавляются к URL:
// https://myshop.ru/products?utm_source=yandex&utm_medium=cpc&utm_campaign=spring_sale
// utm_source - откуда пришёл (yandex, vk, telegram, email)
// utm_medium - тип трафика (cpc = реклама, organic = поиск, email = рассылка)
// utm_campaign - название кампании (spring_sale, black_friday)
// Яндекс Метрика автоматически собирает UTM-метки
// и показывает в отчёте "Метки UTM"
// Для звонков используйте коллтрекинг
// (Calltouch, Callibri, CoMagic)
// Каждому каналу присваивается свой номер телефона:
// Яндекс Директ: +7 (495) 123-01-01
// SEO (поиск): +7 (495) 123-02-02
// Соцсети: +7 (495) 123-03-03
// Когда клиент звонит - система знает, откуда он пришёл
// Для формы на сайте сохраняем UTM-метки:
function saveFormSubmission(formData) {
// Получаем UTM-метки из URL
const urlParams = new URLSearchParams(window.location.search)
const submission = {
name: formData.name,
phone: formData.phone,
message: formData.message,
// Сохраняем источник трафика
utmSource: urlParams.get('utm_source') || 'direct',
utmMedium: urlParams.get('utm_medium') || 'none',
utmCampaign: urlParams.get('utm_campaign') || 'none',
// Сохраняем страницу, с которой отправлена форма
pageUrl: window.location.pathname,
// Время отправки
createdAt: new Date(),
}
// Отправляем на сервер
fetch('/api/forms', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(submission)
})
}
// Теперь каждая заявка привязана к источнику
// и вы можете посчитать ROI по каналам
LTV: почему один клиент стоит больше, чем кажется
LTV (Lifetime Value) - пожизненная ценность клиента. Это сумма, которую клиент принесёт за всё время работы с вами. LTV - самая недооценённая метрика в бизнесе.
Пример:
Клиент интернет-магазина обуви покупает в среднем 2 пары в год, средний чек 8 000 руб. Средний срок "жизни" клиента - 4 года (потом уходит к конкуренту или перестаёт покупать онлайн).
LTV = 8 000 * 2 * 4 = 64 000 руб
Это значит, что привлечение этого клиента за 5 000 руб - отличная инвестиция (ROI = 64 000 / 5 000 = 1 180%). Но если смотреть только на первую покупку (8 000 руб при CAC 5 000 руб), кажется, что маржа маленькая.
Как увеличить LTV:
- Бонусная программа - клиенты с бонусами покупают на 40% чаще
- Email-рассылки - персональные предложения возвращают клиентов
- Личный кабинет - удобство повторных покупок
- Качественный сервис - довольный клиент рекомендует друзьям (бесплатное привлечение!)
Реальные примеры расчёта ROI
Вот три реальных примера из нашей практики (цифры округлены):
Пример 1: Интернет-магазин одежды
| Показатель | Значение |
|---|---|
| Стоимость разработки сайта | 400 000 руб |
| Ежемесячные расходы (хостинг + поддержка) | 20 000 руб |
| Яндекс Директ | 60 000 руб/мес |
| SEO | 30 000 руб/мес |
| Итого расходы за первый год | 400 000 + (20 000 + 60 000 + 30 000) * 12 = 1 720 000 руб |
| Выручка с сайта за первый год | 4 800 000 руб |
| Маржа (30%) | 1 440 000 руб |
| ROI первого года | (1 440 000 - 1 720 000) / 1 720 000 = -16% |
| Выручка за второй год (SEO + повторные клиенты) | 8 400 000 руб |
| Расходы за второй год (без разработки) | 1 320 000 руб |
| ROI второго года | (2 520 000 - 1 320 000) / 1 320 000 = 91% |
Первый год - небольшой убыток (нормально, сайт ещё набирает трафик). Второй год - прибыль 91%. С третьего года ROI растёт экспоненциально, потому что SEO-трафик бесплатный и растёт, а расходы на рекламу можно снижать.
Пример 2: Сервисная компания (ремонт техники)
| Показатель | Значение |
|---|---|
| Стоимость лендинга | 100 000 руб |
| Яндекс Директ | 40 000 руб/мес |
| Заявок с сайта | 120 шт/мес |
| Конверсия заявки в клиента | 30% |
| Клиентов в месяц | 36 |
| Средний чек | 5 000 руб |
| Выручка | 180 000 руб/мес |
| CPA (стоимость заявки) | 40 000 / 120 = 333 руб |
| CAC (стоимость клиента) | 40 000 / 36 = 1 111 руб |
| ROAS | 180 000 / 40 000 = 4.5x |
Каждый рубль рекламы приносит 4.5 рубля выручки. При марже 50% прибыль = 90 000 - 40 000 = 50 000 руб/мес чистой прибыли только с рекламы.
Пример 3: B2B-компания (оптовые продажи)
| Показатель | Значение |
|---|---|
| Стоимость сайта | 600 000 руб |
| SEO-продвижение | 50 000 руб/мес |
| Заявок с сайта | 15 шт/мес |
| Конверсия в клиента | 20% (3 клиента/мес) |
| Средний чек первого заказа | 150 000 руб |
| LTV клиента (3 года) | 1 800 000 руб |
| CAC | 50 000 / 3 = 16 667 руб |
| LTV / CAC | 1 800 000 / 16 667 = 108x |
В B2B один клиент может окупить год SEO-продвижения. LTV/CAC = 108 - фантастический показатель. Это потому что B2B-клиенты покупают регулярно на большие суммы.
Дашборд ROI: что отслеживать каждый месяц
Создайте простую таблицу (Excel, Google Sheets), которую заполняете каждый месяц:
// Ежемесячный дашборд ROI
// Заполняйте каждый первый день месяца
const monthlyReport = {
month: 'Март 2026',
// === РАСХОДЫ ===
costs: {
yandexDirect: 60000, // Бюджет Яндекс Директа
seo: 30000, // SEO-продвижение
hosting: 2000, // Хостинг
maintenance: 15000, // Поддержка сайта
email: 3000, // Сервис рассылок
total: 110000, // Итого расходов
},
// === ДОХОДЫ ===
revenue: {
fromDirect: 280000, // Продажи с Яндекс Директа
fromSEO: 350000, // Продажи с органического трафика
fromEmail: 120000, // Продажи из email-рассылок
fromDirect_visits: 80000, // Прямые заходы (клиенты, которые знают адрес)
total: 830000, // Итого выручки
},
// === КЛЮЧЕВЫЕ МЕТРИКИ ===
metrics: {
visitors: 12500, // Посетителей на сайте
leads: 180, // Заявок/заказов
customers: 65, // Покупателей
conversion: '1.44%', // CR = 180 / 12500
avgOrderValue: 12769, // Средний чек = 830000 / 65
cac: 1692, // CAC = 110000 / 65
},
// === ROI ===
roi: {
overall: '654%', // (830000 - 110000) / 110000
yandexDirect: '367%', // (280000 - 60000) / 60000
seo: '1067%', // (350000 - 30000) / 30000
email: '3900%', // (120000 - 3000) / 3000
}
}
// Сравнивайте с предыдущими месяцами:
// Если ROI падает 3 месяца подряд - нужно искать причину
// Если один канал стабильно убыточен - перераспределяйте бюджет
// Если CAC растёт - либо конкуренция выросла, либо реклама "устала"
Как мы помогаем отслеживать ROI
В Enot Software мы не просто "делаем сайт и уходим". Мы встраиваем систему измерения ROI прямо в проект:
- Аналитика с первого дня - Яндекс Метрика с целями, e-commerce модуль, UTM-разметка всех рекламных каналов. Вы видите результат с первого заказа
- Коллтрекинг - помогаем подключить отслеживание звонков, чтобы знать, какой канал привёл звонящего клиента
- CRM-аналитика - если у вас наша кастомная CRM, ROI считается автоматически: по каналам, по менеджерам, по товарным группам. AI подсказывает, куда перераспределить бюджет
- Дашборд руководителя - ключевые метрики (выручка, ROI, CAC, LTV, конверсия) на одном экране. Обновляется в реальном времени
- Ежемесячный отчёт - не "отчёт ради отчёта", а анализ с рекомендациями: "Яндекс Директ: ROI упал на 15%, причина - выросла конкуренция по запросу X. Рекомендуем: перераспределить 20К с этой кампании на email-рассылки (ROI 3500%)"
Наша цель - чтобы каждый вложенный рубль приносил максимальную отдачу. Мы заинтересованы в вашем росте, потому что довольный клиент - это долгосрочное сотрудничество.
Ошибки при расчёте ROI
1. Не учитывают все расходы
Считают только рекламу, забывая про хостинг, поддержку сайта, зарплату менеджеров, комиссию платёжных систем. Реальный ROI ниже, чем кажется.
2. Не учитывают LTV
Смотрят только на первую покупку. "CAC = 3 000, средний чек = 4 000, маржа 30% = 1 200 руб. Убыток!" Но если клиент купит 10 раз за 3 года - это 40 000 выручки с одного клиента.
3. Не разделяют каналы
Считают общий ROI, не понимая, что Яндекс Директ убыточен, а SEO сверхприбыльный. В итоге продолжают вкладывать в убыточный канал.
4. Ждут мгновенного ROI от SEO
SEO окупается через 6-12 месяцев. Если измерять ROI от SEO за первый месяц - он будет отрицательным (расходы есть, трафик ещё нет). Это нормально.
5. Игнорируют "невидимые" конверсии
Клиент увидел сайт в поиске, запомнил название, и через неделю позвонил по телефону с визитки. В аналитике эта продажа не привязана к сайту. Но сайт сыграл ключевую роль. Используйте промокоды, коллтрекинг и опросы "Откуда вы о нас узнали?" чтобы отслеживать такие конверсии.
Как увеличить ROI от сайта
ROI можно увеличить двумя способами: увеличить доход или снизить расходы. Вот конкретные действия:
Увеличить доход:
- Улучшить конверсию сайта - увеличение конверсии с 1% до 2% удваивает доход при том же трафике. Тестируйте: кнопки, заголовки, формы, фото
- Увеличить средний чек - блоки "С этим покупают", "Апгрейд", бесплатная доставка от определённой суммы
- Увеличить LTV - бонусная программа, email-рассылки, личный кабинет, повторные продажи
- Масштабировать работающие каналы - если SEO даёт ROI 1000%, вложите больше в контент и оптимизацию
Снизить расходы:
- Отключить убыточные каналы - если соцсети дают ROI 10%, а SEO 500% - перераспределите бюджет
- Оптимизировать рекламу - минус-слова, точный таргетинг, A/B-тесты объявлений
- Автоматизировать - автоматические email вместо ручных звонков, чат-бот вместо менеджера для типовых вопросов
- Инвестировать в SEO - органический трафик бесплатный. Чем больше доля SEO в общем трафике, тем ниже средняя стоимость клиента
Итого: считайте деньги, а не клики
ROI - это язык, на котором должен говорить каждый бизнес. Не "у нас 10 000 посетителей" (бесполезная метрика), а "сайт принёс 830 000 руб при расходах 110 000, ROI = 654%".
Начните с простого: создайте таблицу, записывайте расходы и доходы каждый месяц, считайте ROI по каналам. Через 3 месяца вы будете точно знать, куда вкладывать деньги, а что отключить.
Мы в Enot Software не просто делаем сайты - мы делаем сайты, которые приносят деньги. Встраиваем аналитику, настраиваем отслеживание конверсий, помогаем считать ROI и оптимизировать маркетинговые расходы. Наши клиенты точно знают, сколько приносит каждый вложенный рубль. Свяжитесь с нами - мы покажем, как превратить ваш сайт из "расхода" в самую прибыльную инвестицию в бизнесе.