Ребилд стоматологического SaaS на WordPress: 33 часа за 18 дней
Миграция стоматологического сайта с Officite на WordPress + Elementor Pro — 33 часа за 18 дней, редиректы путей наследия, политика конфиденциальности из PDF преобразована в страницу.
Скриншоты сделаны автоматическими инструментами — некоторые элементы могли не загрузиться полностью или перекрываться. Для наиболее точного представления открыть действующий сайт →
Переделать сайт на новом стеке. Реализовать по спецификации. Без импровизаций. Передать готовым к переходу.
Клиент (конечный пользователь): Rappaport Dental
Формат сотрудничества: White-label разработка для маркетингового агентства из США
Сроки: май 2025 · 18 дней · 33 часа разработки · по графику, без перерасхода
Подход к ребилду
Стоматологическая практика переезжала с SaaS-платформы Officite на WordPress + Elementor Pro. Прежняя платформа плодила автоматические пути к статьям, которых не видно в обычной карте сайта, а политика конфиденциальности лежала только в виде PDF. За 18 дней и 33 часа разработки мы перебрали старые адреса в поисках скрытых путей, перенесли политику конфиденциальности в полноценную страницу и сдали ребилд строго по ТЗ агентства, без перерасхода.
Краткий обзор
| Поле | Значение |
|---|---|
| Отрасль клиента | Стоматология |
| Клиент | Rappaport Dental |
| Формат сотрудничества | White-label разработка WordPress для маркетингового агентства из США, специализирующегося на сайтах для локального бизнеса |
| Тип проекта | Ребилд WordPress: миграция с SaaS-платформы для стоматологии на WordPress + Elementor Pro на WP Engine |
| Объём | Весь сайт — услуги, о нас, контакты, политика конфиденциальности (перенесена из PDF), редиректы для путей, сгенерированных SaaS |
| Сроки | 18 дней (9–26 мая 2025), без задержек |
| Затраты | 33 часа разработки при оценке 33 часа — без перерасхода |
| Команда | 5 специалистов (разработка · QA · правки контента · PM) |
| Технологии | WordPress · Elementor Pro · Gravity Forms · WP Engine · Yoast · Screaming Frog · Site Checker (плагин QA от xaverPRO) |
| Сверка контента | Контент оригинала и ребилда сверены до сдачи — ничего не потеряно, ссылки целы, структура совпадает |
| Сдано | ТЗ выполнено строка в строку — редиректы, мета-заголовки, страница политики конфиденциальности, чистка SaaS-путей, контрольный список запуска |
| Раунды проверки | ≈5 раундов на протяжении 18 календарных дней |
| Трудоёмкость на задачу | 7 внутренних Redmine-задач · медиана 10 ч / P75 10 ч на задачу |
Постановка задачи
Rappaport Dental работал на проприетарной SaaS-платформе для стоматологической индустрии — управляемый хостинг со встроенной системой контента для стоматологий. Агентству требовалось перенести сайт на стандартный стек WordPress для большей редакционной свободы и долгосрочной управляемости SEO. В отличие от миграции между CMS, переход со стоматологического SaaS на WordPress — однонаправленный процесс: URL-соглашения старой платформы, структуры контента и автоматически генерируемые пути не ложатся чисто на WordPress-слаги.
Таблица Google Sheets агентства содержала каждый целевой URL, каждый мета-заголовок и описание, назначение шаблонов и стратегию редиректов для путей наследия. Также требовалась конвертация специфического контента: политика конфиденциальности практики существовала только как PDF на старой платформе и нуждалась в перестройке в полноценную страницу WordPress до запуска.
Все решения о том, какие старые адреса сохранять, перенаправлять или выводить из работы, принадлежали агентству. Наша задача — точно повторить их ТЗ.
Агентство закрывало не абстрактный риск карты редиректов, а вполне конкретный для переезда со стоматологического SaaS: такая платформа плодит структурированные пути под библиотеки статей, архивы категорий и разделы специализированного контента, которым в WordPress нет ровни.
Попади любой из этих автогенерированных путей в индекс и не окажись он в ТЗ на редиректы — обход агентства упёрся бы в пробел. Поэтому мы заведомо считали набор адресов SaaS-платформы враждебным, а не простым: исходили из того, что существуют пути, которых в обычном экспорте карты сайта не видно.
Контекст рисков. SaaS-платформы для стоматологии, подобные той, с которой мигрировал Rappaport Dental, генерируют URL-структуры, не охватываемые стандартной проверкой sitemap — пути архивов статей, категорийные слагы и секции контента, созданные провайдером, могут накапливаться в индексе, не появляясь в колонке sitemap агентства.
Сценарий сбоя при переключении — не сломанная главная, а обнаруженный при обходе кластер 4xx-путей, которые никто не предусмотрел в ТЗ. Корректная обработка этого ребилда требовала активного аудита URL-поверхности наследия на предмет автоматически сгенерированных путей, их передачи агентству до переключения и подтверждения: входят ли они в объём редиректов или выводятся из эксплуатации.
Как мы это сделали
1. Сборка на основе шаблонов. Весь сайт был собран на едином наборе шаблонов, применённых ко всем типам контента:
- Главная, О нас, Контакты и универсальный запасной шаблон
- Лендинг услуг + шаблон страницы услуги — покрытие всего каталога лечения практики
- Страница политики конфиденциальности — преобразована из PDF старой платформы в полноценную страницу WordPress с навигационным контентом
- Шаблоны для блога и общего контента
Шаблоны покрывали каждый тип контента из таблицы. Все будущие правки вносятся в одном месте на тип страницы.
2. ТЗ выполнено строка в строку, по таблице агентства. Таблица содержала каждый целевой URL вместе с редиректом со старого пути, каждый мета-заголовок и описание, каждое назначение шаблона. Мы повторили каждую строку как написано. Где таблица задавала редирект — мы его настроили. Где путь, сгенерированный SaaS, явно выводили из объёма — например, старые пути архивов статей, для которых агентство решило редиректы не делать, — мы подтвердили решение о выводе, а не гадали.
Коротко: при ребилде ТЗ — это обязательство агентства перед клиентом. Наша задача — не переосмыслить его, а выполнить без отклонений.
3. Проверка обходом. До переключения DNS Screaming Frog прошёл одновременно по стенду ребилда и старой SaaS-платформе. Статус-коды, цепочки редиректов, расхождения в мета-тегах и любые пути, найденные при обходе старого сайта, но отсутствующие в ТЗ агентства, — всё сверено до переключения. Контент страницы политики конфиденциальности сверили с исходным PDF. Повторный обход после запуска подтвердил, что внутренние ссылки работают на опубликованном домене.
4. Контрольный список запуска, закрыт до сдачи. Точность дизайна, работа форм, точность контента, SEO и аналитика, адаптивность, порядок миграции DNS на WP Engine — всё закрыто до сдачи. Проверка на разных устройствах в Chrome, Firefox, Safari и Edge на нескольких ширинах экрана.
Сначала надо было перебрать адреса SaaS, и только потом браться за сборку, — поэтому ТЗ на редиректы появилось первым. Путь архива статей без контента — не в карте сайта агентства, не в их ТЗ — всплыл при этом разборе; объём вывода мы подтвердили с агентством до переключения. Разработка опиралась на проверенный набор адресов, а не на карту сайта, которую мы считали полной.
Результаты
| Метрика | Результат |
|---|---|
| Точность ТЗ — редиректы | Все указанные агентством старые пути перенаправлены; автогенерированные SaaS-пути вне ТЗ подтверждены как выведенные |
| Точность ТЗ — мета-данные | Все мета-заголовки и описания проставлены согласно ТЗ |
| Точность ТЗ — шаблоны | Система шаблонов построена и применена на всём сайте |
| Точность ТЗ — политика конфиденциальности | Старый PDF перенесён в полноценную страницу WordPress |
| Сроки | 18 дней, сдано по графику |
| Трудоёмкость | 33 ч / 33 ч оценки разработки — без перерасхода, без расширения объёма |
| Проверка адаптивности | Ноль проблем с отображением на 4 браузерах × 6 разрешениях |
| Внутреннее QA | Все вопросы по объёму агентства закрыты до сдачи; после релиза раунд QA агентства добавил правки контента и ссылок в отдельном спринте |
| Статус сайта | Опубликован на WP Engine: rappdental.com. |
Если коротко: ТЗ агентства на миграцию выполнено как написано, в запланированный день переключения, и весь набор адресов старого сайта сверили с ТЗ до сдачи.
Контроль качества
В ходе QA перед сдачей плагин Site Checker выявил путь архива статей SaaS (/articles/dear_doctor/category/47365) с нестандартным слагом и без контента — именно тот класс автоматически сгенерированных путей, о котором предупреждал бриф (они не отображаются в стандартном экспорте sitemap). Параллельный проход QA подтвердил, что редиректы ещё не активны на тестовой среде.
Оба вопроса решили до сдачи. QA перед сдачей шло через Site Checker — см. наш подход к QA: категории проверок и порог нулевых ошибок. Свой контур проверки у агентства шёл после сдачи и передавал вопросы в общую очередь правок для нашего цикла исправлений, пока агентство не подписало приёмку.
Процесс
| Фаза | Длительность | Результат |
|---|---|---|
| Бриф и оценка | 3 дня | ТЗ агентства изучено; адреса SaaS перебраны; оценка 33 ч согласована |
| Разработка | ~10 дней | Весь сайт перестроен; политика конфиденциальности перенесена из PDF; карта редиректов настроена |
| Внутреннее QA и проверка | 3 дня | Вопросы зафиксированы; разбор путей SaaS завершён; все работы по ТЗ приняты |
| Проверка ТЗ | 1 день | Meta, редиректы и контент страниц сверены с таблицей |
| Сдача и переключение DNS | 1 день | Сайт запущен на WP Engine, без простоя |
Фазы перекрываются (QA шёл параллельно с поздней разработкой), поэтому календарный срок — 18 дней, а не сумма фаз.
Команда
Команда проекта
- Никита Тумашевич — ведущий разработчик (полная сборка сайта, система шаблонов, реализация редиректов)
- Павел Сажин, xaverPRO — QA и контроль доставки
- Анна Полунина — поддержка реализации и QA по всем страницам ребилда
- Евгений Карпов — правки контента и QA
- Антон Херсун, xaverPRO — руководитель проекта (оценка, коммуникация с аккаунт-менеджером агентства, приёмка)
Все решения по сохранению адресов и стратегии редиректов принадлежали агентству; наша роль — точно повторить их ТЗ. Публичным подрядчиком оставалось агентство; конечный клиент нас не видел.
Агентствам, заказывающим ребилд WordPress
На ребилде стоматологического сайта вы боитесь одного: после переезда часть старых адресов тихо отвалится. У одной практики структура контента разрастается внутри SaaS, плодя сотни путей вне карты сайта; у других каждую страницу заводят вручную и держат в карте сайта. Соберёте редиректы только по очевидным адресам — автогенерированные пути отвалятся молча. Сайт просядет в индексе, клиент заметит падение трафика на второй неделе, и вы будете разбираться в аналитике без готового списка старых адресов.
Подрядчику стоит задавать не вопрос «сможете ли переехать», а вопрос «как именно вы найдёте все старые адреса, включая те, которых не видно в карте сайта?»
Мы перебираем старый сайт сами и за результат отвечаем: пришлите адрес текущего сайта, черновик карты редиректов (если есть) или макеты — мы пройдём по сайту, найдём адреса-артефакты, которых не ловит обычный аудит, и подсветим, какие из них войдут в миграцию. Вернём фиксированную смету в часах. Аудит — без оплаты.
У вас ещё нет ТЗ? Пришлите описание в один абзац — мы вернёмся с вопросами, которые стоит задать. Прислать описание →
Site Checker запускается до того, как агентство что-либо видит.
Перед передачей каждый сборки в тестовой среде прогоняется через Site Checker — WordPress QA-плагин, который мы разработали и поддерживаем. Это шлюз с нулевой терпимостью к ошибкам: к агентству не уходит ничего с открытыми проблемами. Предупреждения рассматриваются и признаются некритическими; агентство получает чистый старт для своего слоя QA, а не тестовый сайт с известными проблемами в очереди.