Три вещи, которые вообще-то ваши
У любого сайта есть три отдельных актива, и путаница между ними - источник большинства проблем. Домен - это имя. Хостинг - это место, где лежат файлы и база. Код - это сам сайт как результат работы.
Они живут в разных местах, у разных провайдеров, и теряются независимо друг от друга. Можно сохранить домен и потерять код. Можно иметь код и не иметь доступа к базе с заказами. Поэтому «доступ к сайту» одной записью в блокноте не описывается.
На практике чаще всего всплывает именно домен. Он самый дешёвый и поэтому самый незаметный: подрядчик купил его за пару тысяч на свой аккаунт, чтобы не возиться с вашей регистрацией, и все забыли. Через три года вы расходитесь, и имя компании остаётся у него.
Домен должен быть зарегистрирован на вас. Не «администрируется», а зарегистрирован
У домена есть владелец - это строка в базе регистратора. Для ИП и юрлица там указывается название организации и ИНН, для физлица - ФИО и паспортные данные. Человек, у которого просто есть логин в панели, владельцем не является, но может делать с доменом что угодно: перенаправить на другой сайт, передать, не продлить.
Проверяется это за минуту. Откройте любой whois-сервис, введите свой домен и посмотрите поля с организацией и регистратором. Для российских зон у частных лиц данные скрыты, у организаций видно название - если там не ваша компания, вопрос закрыт, домен не ваш.
Второй шаг - зайти в личный кабинет регистратора своим логином. Не «подрядчик показал экран», а вы сами, со своей почтой. Если такого кабинета нет, значит домен живёт внутри чужого аккаунта, где кроме него лежат домены других клиентов.
Отдельно про почту. Контактный адрес домена - это канал восстановления доступа. Если там стоит ящик вида studio@, все письма о продлении и все ссылки на сброс пароля уходят не вам. Меняйте на корпоративный ящик, к которому есть доступ у вас или у вашего бухгалтера.
- Зайдите в whois и проверьте владельца и дату окончания регистрации
- Войдите в кабинет регистратора своим логином, а не чужим
- Поставьте контактной почтой свой ящик, лучше не личный, а рабочий
- Включите автопродление и привяжите карту компании
- Поставьте в календарь напоминание за месяц до истечения срока - автопродление ломается, когда у карты кончается срок действия
История, которая повторяется каждый год
Домен не продлили. Сайт отвалился, почта на домене тоже отвалилась, потому что MX-записи живут там же. Владелец бизнеса узнаёт об этом от клиента, который не смог отправить письмо.
Дальше начинается гонка. После окончания срока домен не освобождается сразу: есть период, когда его ещё можно выкупить, но уже дороже и через регистратора. Если в этот период не попасть, имя уходит на свободу, и его перехватывают автоматические скупщики - ровно потому, что на нём был трафик. Выкупать обратно придётся у них, по их цене.
Защита от этого скучная: автопродление, актуальная карта и напоминание в календаре. Никакой технической магии нет.
Хостинг: аккаунт на вас, бэкапы вне аккаунта
Хостинг оформляйте на себя, платите со счёта компании. Это не вопрос контроля ради контроля - это вопрос того, кому провайдер вообще будет отвечать, если нужно восстановить данные. Поддержка общается с владельцем аккаунта, а не с тем, кто громче пишет в чат.
Подрядчику дайте отдельный доступ. У нормальных провайдеров это делается штатно: дополнительный пользователь или ключ с нужными правами, который вы отзываете в один клик. Схема «у нас один пароль на всех» работает до первого увольнения в чьей-нибудь команде.
Бэкапы - отдельная тема, и здесь почти все обманываются. Автоматический бэкап у провайдера лежит на том же аккаунте, что и сайт. Если аккаунт заблокирован за неоплату или вы потеряли к нему доступ, бэкапы недоступны вместе с ним. Поэтому хотя бы раз в месяц выгружайте копию наружу: архив файлов и дамп базы в облако или на диск в офисе.
И проверьте, что копия живая. Скачанный архив, который никто не разворачивал, - это не бэкап, а надежда. Один раз поднять сайт из копии на тестовом поддомене стоит пары часов работы и снимает очень неприятный класс рисков.
Код: чей он по умолчанию и как сделать его вашим
Здесь неприятный сюрприз. По российскому законодательству исключительное право на программу по умолчанию остаётся у автора или у его работодателя. Оплата работы сама по себе права не передаёт - нужна формулировка в договоре о том, что исключительное право переходит к заказчику, и желательно акт, где зафиксировано, что именно передано.
Если договор про это молчит, вы заплатили за работающий сайт, но не за возможность его изменять, переносить и дорабатывать чужими руками. На практике до суда такое почти никогда не доходит, но рычаг у подрядчика есть, и в конфликтной ситуации он им пользуется.
Отдельно оговаривайте исходники. Собранный сайт на хостинге - это результат сборки, по нему дорабатывать неудобно и дорого. Вам нужен репозиторий: исходный код, файл с зависимостями, миграции базы, конфиги. Для React-проектов разница между «есть репозиторий» и «есть только сборка в папке dist» огромна: во втором случае следующий разработчик почти наверняка напишет заново.
Репозиторий должен лежать в вашей организации на GitHub или GitLab, а разработчики - быть в ней участниками. Это бесплатно и занимает двадцать минут. Тогда при смене команды вы убираете людей из организации, а код остаётся на месте.
Про сторонние компоненты спрашивайте прямо: какие платные темы, шрифты, плагины или библиотеки использованы и на кого оформлены лицензии. Купленный на аккаунт подрядчика шаблон - такая же зависимость, как домен на его имя.
- Пункт в договоре о передаче исключительного права на разработанный код заказчику
- Репозиторий с исходниками в вашей организации, вы - владелец
- Инструкция по развёртыванию: как поднять проект с нуля на пустом сервере
- Список платных компонентов и лицензий, оформленных на вас
- Доступ к базе данных и дамп последней версии
Что ещё забывают, хотя оно важнее кода
Код можно написать заново. Накопленные данные - нет.
Аналитика. Яндекс Метрика и счётчики часто создаются на аккаунте агентства. Теряете доступ - теряете всю историю: сезонность, конверсии, источники трафика за годы. Создавайте счётчик на своём аккаунте, подрядчику выдавайте гостевой доступ.
Почтовый домен. Если корпоративная почта привязана к домену сайта, потеря домена убивает переписку. Проверьте, на кого оформлен аккаунт почтового сервиса.
Платёжный модуль интернет-магазина. Договор с платёжным провайдером и ключи должны быть на вашу организацию, иначе деньги клиентов технически проходят не через вас.
SSL-сертификат. Чаще всего это бесплатный Let's Encrypt, который перевыпускается автоматически, и беспокоиться не о чем. Но если кто-то когда-то купил платный сертификат, посмотрите, на какой аккаунт.
Доменные записи DNS. Иногда домен у вас, а DNS-зоной управляет сторонний сервис на чужом аккаунте. Формально домен ваш, фактически им управляет кто-то другой.
Чек-лист приёмки: что запросить в день сдачи сайта
Не через год, не «когда понадобится», а в день подписания акта, пока у всех хорошее настроение. Соберите всё в один документ и положите туда, где это найдёт не только вы: у бухгалтера, в сейфе, в корпоративном менеджере паролей.
Пройдите по каждому пункту руками. «Прислали логин» и «я зашёл» - разные состояния. Самая частая находка при такой проверке: пароль есть, но при входе требуется код из SMS на номер, который вам неизвестен.
- Кабинет регистратора домена: логин ваш, владелец - ваша компания, автопродление включено
- Хостинг или сервер: аккаунт на вас, оплата с вашего счёта, root-доступ или SSH-ключ у вас
- Доступ к панели управления сайтом и к базе данных, дамп базы скачан
- Ссылка на репозиторий, где вы - владелец организации
- Инструкция по развёртыванию проекта на новом сервере
- Счётчики аналитики созданы на вашем аккаунте
- Логины от сторонних сервисов: почта, платёжный модуль, SMS-шлюз, CDN
- Пункт договора о передаче исключительного права на код, акт подписан
- Двухфакторная аутентификация привязана к вашему телефону, а не к чужому
Когда не надо устраивать дотошную проверку
Если вы делаете простой лендинг на конструкторе за несколько дней, половина списка выше к вам не относится. Там нет исходного кода в нормальном смысле, нет своей базы, и переехать всё равно некуда - вы платите за платформу. Достаточно, чтобы аккаунт конструктора и домен были на вас. Всё.
Если проект тестовый, живёт три месяца и его не жалко - не тратьте время на репозитории и лицензии. Риск маленький, цена защиты больше потерь.
А вот если на сайте есть база клиентов, заказы, личные кабинеты, интеграция с платежами или складом - проходите список целиком. И чем дольше сайт работает, тем дороже его потеря: не из-за дизайна, а из-за накопленных данных и позиций в поиске.
Нормальный подрядчик такие вопросы воспринимает спокойно, потому что ему же проще: все доступы на клиенте, значит никто не разбудит его ночью с просьбой что-то восстановить. Если на просьбу передать домен или репозиторий начинаются объяснения про «так удобнее» и «мы же всё равно работаем вместе» - это ответ. Такой подрядчик держит вас на крючке осознанно.
Мы в EFIMOV DEV отдаём доступы на этапе сдачи и отдельно проговариваем это в договоре, а передачу прав на код пишем прямо, а не намёками. Вилки «от» по лендингам, корпоративным сайтам, магазинам, ботам и поддержке опубликованы у нас на сайте; точная смета считается после брифа, когда понятно, что именно нужно переносить и поддерживать.
Домен, хостинг и аккаунты должны быть оформлены на вашу компанию, код - лежать в вашем репозитории с письменной передачей прав. Запрашивайте и проверяйте это в день сдачи сайта, а не в день конфликта.
Частые вопросы
Подрядчик говорит, что домен проще держать на его аккаунте. Соглашаться?
Нет. Ему действительно проще, вам - рискованнее. Регистрация домена на организацию занимает минут десять и требует только реквизитов. Если подрядчик не хочет этим заниматься, попросите просто инструкцию и сделайте сами, а ему выдайте доступ к управлению DNS.
Я уже потерял контакт с разработчиком, домен оформлен на него. Что делать?
Сначала проверьте whois и дату окончания регистрации - если срок близко, это главный риск. Дальше напишите регистратору: смена владельца возможна по заявлению текущего владельца, без его участия почти ничего не сделать. Если связи нет совсем, трезвый вариант - подготовить второй домен, перевести на него рекламу и почту заранее, не дожидаясь, пока старый отвалится. Параллельно убедитесь, что хостинг и база хотя бы доступны и выгружены.
В договоре ничего нет про права на код. Это критично?
Зависит от проекта. Для лендинга - почти нет, его дешевле сделать заново. Для сервиса с логикой и базой это реальный рычаг давления: формально вы не вправе передавать код другой команде на доработку. Решается допсоглашением о передаче исключительного права - подписать его можно и сейчас, если отношения с подрядчиком нормальные.
Достаточно ли автоматических бэкапов хостинга?
Как первая линия - да, они закрывают случаи «обновление сломало сайт». Но они лежат на том же аккаунте и исчезают вместе с ним при блокировке или потере доступа. Держите копию снаружи: раз в месяц архив файлов и дамп базы в своё облако, и хотя бы однажды проверьте, что из этой копии сайт разворачивается.