Ребилд сайта детской стоматологии — канонизация, Portland

Ребилд сайта детской стоматологии по спецификации агентства в Portland — 26 часов, канонизация с трейлинг-слешем, сохранение поддиректории блога, интеграция GTM.

Индустрия Здравоохранение
Взаимодействие White-label · американское маркетинговое агентство
Выполнено 8 календарных дней · в срок
Адрес сайта pinetreepediatricdentistry.com
26ч за 8 дней
pinetreepediatricdentistry.com · desktop
pinetreepediatricdentistry.com · mobile

Скриншоты сделаны автоматическими инструментами — некоторые элементы могли не загрузиться полностью или перекрываться. Для наиболее точного представления открыть действующий сайт →

— Техническое задание

Переделать сайт на новом стеке. Реализовать по спецификации. Без импровизаций. Передать готовым к переходу.

Клиент (конечный пользователь): 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 от )
Проверка контента Разница оригинал-ребилд проверена до передачи — отсутствие пропущенного контента, битых внутренних ссылок и структурных расхождений
Результат Полный ребилд сайта по спецификации; канонический редирект с трейлинг-слешем применён на всём сайте; пути поддиректории блога сохранены; интеграция 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 и маршрутизация задач
  • Антон Херсун, — руководитель проекта (оценка, общение со стороны агентства, согласование)

Агентство оставалось публичным подрядчиком; конечный клиент нас не видел всё переключение и раунды исправлений после сдачи. Все решения по структуре URL, стратегии редиректов и архитектуре страниц услуг принадлежали агентству; наша роль — точно исполнить поставленную ими спецификацию.

Агентствам, заказывающим ребилд WordPress

Ребилд сайта детской стоматологии ставит под удар URL-архитектуру, которая уже приносит трафик и ссылки. У этой практики — один филиал с блогом о детской гигиене; у сетевой клиники это каталог процедур и страницы врачей. Не настроишь редиректы — старые адреса начнут отдавать 404 и закладки родителей уйдут в никуда. Не зафиксируешь правила слеша — Google увидит дубли одной и той же страницы. Перезапишутся мета-теги при импорте — пропадут размеченные сниппеты, которые держат практику в выдаче.

Подрядчику стоит задавать не вопрос «перенесёте ли вы сайт?», а вопрос «как именно вы зафиксируете правила URL и закроете каждую строку редиректов».

Пришлите адрес текущего сайта, черновик карты редиректов (если есть) или макеты. Мы прогоним ваш сайт на дубли путей, проверим карту редиректов под нагрузкой и отметим разметку, которую после миграции придётся восстанавливать вручную. Смету в часах вернём за несколько часов, аудит бесплатный.

Запросить аудит ТЗ →

У вас ещё нет ТЗ? Пришлите описание в один абзац — мы вернёмся с вопросами, которые стоит задать. Прислать описание →

— QA-контроль перед передачей

Site Checker запускается до того, как агентство что-либо видит.

Перед передачей каждый сборки в тестовой среде прогоняется через Site Checker — WordPress QA-плагин, который мы разработали и поддерживаем. Это шлюз с нулевой терпимостью к ошибкам: к агентству не уходит ничего с открытыми проблемами. Предупреждения рассматриваются и признаются некритическими; агентство получает чистый старт для своего слоя QA, а не тестовый сайт с известными проблемами в очереди.

Проверка базовых настроекпройдено
Аудит контента и SEO-поверхностипройдено
Целостность структуры URLпройдено
Нормализация языка контентапройдено
Аудит меню и виджетовпройдено
Сравнение контента: оригинал и ребилдпройдено
Захват скриншотов в нескольких разрешенияхпройдено

Не уверены, подходит ли ваш проект под этот формат?

Прокрутить вверх