Ребилд сайта детской стоматологии — канонизация, Portland
Ребилд сайта детской стоматологии по спецификации агентства в Portland — 26 часов, канонизация с трейлинг-слешем, сохранение поддиректории блога, интеграция GTM.
Скриншоты сделаны автоматическими инструментами — некоторые элементы могли не загрузиться полностью или перекрываться. Для наиболее точного представления открыть действующий сайт →
Переделать сайт на новом стеке. Реализовать по спецификации. Без импровизаций. Передать готовым к переходу.
Клиент (конечный пользователь): Pine Tree Pediatric Dentistry — детская стоматология без ортодонтии, Portland, OR
Формат сотрудничества: White-label разработка для маркетингового агентства из США
Сроки: январь – февраль 2025 · основная разработка ~8 дней · 26 часов · в срок, без перерасхода
Подход к ребилду
Сайт детской стоматологии без ортодонтии в Portland мы пересобрали из единственной таблицы правок — без отдельной карты сайта. Ключевым требованием была канонизация URL, а не структура страниц. Каждая страница должна была принудительно вести редирект с трейлинг-слешем, а блог практики по адресу /portland-pediatric-dental-blog/ — сохранить свой трёхсегментный путь. Без этих двух правил поисковые системы индексировали бы дублирующиеся версии каждого URL, а возвращающиеся родители попадали бы на битые пути.
Агентство владело стратегией; мы — исполнением.
Краткий обзор
| Параметр | Значение |
|---|---|
| Сфера клиента | Медицина — детская стоматология |
| Клиент | Pine Tree Pediatric Dentistry (детская стоматология без ортодонтии, Portland, OR) |
| Формат сотрудничества | White-label разработка WordPress для маркетингового агентства из США, специализирующегося на сайтах для локального бизнеса |
| Тип проекта | Ребилд WordPress на WP Engine |
| Объём | Полный ребилд сайта — услуги детской стоматологии, ресурсы для пациентов, блог, контактные формы, интеграция GTM |
| Сроки | ~8 дней основная разработка (23–30 янв 2025); правки из списка дорабатывали до 27 фев 2025 |
| Затраты | 26 часов при оценке — без перерасхода |
| Команда | 3 специалиста (~20 ч разработка · 4 ч QA · 2 ч PM) |
| Технологии | WordPress · Elementor Pro · Gravity Forms · WP Engine · Yoast · Header Footer Code Manager · Site Checker (плагин QA от xaverPRO) |
| Проверка контента | Разница оригинал-ребилд проверена до передачи — отсутствие пропущенного контента, битых внутренних ссылок и структурных расхождений |
| Результат | Полный ребилд сайта по спецификации; канонический редирект с трейлинг-слешем применён на всём сайте; пути поддиректории блога сохранены; интеграция GTM через Header Footer Code Manager; все пункты из списка правок закрыты до согласования агентством |
| Раунды проверки | ≈4 раунда за 8 дней |
| Затраты на задачу | 5 внутренних задач Redmine · медиана 26 ч / P75 26 ч на задачу |
Постановка задачи
Маркетинговое агентство из США, нанятое Pine Tree Pediatric Dentistry — детской стоматологией без ортодонтии в Portland, OR — привлекло нас для ребилда существующего сайта на Elementor Pro. Практика обслуживает только детей, с единой структурой услуг: профилактика, восстановительное лечение, седативная стоматология, стоматология для особых потребностей, послеоперационные инструкции и рекомендации к первому визиту.
В отличие от практик, ведущих параллельно ортодонтию и детскую стоматологию, здесь один маршрут пациента — родитель записывает ребёнка, проходит по единому пути услуг и заполняет один набор контактных форм. Простая структура услуг делала технические требования жёстче, а не мягче: каждый URL должен был вести себя одинаково, каждая внутренняя ссылка — корректно открываться, а аналитика — работать с первой же загрузки страницы после переключения.
Задача была точной. Работать по спецификации агентства и списку правок; выполнять каждую строку как написано; не выходить на прямой контакт с клиентом всё это время. Спецификацию агентство передало одной таблицей правок — без отдельной карты сайта, карты шаблонов или перечня страниц. Полную структуру страниц пришлось восстанавливать из задач и переписки в чате, а не сверять с формальной таблицей. Так был устроен бриф — это не наш выбор по процессу.
Тестовая среда работала на WP Engine. Агентство страховалось от ошибок канонизации URL, характерных для этого ребилда: посты блога практики лежали в трёхсегментном пути (/portland-pediatric-dental-blog/), и каждый URL на сайте должен был перенаправляться с трейлинг-слешем. Без этих двух правил поисковые роботы индексировали бы каждую страницу в двух вариантах, а родители, переходящие по старым закладкам, попадали бы на битые пути.
Контекст рисков. Сайт детской стоматологии на локальном рынке обслуживает родителей, которые ищут стоматолога для своего ребёнка — часто в условиях временного давления. Структура URL сайта входит в профиль практики в локальном поиске: блог в
/portland-pediatric-dental-blog/накапливает ссылки и закладки со временем.Ребилд, который корректно переносит контент, но оставляет
example.com/pageиexample.com/page/открытыми как два отдельных URL, отдаёт поисковым системам сигнал дублированного контента, а возвращающемуся посетителю — разное поведение по одной ссылке. При визуальной проверке тестовой среды этот сбой не виден — оба пути загружают страницу, — но проявляется при каждом обходе после запуска. Мы устранили это до переключения, а не после: в этом и было ключевое требование.
Как мы это сделали
1. Сборка от шаблонов по структуре детских услуг. Структура услуг сайта повторяла шаблон детской стоматологии без ортодонтии: страница-витрина услуг вела к отдельным страницам по каждому клиническому направлению (профилактика, восстановительное лечение, седативная стоматология, стоматология для особых потребностей, послеоперационный уход), а рядом — страницы первого визита и форм для пациентов.
У каждой страницы услуги — одна структура: описание процедуры, рекомендации для родителей и контактная форма, уходящая в практику. Блог в собственной поддиректории практики /portland-pediatric-dental-blog/ мы пересобрали с тем же путём, чтобы сохранить ссылки с прежних публикаций.
2. Канонизация трейлинг-слеша на всём сайте. Спецификация агентства требовала, чтобы все страницы — статические и динамические — открывались только с трейлинг-слешем, а все варианты без слеша перенаправлялись на каноническую форму со слешем. Мы сделали это через настройки постоянных ссылок WordPress и правила редиректов, применив их последовательно к страницам услуг, постам блога и архиву блога. Это сняло проблему дублирования URL до запуска и убрало последующие артефакты в обходе.
3. Спецификация выполнена строка за строкой, по таблице агентства. Список правок агентства фиксировал каждый пробел в контенте и функциональности относительно исходного сайта. Незавершённые блоки — включая страницу седативной стоматологии, на которой отсутствовали разделы из оригинала, — мы привели в соответствие с оригиналом.
Страницу послеоперационных инструкций с кнопкой загрузки PDF, которого в оригинале ещё не было, мы отметили и передали агентству, а не тихо пропустили. Пункты услуг, пришедшие без ссылок на отдельные страницы, мы нашли и исправили. Ни один пробел не закрыли по догадке.
Коротко: при ребилде спецификация — это контракт между агентством и его клиентом. Задача команды разработки — защитить этот контракт, а не достраивать его на догадках.
4. Интеграция GTM через Header Footer Code Manager, подтверждена до передачи. Агентство требовало перенести скрипт Google Tag Manager с исходного рабочего сайта и поставить его через плагин Header Footer Code Manager. Плагин на тестовой среде стоял, но сам скрипт GTM ещё не был подключён — пробел, незаметный при визуальной QA-проверке, который тихо обрушил бы сбор аналитики практики с первой же сессии после переключения.
Мы проверили интеграцию на работоспособность до того, как сборка ушла в очередь проверки агентства. Header Footer Code Manager взяли вместо встраивания в тему: он держит все сторонние скрипты в одном месте — правки переживают обновления темы, и агентство может проверять или менять размещения, не трогая код.
Принудительный трейлинг-слеш и путь /portland-pediatric-dental-blog/ нужно было подтвердить до передачи — при визуальной QA их не видно, но они проявились бы при каждом обходе и в каждой закладке возвращающегося родителя после переключения. Снять дублирование URL до запуска и поймать хост тестовой среды в футерной ссылке раньше, чем его увидит агентство, — вот для чего нужен был внутренний QA-раунд.
Результаты
| Метрика | Результат |
|---|---|
| Точность спецификации — структура услуг | Полная структура детских услуг восстановлена по спецификации; все страницы услуг и ресурсов для пациентов сданы |
| Точность спецификации — паритет контента | Страница седативной стоматологии восстановлена с добавлением недостающих разделов; все остальные страницы соответствуют исходной структуре |
| Канонизация трейлинг-слеша | Применена на всём сайте — страницы услуг, посты блога и архив блога используют редирект с трейлинг-слешем |
| Поддиректория блога | Структура пути /portland-pediatric-dental-blog/ сохранена при ребилде |
| Интеграция GTM | Скрипт Google Tag Manager развёрнут через Header Footer Code Manager, подтверждён до передачи |
| Ссылки на услуги | Пункты страниц услуг связаны с отдельными страницами услуг |
| Сроки | Основная разработка ~8 дней (23–30 янв 2025); все пункты очереди задач решены к 27 фев 2025 |
| Затраты | 26 часов при оценке — без перерасхода, без расширения объёма |
| Адаптивность | QA на разных устройствах подтверждён для большого экрана и мобильных |
| Статус сайта | Работает на WP Engine, открывается по адресу https://www.pinetreepediatricdentistry.com/. |
Если коротко: спецификацию агентства мы выполнили как написано по всей структуре детских услуг, уложились в согласованные часы, и все пункты из списка правок закрыли до утверждения. Сайт работает.
Контроль качества
Внутренняя проверка ссылок (issue #159) нашла кнопку в футере, которая вела на хост тестовой среды вместо опубликованного пути your-first-visit — битый URL, незаметный при визуальной проверке. А сверка паритета показала, что каждая страница открывалась и с трейлинг-слешем, и без него — тот самый сигнал дублированного контента, ради которого и писалась спецификация агентства. Оба дефекта мы исправили до передачи.
До сдачи QA проходил через Site Checker — см. наш подход к QA: категории и порог нулевых ошибок. Свой проверочный контур агентства работал после передачи и заводил замечания в общий список правок для нашего цикла исправлений до согласования.
Процесс
| Этап | Длительность | Результат |
|---|---|---|
| Бриф и оценка | 1 день | Спецификация агентства проверена; оценка 26 ч согласована |
| Разработка | ~8 дней | Полный ребилд сайта на тестовой среде WP Engine; реализована единая структура услуг; применены правила трейлинг-слеша |
| Внутреннее QA и проверка | 2 дня | Проработан список правок; исправлены ссылки на услуги, паритет контента седативной стоматологии, интеграция GTM |
| Проверка спецификации | 1 день | Паритет контента и канонизация URL подтверждены по спецификации |
| Сдача и DNS-переключение | 1 день | Сайт запущен на WP Engine, без простоев |
Этапы перекрываются (QA шёл параллельно с поздней разработкой), поэтому календарный срок — примерно 35 дней от открытия проекта до финального согласования списка правок, при том что основная разработка завершилась за первые 8 дней.
Команда
Команда проекта
- Евгений Карпов — ведущий разработчик (полный ребилд сайта, система шаблонов, канонизация трейлинг-слеша)
- Анна Полунина — очередь задач QA и исправление ссылок на страницы услуг
- Никита Тумашевич — координация QA и маршрутизация задач
- Антон Херсун, xaverPRO — руководитель проекта (оценка, общение со стороны агентства, согласование)
Агентство оставалось публичным подрядчиком; конечный клиент нас не видел всё переключение и раунды исправлений после сдачи. Все решения по структуре URL, стратегии редиректов и архитектуре страниц услуг принадлежали агентству; наша роль — точно исполнить поставленную ими спецификацию.
Агентствам, заказывающим ребилд WordPress
Ребилд сайта детской стоматологии ставит под удар URL-архитектуру, которая уже приносит трафик и ссылки. У этой практики — один филиал с блогом о детской гигиене; у сетевой клиники это каталог процедур и страницы врачей. Не настроишь редиректы — старые адреса начнут отдавать 404 и закладки родителей уйдут в никуда. Не зафиксируешь правила слеша — Google увидит дубли одной и той же страницы. Перезапишутся мета-теги при импорте — пропадут размеченные сниппеты, которые держат практику в выдаче.
Подрядчику стоит задавать не вопрос «перенесёте ли вы сайт?», а вопрос «как именно вы зафиксируете правила URL и закроете каждую строку редиректов».
Пришлите адрес текущего сайта, черновик карты редиректов (если есть) или макеты. Мы прогоним ваш сайт на дубли путей, проверим карту редиректов под нагрузкой и отметим разметку, которую после миграции придётся восстанавливать вручную. Смету в часах вернём за несколько часов, аудит бесплатный.
У вас ещё нет ТЗ? Пришлите описание в один абзац — мы вернёмся с вопросами, которые стоит задать. Прислать описание →
Site Checker запускается до того, как агентство что-либо видит.
Перед передачей каждый сборки в тестовой среде прогоняется через Site Checker — WordPress QA-плагин, который мы разработали и поддерживаем. Это шлюз с нулевой терпимостью к ошибкам: к агентству не уходит ничего с открытыми проблемами. Предупреждения рассматриваются и признаются некритическими; агентство получает чистый старт для своего слоя QA, а не тестовый сайт с известными проблемами в очереди.