Месяц назад ко мне обратился владелец сети автосервисов. Три месяца назад он заказал сайт за 35,000 рублей у «молодой перспективной студии». Сайт сделали. Он даже работал. Неделю. Потом начался ад: база данных упала, восстановить никто не смог (бэкапов не было), Google забанил сайт за вредоносный код, а на исправление ушло 180,000 рублей и 2 месяца работы моей команды. За 16 лет работы с WordPress переделал более 50 таких проектов. Сегодня расскажу пять критических ошибок, которые превращают экономию в катастрофу.
Ошибка №1: «Возьму самого дешевого — все равно все одинаковое»
История Михаила: интернет-магазин за 40,000 рублей
Михаил открывал интернет-магазин электроники. Получил три коммерческих предложения:
- Агентство А: 320,000 руб (3 месяца)
- Студия Б: 180,000 руб (2 месяца)
- Фрилансер В: 40,000 руб (1 месяц)
Выбрал фрилансера. «Зачем переплачивать? Сайт же один и тот же.»
Что получил за 40,000:
- Взломанная тема с ThemeForest (купленная один раз, установленная на 50+ сайтов)
- 27 плагинов (половина устаревших, треть конфликтуют)
- Скопированный дизайн конкурента
- База данных без оптимизации
- Нулевая безопасность
- Код без комментариев и структуры
Что произошло:
Месяц 1: Сайт запустился. Медленно грузится (4-5 секунд), но работает.
Месяц 2: Первые проблемы — часть товаров не добавляется, корзина глючит, заказы теряются. Фрилансер «посмотрит на выходных». Не смотрит.
Месяц 3: Сайт взломали. Вместо главной страницы — реклама казино. Google деиндексировал сайт. Фрилансер пропал. Номер не отвечает, Telegram заблокирован.
Финансовые потери:
Потерянные продажи (2 месяца простоя): 840,000 руб
Восстановление сайта: 150,000 руб
Полная переделка: 280,000 руб
Упущенная выгода SEO: 200,000 руб
Репутационные издержки: неисчислимо
--------------------------------------
ИТОГО: 1,470,000 руб
Экономия на разработке: 280,000 руб
Реальные потери: 1,470,000 руб
Переплата: 525%
Что было не так:
Фрилансер использовал nulled (взломанную) тему. Она содержала backdoor — скрытый код для удаленного доступа. Разработчик этого не знал (или знал и не сказал). Через 3 месяца сайт стал частью ботнета.
Технические последствия:
php// Скрытый код в theme/functions.php
@eval(base64_decode('ZXZhbChiYXNlNjRfZGVjb2RlKCRfUE9TVFsn...'));
// Бэкдор позволял:
- Загружать любые файлы
- Выполнять произвольный код
- Красть данные пользователей
- Рассылать спам от имени сайта
Правильный подход
Агентство А за 320,000 руб предлагало:
- Кастомную тему с нуля
- Security audit перед запуском
- Автоматические бэкапы
- Мониторинг 24/7
- Гарантию и поддержку
Разница: 280,000 руб инвестиций vs 1,470,000 руб убытков.
Ошибка №2: «Портфолио не важно — главное цена»
История Анны: корпоративный сайт медицинской клиники
Анна — директор частной клиники. Искала разработчика на freelance.ru. Выбрала студию без портфолио («мы только начинаем, поэтому дешево — 60,000 руб»).
Что обещали:
- Уникальный дизайн
- Адаптивная верстка
- SEO-оптимизация
- Форма записи к врачу
- Интеграция с CRM
Что получила:
Сайт сделали за 2 месяца (вместо обещанных 3 недель). Запустили. На первый взгляд — красиво.
Проблемы начались сразу:
- Мобильная версия не работала — половина экрана белая, текст накладывается на изображения
- Форма записи отправляла заявки в никуда — за 2 недели потеряли 47 обращений
- Google не индексировал страницы — технический SEO отсутствовал полностью
- HTTPS не работал — браузеры показывали «Небезопасный сайт»
- Сайт ломался при добавлении статей — верстка разваливалась
Вызвали меня на аудит. Обнаружил:
php<code>// Код из theme/single.php (страница статьи)
<div class="content">
<?php the_content(); ?>
<em><!-- Всё. Больше ничего. Никакой обработки контента --></em>
</div>
// В style.css
.content img {
width: 100%; // Все изображения растягивались на всю ширину
height: auto; // Без ограничений
}
// Результат: изображения 4000x3000px грузились в полном размере
// TTFB: 8-12 секунд
</code>Форма записи:
php<code><em>// Обработчик формы</em>
if ($_POST['submit']) {
$name = $_POST['name']; <em>// БЕЗ САНИТИЗАЦИИ!</em>
$email = $_POST['email']; <em>// БЕЗ ВАЛИДАЦИИ!</em>
mail('clinic@example.com', 'New appointment', $name . $email);
<em>// Без проверки отправки, без логирования, без уведомления</em>
}
<em>// Проблемы:</em>
<em>// 1. SQL injection возможна</em>
<em>// 2. Спам через форму</em>
<em>// 3. Письма не доходили (mail() не работает на большинстве хостингов)</em>
<em>// 4. Данные не сохранялись</em>
</code>SEO «оптимизация»:
xml<code><em><!-- Все страницы имели одинаковый title --></em>
<title>Медицинская клиника</title>
<em><!-- meta description отсутствовал --></em>
<em><!-- Open Graph отсутствовал --></em>
<em><!-- Структурированные данные отсутствовали --></em>
<em><!-- robots.txt был пустой --></em>
<em><!-- sitemap.xml не создан --></em>
</code>Финансовые последствия:
Потерянные лиды (47 × средний чек 12,000): 564,000 руб
SEO-продвижение в пустоту (3 месяца): 180,000 руб
Переделка сайта: 220,000 руб
Восстановление позиций в Google: 6 месяцев
--------------------------------------
Потери: 964,000 руб
Экономия: 60,000 руб (не выбрали агентство за 120,000)
Переплата: 1,606%
Урок
Портфолио — это не хвастовство. Это доказательство компетенции. Студия без портфолио = эксперимент на ваши деньги.
Что проверять в портфолио:
- Реальные ссылки на проекты (не скриншоты)
- Похожие задачи на вашу
- Живые сайты (работают ли они сейчас?)
- Разнообразие (не один тип проектов)
- Техническое качество (откройте Chrome DevTools, посмотрите код)
Ошибка №3: «Договор не нужен — мы же на словах договорились»
История Сергея: маркетплейс услуг
Сергей запускал маркетплейс услуг (аналог Profi.ru для региона). Нашел студию через знакомых. «Надежные ребята, работали с моим другом.»
Договорились устно:
- Сайт за 250,000 руб
- Срок 2 месяца
- Функционал: регистрация специалистов, поиск, отзывы, платежи
Оплата: 50% аванс (125,000 руб) на карту директора студии.
Что пошло не так:
Месяц 1: Разработка идет. Показывают демо — выглядит хорошо.
Месяц 2: Задержка. «Сложнее, чем думали, еще 2 недели.»
Месяц 3: «Почти готово, осталась интеграция платежей.»
Месяц 4: Сергей требует запуск. Запускают сайт с багами. Платежи не работают. Исправят «на следующей неделе.»
Месяц 5: Сергей требует доделать. Студия: «Это не входило в обсуждение, нужна доплата 100,000 руб.»
Месяц 6: Конфликт. Сергей отказывается платить, пока не исправят баги. Студия замораживает проект.
Результат:
- Сайт не работает
- Договора нет — доказать ничего нельзя
- Код у студии — исходники не передали
- Деньги не вернуть
- Потрачено: 125,000 руб
- Получено: 0 руб стоимости
Сергей обратился ко мне. Мы:
- Через юриста получили исходники (угроза суда сработала)
- Провели аудит кода — 60% нужно переписать
- Договорились на завершение за 180,000 руб (еще 4 месяца работы)
Итоговые потери:
Оплачено первой студии: 125,000 руб
Оплачено нам за завершение: 180,000 руб
Упущенная выгода (10 месяцев задержки): 800,000 руб
Юридические расходы: 50,000 руб
--------------------------------------
Потери: 1,155,000 руб
Если бы был договор: 250,000 руб
Переплата: 462%
Что должно быть в договоре
Обязательные пункты:
1. Детальное описание работ (ТЗ как приложение)
2. Сроки с этапами (milestone)
3. Стоимость с разбивкой по этапам
4. Условия приемки (что считается завершением)
5. Ответственность за срыв сроков (штрафы)
6. Права на код (передача исходников)
7. Гарантийные обязательства
8. Порядок расторжения договора
9. Конфиденциальность (NDA)
10. Порядок разрешения споров
Схема оплаты (безопасная):
text30% - после подписания договора
40% - после приемки дизайна
25% - после приемки функционала на staging
5% - через месяц после запуска (гарантийный период)
Ошибка №4: «Техподдержка не нужна — сайт же работает»
История Ольги: интернет-магазин косметики
Ольга запустила интернет-магазин. Заплатила 180,000 руб, получила отличный сайт. Работал идеально. Студия предложила техподдержку за 15,000 руб/мес. Ольга отказалась: «Зачем платить, если все работает?»
Что произошло:
Месяц 3: Вышло обновление WordPress 6.6. Сайт не обновляла — «работает же».
Месяц 4: Обновление плагина WooCommerce. Не обновляла.
Месяц 5: Сайт взломали через уязвимость в старом плагине. Все товары заменены на ссылки на порносайты. Google забанил сайт за 2 дня.
Восстановление:
Обратилась в студию. Работы:
- Удаление вредоносного кода — 30,000 руб
- Восстановление из резервной копии (которой не было) — невозможно
- Ручное восстановление контента — 80,000 руб
- Security audit — 40,000 руб
- Восстановление индексации в Google — 3 месяца
Финансовые потери:
Потерянные продажи (2 месяца): 600,000 руб
Восстановление сайта: 150,000 руб
Восстановление репутации: 100,000 руб (реклама)
--------------------------------------
Потери: 850,000 руб
Стоимость техподдержки (5 месяцев): 75,000 руб
Переплата за отказ от поддержки: 1,133%
Что входит в техподдержку
Базовый пакет (10-15,000 руб/мес):
Обновления:
├─ WordPress Core (каждые 2-3 месяца)
├─ Плагины (еженедельно)
├─ Тема (по мере выхода обновлений)
└─ PHP версия (ежегодно)
Безопасность:
├─ Мониторинг уязвимостей
├─ Security audit (ежемесячно)
├─ Firewall правила
└─ Проверка на malware
Резервное копирование:
├─ Ежедневный бэкап БД
├─ Еженедельный бэкап файлов
├─ Хранение бэкапов 30 дней
└─ Тестовое восстановление (ежемесячно)
Мониторинг:
├─ Uptime (99.9%)
├─ Производительность
├─ Ошибки в логах
└─ Алерты при проблемах
Консультации:
└─ До 4 часов в месяц
Расширенный пакет (25-35,000 руб/мес):
Все из базового + :
- Исправление багов
- Мелкие доработки (до 8 часов)
- Консультации по развитию
- Priority support (ответ в течение часа)
Реальная стоимость отсутствия поддержки
За 3 года:
С техподдержкой:
Ежемесячно: 15,000 руб
За 3 года: 540,000 руб
Взломов: 0
Простоев: 0
Потерь: 0
--------------------------------------
Расходы: 540,000 руб
Без техподдержки:
Взломы (2-3 раза): 300,000 руб восстановление
Потерянные продажи: 1,200,000 руб
Упущенная SEO: 400,000 руб
Репутация: неисчислимо
--------------------------------------
Потери: 1,900,000+ руб
Экономия на поддержке: 540,000 руб
Реальные потери: 1,900,000 руб
Переплата: 351%
Ошибка №5: «Исходный код не нужен — я же не программист»
История Дмитрия: B2B платформа
Дмитрий заказал B2B платформу для оптовых продаж. Заплатил 600,000 руб. Сайт работал отлично. Через год решил добавить новую функцию — интеграцию с 1С.
Обратился к первоначальным разработчикам. Они: «Готовы сделать за 280,000 руб.» Дмитрий: «Дорого. Найду дешевле.»
Нашел других разработчиков за 120,000 руб. Те запросили исходный код.
Дмитрий обратился к первой студии: «Дайте исходники.» Студия: «Код не передается без дополнительной оплаты — 150,000 руб.» Дмитрий: «КАК?!»
Проблема:
В договоре не было пункта о передаче прав на исходный код. По умолчанию авторские права остались у разработчика.
Варианты Дмитрия:
- Заплатить 150,000 за код + 120,000 новым разработчикам = 270,000 руб
- Заплатить 280,000 старым разработчикам
- Судиться (еще дороже и дольше)
Выбрал вариант 1. Получил код. Новые разработчики:
«Код не поддается анализу. Нет комментариев, нет документации, архитектура хаотичная. Интеграцию делать придется с нуля — еще 200,000 руб.»
Итого:
Выкуп кода: 150,000 руб
Попытка интеграции: 120,000 руб (зря)
Интеграция с нуля: 200,000 руб
--------------------------------------
Потрачено: 470,000 руб
Если бы код был с самого начала: 200,000 руб
Переплата: 235%
Что должно быть в договоре о коде
Обязательные пункты:
1. Полная передача прав на исходный код
├─ PHP код (backend)
├─ JavaScript/CSS (frontend)
├─ База данных (структура и дамп)
└─ Конфигурационные файлы
2. Формат передачи кода
├─ Git репозиторий (предпочтительно)
├─ Или архив с историей версий
└─ Доступ к репозиторию навсегда
3. Документация
├─ README с инструкциями
├─ Архитектура проекта
├─ API документация
└─ Комментарии в коде
4. Эксклюзивные права
└─ Разработчик не может использовать код в других проектах
Проверка при приемке:
bash<code><em># Запросите Git репозиторий</em>
git clone https://github.com/developer/your-project.git
<em># Проверьте историю</em>
git log --all --oneline
<em># Должно быть 50+ коммитов с понятными сообщениями</em>
<em># НЕ ДОЛЖНО быть одного коммита "Initial commit" со всем кодом</em>
</code>Как выбрать разработчика правильно: чек-лист из опыта
1. Проверка компетенции (до подписания договора)
Технические вопросы (задайте им):
1. "Какую систему контроля версий используете?"
Правильный ответ: Git (GitHub, GitLab, Bitbucket)
Красный флаг: "Не используем" или "FTP"
2. "Делаете ли code review?"
Правильный ответ: "Да, каждый PR проходит ревью"
Красный флаг: "Что это?" или "Не нужно"
3. "Как организован процесс тестирования?"
Правильный ответ: PHPUnit, автоматизированное тестирование
Красный флаг: "Тестируем вручную" или "Не тестируем"
4. "Какие метрики производительности гарантируете?"
Правильный ответ: TTFB < 500ms, PageSpeed > 90
Красный флаг: "Зависит от хостинга"
5. "Как обеспечиваете безопасность?"
Правильный ответ: WAF, 2FA, security audit, мониторинг
Красный флаг: "Стандартные настройки WordPress"
2. Проверка портфолио (детально)
Запросите 3-5 проектов и проверьте:
javascript<code><em>// Откройте Chrome DevTools (F12)</em>
<em>// 1. Проверка производительности</em>
<em>// Lighthouse → Run audit</em>
<em>// Должно быть: Performance > 80, Best Practices > 90</em>
<em>// 2. Проверка консоли</em>
console.log('Проверяем ошибки');
<em>// Не должно быть: красных ошибок в Console</em>
<em>// 3. Проверка кода</em>
<em>// Elements → View Page Source</em>
<em>// Признаки качества:</em>
<em>// - Семантический HTML (header, nav, main, footer)</em>
<em>// - Отсутствие inline стилей</em>
<em>// - Минифицированные CSS/JS</em>
<em>// - Нет тяжелых библиотек (jQuery 3.x - ok, jQuery 1.x - плохо)</em>
<em>// 4. Проверка безопасности</em>
<em>// Откройте: https://securityheaders.com/</em>
<em>// Введите URL сайта из портфолио</em>
<em>// Должен быть рейтинг: A или B</em>
</code>3. Финансовая безопасность
Схема оплаты:
✅ ПРАВИЛЬНО:
30% - аванс (после подписания договора)
40% - после приемки дизайна
25% - после приемки разработки на staging
5% - через 30 дней после запуска (гарантия)
❌ НЕПРАВИЛЬНО:
100% предоплата
50% аванс + 50% после "завершения" (нет контрольных точек)
Оплата наличными/на карту физлица
4. Юридическая защита
Обязательные документы:
1. Договор на разработку (не оферта!)
├─ С вашей компанией как юрлицом
├─ С исполнителем как юрлицом (не ИП физлица)
└─ С печатями и подписями
2. Техническое задание (приложение к договору)
├─ Детальное описание функционала
├─ Макеты/прототипы
└─ Критерии приемки
3. График работ (milestone)
├─ Этапы с датами
├─ Критерии завершения каждого этапа
└─ Штрафы за просрочку
4. Акт приема-передачи
├─ Исходный код
├─ Документация
└─ Доступы
5. Техническая приемка
Чек-лист перед подписанием акта:
Функциональность:
☐ Все страницы работают
☐ Все формы отправляются
☐ Мобильная версия корректна
☐ Протестировано в Chrome, Safari, Firefox, Edge
☐ Нет ошибок в консоли браузера
Производительность:
☐ PageSpeed Score > 85
☐ TTFB < 800ms
☐ LCP < 2.5s
☐ CLS < 0.1
Безопасность:
☐ SSL сертификат установлен
☐ Нет уязвимых плагинов
☐ Права доступа настроены
☐ wp-config.php защищен
SEO:
☐ Title и description на всех страницах
☐ robots.txt настроен
☐ sitemap.xml создан
☐ Google Analytics подключен
Код:
☐ Git репозиторий передан
☐ Документация предоставлена
☐ Child тема используется (если применимо)
☐ Нет nulled тем/плагинов
Финальный совет: правило «трех нет»
За 16 лет вывел правило: если хотя бы три пункта из списка — НЕ РАБОТАЙТЕ с этим разработчиком:
text❌ Нет портфолио с живыми проектами
❌ Нет договора или "договор - это лишняя бюрократия"
❌ Нет внятных ответов на технические вопросы
❌ Нет процессов (Git, code review, тестирование)
❌ Нет гарантии и техподдержки
❌ Нет передачи прав на код
❌ Цена в 2+ раза ниже среднерыночной
❌ Обещают "сделаем быстро и дешево"
❌ Требуют 100% предоплату
❌ Отказываются показывать код существующих проектов
Выводы: математика экономии
Проанализировал 47 проектов, которые переделывал за последние 3 года:
Средняя "экономия" на разработке: 180,000 руб
Средние затраты на переделку: 320,000 руб
Средние косвенные потери: 850,000 руб
--------------------------------------
Средняя переплата: 1,170,000 руб
ROI "экономии": -650%
Вывод: Экономия на разработке обходится в 6.5 раз дороже изначальных инвестиций в качество.
Альтернатива: Выбирайте не по минимальной цене, а по соотношению цена/качество. Профессиональный разработчик за 300,000 руб сэкономит вам миллионы в долгосрочной перспективе.
Помните: Сайт — это не расход, а инвестиция в бизнес. Инвестиции должны окупаться, а не превращаться в убытки из-за попыток сэкономить на профессионалах.
Выбирайте разработчика как выбираете хирурга — не по цене, а по компетенции. Потому что исправлять ошибки «дешевого хирурга» всегда дороже, чем сразу обратиться к профессионалу.