Сколько стоит доработка сайта: как оценивают задачи и считают цену
Сколько стоит доработка сайта — вопрос, на который честный подрядчик не отвечает цифрой с ходу. «Добавить поле в форму» может обойтись в 5 000 ₽, а может в 30 000 ₽, и обе оценки будут корректными. Разница не в жадности исполнителя, а в том, что стоит за формулировкой: на каком движке сайт, кто и как писал код, куда уходят данные и что сломается, если ошибиться. Разбираем, как подрядчик оценивает задачу, из чего складывается итоговая сумма, сколько часов занимают типовые доработки и как проверить, что оценка адекватна.
Почему у доработки нет «прайса за кнопку»
У нового сайта есть техническое задание и чистый лист: разработчик сам выбирает архитектуру и знает каждую строку. При доработке он заходит в чужую систему, которую годами меняли разные люди. Видимая часть задачи — кнопка, поле, фильтр — обычно занимает меньше половины времени. Остальное уходит на то, чтобы понять, как устроено то, что уже есть, встроиться в это без поломок и проверить соседние сценарии.
Поэтому цена доработки — это часы × ставка, где ставка более-менее стабильна, а часы зависят от состояния проекта. Как формируется сама ставка и почему час студии дороже часа фрилансера, мы подробно разбирали в статье о стоимости часа программиста. Здесь сосредоточимся на второй переменной — количестве часов.
Как подрядчик оценивает задачу: декомпозиция, риски, буфер
Грамотная оценка — это не «на глаз», а короткая процедура. Её делают даже для задачи на пару часов, просто быстро.
- Уточнение результата. Что должно происходить после доработки, для кого, в каких сценариях. «Добавить поле “ИНН” в заказ» — это только отображение или ещё проверка контрольной суммы, передача в 1С и вывод в счёте?
- Разведка в коде. Разработчик смотрит, где реализован сценарий: стандартный компонент или переписанный шаблон, есть ли репозиторий, тестовая копия, какие версии CMS и PHP. Для незнакомого проекта это 1–4 часа, иногда отдельный платный этап.
- Декомпозиция. Задача дробится на подзадачи по 2–8 часов: вёрстка, серверная логика, миграция данных, интеграция, тесты, выкладка. Всё, что крупнее 8–16 часов, дробят дальше — большие куски оцениваются хуже всего.
- Оценка по трём точкам. Для каждой подзадачи — оптимистичный, реалистичный и пессимистичный сценарий. Классическая формула PERT: (О + 4Р + П) / 6. Например, передача заявок в CRM: 4, 8 и 20 часов → (4 + 32 + 20) / 6 ≈ 9,3 часа.
- Риски и буфер. Отдельно выписываются неизвестные: чужой API без документации, отсутствие тестового окружения, согласования с третьей стороной. На них закладывают буфер. Это рыночный ориентир, а не норма: при детально описанной задаче — около 15–25% к сумме, при размытом описании или легаси без истории изменений — 30–50%.
Точность зависит от того, на каком этапе вас оценивают. По одному абзацу в мессенджере ошибка легко составляет два-три раза в любую сторону, после разбора кода и уточнения требований — 10–25%. Если подрядчик называет точную сумму, не заглянув в проект, он либо заложил большой запас, либо пересмотрит цифру позже.
Одна и та же «кнопка» за 5 000 и 30 000 ₽: четыре примера
Внешне одинаковые задачи на разных проектах различаются по трудоёмкости в 5–10 раз. Вот как это выглядит на практике.
Форма обратной связи
Дешёвый вариант: на WordPress стоит Contact Form 7, нужно добавить поле и поменять адрес получателя — час-полтора. Дорогой вариант: форма самописная, отправка идёт через устаревшую библиотеку, письма падают в спам, а заявку нужно ещё передать в Битрикс24 с UTM-метками и защитить от ботов. Это уже 10–14 часов с тестами.
Фильтр в каталоге
На 1С-Битрикс со стандартным умным фильтром и аккуратными свойствами добавить фильтр по бренду — пара часов, включая кеш. Если бренды разбросаны по нескольким полям, часть каталога приходит из 1С с другими названиями, а шаблон фильтра переписан прошлым подрядчиком, сначала придётся нормализовать данные и разобраться с кастомным кодом — 15–30 часов.
Интеграция с внешним сервисом
Подключить эквайринг готовым модулем для актуальной версии CMS — несколько часов на настройку и тестовые платежи. Сделать то же для самописного магазина с нестандартной логикой заказов — это обработка уведомлений об оплате, возвраты, чеки по 54-ФЗ, защита от повторных вебхуков. Ошибка здесь стоит денег, поэтому и тестирования больше: 20–40 часов.
Изменение в корзине
«Добавить скидку 5% при заказе от 10 000 ₽» в магазине на Битрикс решается правилом корзины без программирования. На самописном движке, где цена считается в трёх местах (корзина, оформление, письмо), а заказы уходят в 1С, та же скидка требует правок во всех точках и повторной проверки обмена. Разница — от 1 до 20+ часов.
Типовые доработки сайта: сколько часов занимают
Ниже — порядок трудозатрат по типовым задачам из нашей практики. Это ориентир, а не прайс: итог зависит от CMS, объёма данных и требований. Денежная колонка посчитана по ставке 2 500 ₽/ч и показывает разброс от лучшего случая до худшего.
| Доработка | Чистый код, ч | Легаси / чужой код, ч | Ориентир при 2 500 ₽/ч |
|---|---|---|---|
| Новое поле в форме заявки + письмо менеджеру | 2–4 | 6–12 | 5 000–30 000 ₽ |
| Передача заявок с формы в CRM (amoCRM, Битрикс24) | 6–12 | 16–30 | 15 000–75 000 ₽ |
| Новое свойство товара и фильтр по нему в каталоге | 4–10 | 16–40 | 10 000–100 000 ₽ |
| Правка в корзине: поле, способ доставки, нестандартная скидка | 8–24 | 24–60 | 20 000–150 000 ₽ |
| Онлайн-оплата (ЮKassa, Т-Банк): модуль или интеграция по API | 4–12 | 20–40 | 10 000–100 000 ₽ |
| Расчёт доставки СДЭК по API на оформлении заказа | 12–30 | 30–60 | 30 000–150 000 ₽ |
| Калькулятор стоимости на странице | 16–40 | 30–60 | 40 000–150 000 ₽ |
| Новый раздел или тип страниц по готовому макету | 12–30 | 24–50 | 30 000–125 000 ₽ |
| Доработка обмена с 1С (новые поля, статусы) | 16–40 | 40–100 | 40 000–250 000 ₽ |
| Базовый личный кабинет: профиль, история заказов | 40–80 | 80–160 | 100 000–400 000 ₽ |
| Обновление PHP и ядра CMS с проверкой сайта | 8–24 | 40–120 | 20 000–300 000 ₽ |
Видно, что состояние кода влияет на сумму сильнее, чем сама задача. Актуальные условия и минимальный порог для разовых работ смотрите на странице доработки сайта — здесь мы намеренно не дублируем прайс.
Из чего складывается оценка: не только программирование
В оценке, кроме собственно программирования, есть этапы, которые заказчик часто не видит. Ориентировочная раскладка для средней задачи:
- Анализ и разведка кода — 10–20%. Для чужого проекта в первый раз — до 30%.
- Разработка — 40–60%: вёрстка, логика, миграции данных.
- Тестирование — 15–25%. Чем ближе к деньгам (оплата, заказы, остатки), тем больше.
- Выкладка и контроль — 5–10%: перенос на боевой сайт, сброс кеша, проверка логов, план отката.
- Коммуникация — 5–10%: уточнения, демонстрация, правки по замечаниям.
Если подрядчик оценивает только строку «разработка», это не экономия: остальные этапы всё равно случатся, просто позже и в виде внепланового счёта или бага на живом сайте.
Что удорожает доработку
- Легаси и технический долг. Старая версия PHP, CMS без обновлений, код без структуры. Каждая правка тянет за собой исправление соседних мест. Как измерить этот долг в деньгах, мы разбирали в материале про технический долг.
- Чужой код без документации. Первые задачи на новом проекте всегда дороже: разработчик тратит время на изучение. По мере погружения стоимость однотипных задач снижается.
- Нет тестовой копии и репозитория. Разворачивать копию сайта приходится в рамках первой задачи — это 2–8 часов. Правки «сразу на живом сайте» дешевле только на бумаге.
- Правки ядра CMS. Если прошлый подрядчик менял файлы ядра Битрикс или WordPress, обновления их затирают. Прежде чем что-то добавлять, эти правки нужно вынести в модули или дочернюю тему.
- Внешние системы. 1С, CRM, службы доставки, платёжные шлюзы — у каждой свои форматы, лимиты и песочницы. Интеграция почти всегда дороже, чем такая же по объёму правка внутри сайта.
- Срочность и размытые требования. Задача «на вчера» сдвигает другие работы, а требования, которые меняются по ходу, увеличивают часы на переделки.
Модели оплаты доработок: разовая задача, пакет часов, абонемент
| Модель | Как работает | Кому подходит |
|---|---|---|
| Разовая задача по смете | Оценка, фиксированная сумма, оплата по факту сдачи или по вехам | Редкие доработки, понятный объём |
| Почасовая оплата | Оплата фактических часов по отчёту, с предварительной оценкой каждой задачи | Поток мелких задач, требования уточняются по ходу |
| Пакет часов | Предоплаченный объём часов в месяц, остаток часто переносится | Регулярные правки, нужен предсказуемый бюджет |
| Абонемент с поддержкой | Часы на доработки плюс мониторинг, бэкапы, обновления и время реакции по SLA | Сайт — канал продаж, простой стоит денег |
Для одной-двух задач в год абонемент избыточен. Если же доработки идут каждый месяц, выгоднее абонентская поддержка сайта: разработчик уже знает проект, и каждая следующая задача оценивается и делается быстрее. Плюсы и минусы фикса и почасовой оплаты подробно разобраны в статье Fixed price или Time & Material.
Как проверить оценку подрядчика
Если оценка кажется завышенной или, наоборот, подозрительно низкой, задайте несколько вопросов:
- Какие подзадачи входят и сколько часов на каждую? Нет разбивки — нет предмета для разговора.
- Что заложено на тестирование и выкладку? Если ноль, это риск, а не экономия.
- Какие допущения сделаны? Например, «API CRM работает по документации», «тестовая копия есть». Если допущение не подтвердится, как изменится цена?
- Есть ли вариант дешевле? Хороший подрядчик предложит альтернативу: настройку вместо программирования, готовый модуль вместо своего, поэтапный запуск.
- Сколько стоит разведка отдельно? Для сложного чужого проекта разумно сначала оплатить диагностику на 2–6 часов и получить точную смету.
Полезно запросить оценку у двух-трёх исполнителей по одному и тому же описанию. Разброс в 1,5–2 раза нормален. Разница в 5 раз обычно означает, что кто-то неверно понял задачу или не учёл тестирование. Чтобы все считали одно и то же, опишите задачу письменно: цель, сценарии, данные, критерии приёмки — подробнее в статье о постановке задач программисту. Если сомнения серьёзные, закажите независимый аудит кода: он покажет, насколько проект сложен на самом деле.
Ошибки заказчика, из-за которых доработка дорожает
- Одна сумма без разбивки. Невозможно понять, за что вы платите, и спорить на приёмке тоже не о чем.
- Выбор самой низкой цены. Низкая оценка часто означает, что не учтены анализ и тесты, — их стоимость вернётся счётом за исправления.
- Задачи по одной в мессенджере. Десять мелких правок по отдельности стоят дороже, чем те же правки пакетом: каждый раз разработчик заново входит в контекст.
- Нет доступа к репозиторию и хостингу. Поиск доступов и восстановление копии оплачиваются из вашего бюджета.
- Смена подрядчика на каждую задачу. Каждый новый исполнитель платно изучает проект с нуля и оставляет после себя свой стиль кода.
- Отказ от приёмки на тестовой копии. Замечания, найденные после выкладки, исправлять дороже и нервнее.
Чек-лист: как заказать доработку и не переплатить
- Описали результат и сценарии: что должно работать, для кого, с какими данными.
- Собрали доступы: хостинг, админка, репозиторий, CRM и внешние сервисы.
- Уточнили у подрядчика, есть ли тестовая копия и бэкап, и кто их делает.
- Получили оценку списком подзадач с часами, включая тестирование и выкладку.
- Выяснили допущения и риски, на которые заложен буфер.
- Спросили о более дешёвых альтернативах: настройка, готовый модуль, поэтапный запуск.
- Для чужого легаси-проекта согласовали платную диагностику до основной сметы.
- Выбрали модель оплаты под частоту задач: разовая смета, часы или абонемент.
- Зафиксировали в договоре приёмку на тестовой копии и гарантию на выполненные работы.
Итог
Стоимость доработки сайта определяется не названием задачи, а состоянием проекта: чистый код на актуальной CMS позволяет добавить функцию за пару часов, легаси без тестовой копии превращает ту же задачу в несколько дней работы. Хорошая оценка — это разбивка на подзадачи, трёхточечный расчёт, явные риски и буфер. Требуйте именно её, сравнивайте подрядчиков по одинаковому описанию и выбирайте модель оплаты под частоту доработок — так бюджет становится предсказуемым.
