За два года ко мне четыре раза приходили клиники и частнопрактикующие врачи с одной и той же просьбой - собрать сайт для медицинского центра, где пациент сам разберётся, к какому врачу идти, и запишется на приём без звонка администратору. Задача выглядит простой, но у медицинских сайтов есть своя специфика: карточки врачей с расписанием, услуги с ценами, которые в клинике меняются чаще, чем на обычном сайте, форма записи, которая не должна отдавать один и тот же слот двум пациентам сразу, и требования по хранению персональных данных пациентов. Разберу, из чего собирается такой сайт, как сделать запись на приём без накладок и какая платформа подойдёт под разный масштаб клиники.
Что должно быть на сайте медицинского центра: структура и разделы
Прежде чем выбирать платформу, раскладываю с клиникой список разделов, потому что от него зависит и структура базы данных, и то, сколько будет стоить наполнение. Обычно набор такой:
- Главная с направлениями и коротким списком врачей
- Каталог врачей с фильтром по специализации и филиалу
- Услуги и цены по каждому направлению
- Форма записи на приём
- О клинике: команда, оборудование, лицензии
- Документы и лицензии отдельной страницей
- Филиалы и контакты, если их несколько
- Отзывы пациентов
- Блог со статьями по направлениям - работает на SEO и снижает часть однотипных вопросов на ресепшене
Если клиника небольшая и врач один, часть разделов можно объединить, но форму записи и страницу с ценами разделять не стоит: пациенты гуглят конкретную услугу и хотят сразу увидеть цену, а не идти за ней в прайс-лист отдельным файлом.
Каталог врачей и услуг: как собрать структуру сайта клиники
Врачи и услуги в медицинском центре связаны не один к одному: терапевт может вести приём в двух филиалах, а одна услуга оказываться несколькими специалистами по разным ценам. Если делать это на WordPress, завожу два кастомных типа записей - «Врачи» и «Услуги» - и связываю их через дополнительные поля, а не текстом в описании, иначе при любом изменении прайса придётся руками править карточки всех врачей.
Цены на услуги стоит хранить в таблице, которую администратор клиники правит сам через админку, а не хардкодить в шаблоне страницы. На практике клиники меняют прайс по сезону или из-за смены оборудования чаще, чем кажется на старте проекта, и каждый такой раз звать разработчика ради правки цифры в тексте невыгодно ни клинике, ни мне.
Если в клинике десятки врачей и филиалов и нужна сложная логика фильтрации по стажу, отзывам и доступным слотам, такую каталогизацию проще закладывать сразу в архитектуру бэкенда на этапе разработки, а не пытаться натянуть на готовый шаблон.
Запись на приём онлайн: как сделать без накладок в расписании
Если в клинике уже есть МИС или CRM
Медицинские информационные системы почти всегда ведут расписание врачей и умеют отдавать свободные слоты через API. В этом случае сайту не нужно хранить своё расписание - он просто запрашивает у МИС список свободных окон на выбранную дату и отправляет туда же данные записи. Дублировать календарь врача в двух системах не стоит: рано или поздно они разойдутся, и администратор потратит время на то, чтобы понять, где актуальные данные.
Своя форма записи на PHP и MySQL
Если МИС нет или клинике достаточно простого календаря на сайте, форму записи собираю на PHP с базой MySQL - обычного хостинга, на котором уже стоит сайт, для этого хватает, отдельный сервер поднимать не нужно. Самое уязвimoe место такой формы - момент, когда два пациента одновременно нажимают «записаться» на одно и то же время у одного врача. Решается это транзакцией с уникальным индексом по паре «врач плюс дата и время приёма»: вторая попытка вставить ту же запись падает по ошибке уникальности индекса, и второй пациент сразу видит, что слот занят, вместо того чтобы клиника получила два человека на один талон.
Уведомление врачу и администратору о новой записи отправляю обычным запросом к Telegram Bot API прямо из PHP-обработчика формы - отдельный бот на aiogram и тем более выделенный сервер под него для этого не нужны. Aiogram беру, если клиника хочет, чтобы бот сам вёл диалог с пациентом: уточнял симптомы, предлагал свободные слоты и переносил запись без участия администратора - тогда это уже полноценный бот со своей логикой и хранением состояния диалога.
Если у клиники уже есть CRM вроде amoCRM или Bitrix24 и нужно просто прокинуть заявку из формы записи одновременно в CRM и в Telegram, без большого бэкенда обхожусь автоматизацией в n8n.
Платформа для сайта медицинского центра: Tilda, WordPress или разработка под заказ
Выбор платформы зависит от количества врачей, филиалов и от того, нужна ли интеграция с МИС.
| Критерий | Tilda | WordPress | Кастомная разработка |
|---|---|---|---|
| Кто редактирует контент | Администратор клиники сам, без разработчика | Администратор через админку после короткого обучения | Обычно через отдельную админ-панель с настройкой прав |
| Каталог врачей и услуг | Блоки Tilda, для сложных связок нужна доработка | Кастомные типы записей «Врачи» и «Услуги» со связкой | Полностью под задачу: фильтры по филиалу, стажу, цене |
| Запись с блокировкой слота | Готовый виджет записи или доработка внешней формой | Плагин записи или своя форма на PHP | Своя логика бронирования с транзакциями в MySQL |
| Обмен с МИС или CRM клиники | Через API Tilda и вебхуки | Через REST API WordPress и плагины | Прямая интеграция под конкретную МИС |
| Стоимость запуска у меня | от 30 000 ₽ | от 60 000 ₽ | от 100 000 ₽ |
Домен и SSL в таблицу не включаю: цена домена зависит только от зоны, а не от платформы сайта, а тип SSL-сертификата выбирается отдельно от того, лендинг это или сайт с каталогом врачей. Комиссия эквайринга, если клиника принимает оплату онлайн, тоже зависит от тарифа банка, а не от движка сайта.
Для клиники с несколькими филиалами, большим каталогом врачей и блогом ради SEO чаще беру сайт на WordPress - там удобнее держать десятки карточек врачей и услуг и не упираться в лимиты конструктора.
Бесплатный материал
🎁 Полезный скрипт в подарок
Подпишитесь на Telegram - пришлю готовый скрипт по этой теме.
Без спама. Отписка в 1 клик.
Лицензии и защита персональных данных на сайте клиники
Медицинская деятельность лицензируется, и по правилам предоставления платных медицинских услуг клиника обязана публично показывать пациенту информацию о лицензии: номер, дату выдачи, орган, который её выдал, и перечень видов деятельности. Обычно делаю под это отдельную страницу «Документы» с текстовым перечислением и сканами, а не мелкую ссылку в подвале сайта.
Второй момент - персональные данные. Форма записи собирает ФИО, телефон, иногда повод обращения, а это уже персональные данные пациента, и по 152-ФЗ хранить их нужно на серверах в России. Заводить таблицу пациентов в Google Sheets или Airtable ради удобства не стоит - это ровно тот случай, когда иностранное облако создаёт клинике реальные риски при проверке. Использую российский хостинг и, если клинике нужна CRM для заявок, беру российские решения либо храню записи в собственной базе на том же хостинге, где стоит сайт.
Сколько стоит сайт для медицинского центра и сроки разработки
Стоимость зависит от количества врачей и услуг, которые нужно завести, и от того, нужна ли интеграция с МИС или CRM. По своим услугам ориентируюсь на такие цифры:
- Сайт на Tilda: от 30 000 ₽, для клиники с одним-двумя филиалами и типовым списком услуг
- Комплексная интеграция для Tilda (CRM, эквайринг, СДЭК - если клиника, например, продаёт БАДы или медтехнику через тот же сайт): от 40 000 ₽
- Сайт на WordPress: от 60 000 ₽, оправдан, когда нужен большой каталог врачей и услуг плюс блог
- API или бэкенд на Laravel под личный кабинет пациента и интеграцию с МИС: от 100 000 ₽
- Автоматизация уведомлений и передачи заявок в CRM через n8n: от 25 000 ₽
- Техподдержка сайта клиники после запуска: от 15 000 ₽ в месяц
По срокам из практики: сайт на Tilda с записью и каталогом врачей обычно собираю за 3-4 недели, на WordPress с кастомными типами записей и блогом - за 4-6 недель, кастомную разработку с бэкендом на Laravel и своей логикой бронирования - от 8-10 недель, потому что там больше времени уходит на тестирование сценариев одновременной записи. Если непонятно, какой вариант подойдёт под конкретную клинику, разумнее сначала взять консультацию и обсудить сценарии записи и интеграции, чем сразу заказывать разработку вслепую.
Частые вопросы
Нужно ли размещать на сайте номер медицинской лицензии?
Да, по правилам предоставления платных медицинских услуг клиника обязана публично показывать пациенту сведения о лицензии: номер, дату выдачи, орган, который её выдал, и перечень видов деятельности. Проще всего вынести это на отдельную страницу с документами, а не прятать в подвале сайта.
Как хранить данные пациентов, которые оставили заявку через форму записи?
ФИО, телефон и повод обращения - это персональные данные, и по 152-ФЗ их нужно хранить на серверах в России. Не стоит заводить таблицу с заявками пациентов в Google Sheets или Airtable ради удобства - используйте российский хостинг или CRM с серверами в РФ.
Какая платформа подходит для клиники с несколькими филиалами и большим числом врачей?
При большом каталоге врачей, услуг по разным филиалам и блоге для SEO чаще подходит WordPress с кастомными типами записей. Tilda хорошо закрывает задачу для клиники с одним-двумя филиалами и типовым списком услуг, а сложную интеграцию с МИС и личный кабинет пациента обычно выносят в кастомную разработку.
Что делать, если в клинике уже есть МИС со своим расписанием врачей?
Не дублируйте расписание на сайте. Форма записи должна запрашивать свободные слоты у МИС через её API и отправлять туда же данные новой записи - так расписание остаётся в одном месте и не расходится между системами.