Я веб-разработчик с семилетним стажем, работаю на фрилансе. За это время я успел поработать с десятками клиентов, сделал больше сотни сайтов, считал себя достаточно опытным, чтобы предусмотреть большинство проблем. Но один случай в октябре 2024 года показал мне, что даже самые, казалось бы, простые вещи могут выстрелить в самый неподходящий момент. История о том, как домен клиента перестал работать, а я узнал об этом через три дня — когда ущерб уже был нанесен, а репутация подмочена.
Как начинался обычный проект
В июне 2024 года ко мне обратился владелец небольшой онлайн-школы английского языка Михаил. Ему нужен был новый сайт с системой онлайн-записи на занятия, личными кабинетами учеников и интеграцией с платежной системой. Бюджет адекватный, сроки реальные, клиент адекватный — в общем, проект мечты для фрилансера.
Мы быстро договорились обо всех деталях. Я сделал прототип, согласовал дизайн, написал техническое задание. Михаил предоставил доступы к хостингу, где должен был разместиться сайт, и сообщил данные домена, который он зарегистрировал еще два года назад для старого сайта. Старый сайт был простенький, на конструкторе, работал без проблем. Домен принадлежал клиенту, он управлял им через своего регистратора.
Я, как обычно, сосредоточился на разработке. Два месяца работы, тестирование, правки, оптимизация. К концу августа сайт был готов, я перенес его на боевой хостинг, все прекрасно заработало. Михаил был в восторге, ученики начали активно записываться через новую систему, конверсия выросла. Я получил оплату, добавил проект в портфолио и переключился на следующие заказы.
⚠️ Важно понимать: Когда проект работает хорошо, разработчик расслабляется. Кажется, что все технические аспекты учтены, все риски минимизированы, можно спокойно двигаться дальше. Именно в этот момент обычно случается что-то неожиданное.
Когда тишина оказалась тревожным знаком
Первого октября, во вторник утром, я просматривал почту за кофе. Среди обычных писем увидел сообщение от Михаила с темой "СРОЧНО". Открыл и буквально похолодел. Письмо было отправлено в пятницу вечером, то есть три дня назад. Михаил писал, что сайт не открывается, показывает ошибку, что домен не найден. Он пытался дозвониться, писал в мессенджеры, но я был за городом на выходных, без нормального интернета.
Я сразу проверил сайт — действительно, браузер выдавал сообщение о том, что DNS-адрес сервера не найден. Это означало проблему на уровне домена, а не хостинга или кода. Позвонил Михаилу, он был, мягко говоря, не в лучшем настроении. Оказалось, сайт перестал работать в пятницу около обеда, то есть был недоступен уже два с половиной рабочих дня.
Клиент рассказал, что попытался связаться с техподдержкой регистратора домена, но не мог попасть в личный кабинет — забыл пароль, а восстановление требовало времени. В итоге выяснилось банальное: истек срок регистрации домена. Михаил просто не обратил внимания на уведомления от регистратора, а автопродление по какой-то причине не сработало. К понедельнику он оплатил продление, но DNS-записи обновляются не мгновенно, и сайт заработал только к вечеру понедельника.
Получалось, что с пятничного обеда до вечера понедельника — почти семьдесят два часа — сайт был полностью недоступен. А я узнал об этом только во вторник утром, когда все уже было решено, но ущерб нанесен.
💡 Обратите внимание: Проблемы с доменом часто остаются незамеченными до последнего момента, потому что большинство разработчиков не контролируют домены клиентов. Это кажется логичным — домен принадлежит клиенту, но именно эта логика создает слепое пятно.
Цена трех дней молчания
Михаил посчитал убытки, и цифры оказались неприятными. За выходные должно было пройти двадцать платных вводных занятий, которые новые ученики бронировали через сайт. Ни одно из них не состоялось, потому что ученики не могли ни зайти на сайт, ни получить подтверждение записи. Средняя стоимость вводного занятия — тысяча пятьсот рублей, итого двадцать тысяч прямых потерь.
Но это была только верхушка айсберга. Михаил в тот период активно запускал рекламную кампанию в Яндекс.Директ и ВКонтакте. За три дня простоя на рекламу ушло около сорока пяти тысяч рублей, которые привели трафик на несуществующий сайт. Показатель отказов стал сто процентов, а Яндекс начал понижать качество объявлений, что потом аукнулось более высокой стоимостью клика.
Самое неприятное — репутационные потери. Пятнадцать потенциальных учеников написали негативные комментарии в социальных сетях школы, возмущаясь тем, что "даже сайт нормально работать не может". Три человека прямо сообщили, что ушли к конкурентам. Один оставил гневный отзыв на профильной площадке с оценкой две звезды из пяти.
Я тоже пострадал. Михаил был настолько расстроен, что сначала вообще не хотел со мной разговаривать. Он считал, что я как разработчик должен был следить за всеми техническими аспектами сайта, включая домен. Да, формально домен был его зоной ответственности, но для клиента это не имело значения. Сайт, который я сделал, не работал — значит, проблема в моей работе.
Почему я оказался последним, кто узнал
После того как ситуация немного улеглась, я начал анализировать, что пошло не так. Проблема была не в технической стороне дела — домены действительно истекают, это нормальная ситуация, которую нужно просто вовремя отслеживать. Проблема была в том, что у меня не было инструментов контроля.
Я работал по классической фрилансерской модели — сделал сайт, передал клиенту, получил оплату, ушел на следующий проект. Никакого постоянного мониторинга не было. Я периодически заходил на сайты своих клиентов, чтобы убедиться, что все работает, но делал это нерегулярно, раз в несколько недель, от силы. Если сайт открывался, я считал, что все в порядке.
У меня не было никакой системы предупреждений. Я не получал уведомлений, если сайт клиента переставал работать. Я не отслеживал сроки окончания регистрации доменов, потому что считал, что это обязанность владельца домена. Я не контролировал, работают ли критичные функции сайтов — формы обратной связи, системы оплаты, личные кабинеты.
В случае с Михаилом я узнал о проблеме через семьдесят два часа после ее возникновения. Если бы клиент не написал мне в почту (а ведь мог и не написать, решив просто больше никогда со мной не работать), я мог бы узнать об этом еще позже. Или вообще не узнать, если бы он тихо решил проблему сам и занес меня в черный список.
Я понял, что работаю вслепую. У меня было портфолио из восьмидесяти с лишним сайтов, и я не имел ни малейшего представления, сколько из них работают нормально прямо сейчас, а сколько имеют проблемы, о которых я просто не знаю.
⚠️ Критически важно: Фрилансер несет репутационные риски за все сайты, которые он когда-либо делал. Даже если формальная ответственность лежит на клиенте, недоступность сайта все равно ассоциируется с разработчиком.
Что я изменил в своей работе
После истории с доменом Михаила я принял решение полностью пересмотреть подход к работе с клиентами. Первое, что я сделал — внедрил автоматический мониторинг для всех сайтов, которые я разрабатывал. Нашел сервис, который проверяет доступность сайтов каждую минуту и сразу присылает уведомление в Telegram, если что-то идет не так.
Настроил мониторинг так, чтобы он проверял не только доступность домена, но и корректность работы ключевых элементов — открываются ли страницы, отдают ли они правильный HTTP-статус, работают ли формы обратной связи. Для сайтов с онлайн-оплатой добавил проверку доступности платежных страниц. Это позволило контролировать не только сам факт работы сайта, но и работоспособность критичных функций.
Второе важное изменение — я начал отслеживать сроки окончания доменов. Добавил все домены клиентов в систему мониторинга, которая проверяет, когда истекает регистрация, и предупреждает за месяц. Теперь, даже если клиент забудет продлить домен, я получу уведомление заранее и смогу напомнить ему об этом.
Третье — я изменил модель работы с клиентами. Теперь после сдачи проекта я предлагаю базовый пакет технической поддержки. За небольшую ежемесячную плату клиент получает мониторинг сайта, уведомления о проблемах и мелкие правки контента. Это создает постоянный контакт с клиентом и позволяет мне всегда быть в курсе состояния проекта.
Многие клиенты соглашаются на такую модель, потому что она дает им спокойствие. Они знают, что если что-то пойдет не так, я узнаю об этом первым и сразу начну решать проблему. Для меня это создает стабильный поток пассивного дохода и защищает репутацию.
Разговор с Михаилом спустя время
Через месяц после инцидента я встретился с Михаилом лично, чтобы обсудить ситуацию на холодную голову. К тому времени эмоции улеглись, сайт работал стабильно, а я уже внедрил все изменения в свою работу. Я рассказал ему о новой системе мониторинга, показал, как теперь отслеживаю его сайт в режиме реального времени.
Михаил признался, что был неправ, когда винил меня целиком. Он действительно забыл про продление домена и игнорировал уведомления регистратора, потому что был занят запуском нового курса. Но он также сказал важную вещь, которую я запомнил: "Для меня как для клиента нет разницы, чья это техническая ответственность. Есть сайт, который я оплатил, и он должен работать. Если он не работает, я звоню тому, кто его делал".
Эта фраза многое объяснила. Клиенты не разбираются в тонкостях технической инфраструктуры. Для них разработчик — это человек, который отвечает за все, что связано с сайтом. И если я хочу сохранять хорошие отношения с клиентами и получать от них рекомендации, мне нужно брать на себя ответственность шире, чем просто написание кода.
Михаил согласился на пакет технической поддержки, и с тех пор я регулярно получаю от него небольшие заказы на доработки. Более того, он порекомендовал меня двум своим знакомым, которые тоже стали моими клиентами. История с доменом могла закончиться полным разрывом отношений, но превратилась в урок, который сделал мою работу лучше.
Что я понял про фриланс и ответственность
Работая на фрилансе семь лет, я привык к определенной модели — сделал работу, передал результат, получил деньги, пошел дальше. Эта модель кажется логичной и справедливой. Но она создает огромное слепое пятно в отношениях с клиентами. После сдачи проекта я терял контроль над ситуацией и не мог влиять на то, как клиент использует и обслуживает сайт.
Проблема в том, что репутация фрилансера строится не на количестве сданных проектов, а на том, сколько этих проектов продолжают успешно работать через год, два, три. Если клиент сталкивается с проблемами после запуска, он не думает о распределении технической ответственности. Он думает о том, что работа, за которую он заплатил, не оправдала ожиданий.
Современные инструменты мониторинга решают эту проблему элегантно. Они дают фрилансеру возможность держать руку на пульсе всех проектов без необходимости тратить на это время вручную. Автоматические проверки работают круглосуточно, уведомления приходят мгновенно, а разработчик может оперативно реагировать на проблемы, даже если клиент еще не успел их заметить.
Сейчас у меня под мониторингом 92 сайта. Я получаю детальные отчеты о работе каждого, знаю сроки окончания всех доменов и SSL-сертификатов, моментально узнаю о любых сбоях. Это дает мне спокойствие и уверенность, что ни один из моих клиентов не столкнется с проблемой, о которой я не буду знать. А для фрилансера, который живет за счет репутации и рекомендаций, это бесценно.
История с Михаилом научила меня главному — в современном вебе недостаточно просто хорошо делать сайты. Нужно обеспечивать их стабильную работу и быть готовым реагировать на проблемы быстрее, чем они станут катастрофой для клиента. Проактивный контроль превращает разработчика из подрядчика в надежного партнера, которому клиенты доверяют и которого рекомендуют другим.