Mapped offer · Found
How a premium dental clinic’s rebuild caught 15 broken links before launch
Orvelle Dental (name changed) is a premium clinic in the DACH region. Its bilingual site ran on a heavy commercial theme and a page builder. I replaced both with a lean theme of my own, migrated every page by script, rewrote the content to medical-advertising rules, and gave every treatment page a booking path. Launch is waiting on the clinic’s sign-off.
Pre-launch · launch pending the clinic’s sign-off · redirect audit 2026-10-03
01 · Before
A beautiful clinic on a heavy, leaky website What the audit found.
The clinic itself is calm, precise and premium. Its website wasn’t. A commercial theme and a page builder slowed every page; duplicate treatment pages competed with each other for the same searches; older AI-written posts made claims nobody had checked; and the English pages had drifted behind the German. Worst of all, enquiries from the contact form were landing in spam.
- theme
- problem: Commercial theme, a page builder and its add-ons
- treatments
- problem: Duplicate pages competing for the same searches
- older posts
- problem: AI-written claims nobody had checked
- english
- risk: Translations drifting behind the German pages
- enquiries
- problem: Contact-form mail landing in spam
- AI readiness
- risk: No llms.txt, thin structured data
- relaunch
- risk: Old URLs at risk of breaking on switch day
-
/treatments/implants-2019/301/implants/200 Fine -
/en/smile-design/301/en/aesthetics/smile/404 Would have broken -
archived URL404new 301/whitening/200 Fixed before launch
02 · What I built
A lean rebuild and a campaign page Gold is a human decision. Teal is an agent at work.
Part 1 · The rebuild One strong page per treatment, every link kept, every page ending in a booking path
I let the clinic’s own Search Console data decide the structure: which pages rank, which compete, which are closest to a win. Then a replayable chain of scripts moved every page off the page builder into native blocks, without copying the database. Content was rewritten to medical-advertising rules and retranslated, and a single synced booking pattern now closes every treatment page, in both languages.
- Step 1 (input): Search Console, what ranks, what competes.
- Step 2 (ai agent): Merge plan, one page per treatment.
- Step 3 (human gate): Plan approved, with the clinic.
- Step 4 (automated): Scripted migration, builder → native blocks.
- Step 5 (ai agent): Rewrite & translate, DE + EN. Rejected here: Claims it can’t prove (removed).
- Step 6 (automated): Redirect audit, every hop, both sites. Rejected here: 15 would-be 404s (fixed first).
- Step 7 (sign-off): Go-live, waiting on the clinic.
Treatments › Implants
Dental implants
A fixed tooth that looks and feels like your own. Planned digitally first, explained at every step.
- 1Consultation
- 23D planning
- 3Placement
- 4Aftercare
Treatments › Implants
Dental implants
A fixed tooth that looks and feels like your own. Planned digitally first.
- 1Consultation
- 23D planning
- 3Placement
- 4Aftercare
Part 2 · The campaign page One treatment, one page, one job: book a consultation, and say which ad sent you
For one premium cosmetic treatment, ads and printed posters were landing on general pages with no booking path and no way to tell which campaign worked. I built a dedicated bilingual campaign page with a single job. The form carries the campaign’s source, medium and name, from the ad link or the poster’s QR code, into the enquiry the clinic receives. Each enquiry arrives already tagged.
Smile design · by appointment
See your new smile before anything is touched.
A digital design and a try-in mock-up come first. You decide with the result in front of you.
- Consultation
- Digital design
- Try-in
- Planning
- Treatment
- Aftercare
Book a smile consultation
Your name Phone or email Preferred time ▾ Request my appointmentsource · medium · campaign carried in hidden fields
New enquiry · Smile design
Request from the campaign page
- Preferred time
- Weekday mornings
- Language
- English
Where it came from
03 · Who did what
Who did what Scripts migrate. People decide what a clinic may claim.
-
agent://researcher
Pulled Search Console data to find duplicate pages competing for the same searches, and the pages closest to a win.
-
agent://architect
Drew the merge plan: one hub per treatment, guides beneath it, a redirect for everything retired.
-
human://vegardHUMAN GATE
Walked the plan through with the clinic and approved it page by page.
-
agent://builder
Built the lean theme and a blocks plugin, then migrated every page by script: replayable, with backups, no database copy.
-
agent://writer
Rewrote content to medical-advertising rules, wrote 68 image alt texts and retranslated 33+ English pages.
Never allowed to: promise a treatment result or invent a number.
-
agent://fact-checker
Proofread both languages: 103 fixes logged, and every claim checked against what the clinic can confirm.
-
agent://tester
Requested every URL on both sites and followed each redirect hop by hop. 15 would have broken; all were fixed.
-
human://vegardHUMAN GATE
Moved the form mail to a dedicated EU sending service, so enquiries reach the inbox.
-
human://clientHUMAN GATE
The clinic signs off before go-live. That is the gate this project is waiting on.
04 · Results
Results so far Pre-launch work, dated. Outcomes after go-live.
| Number | What it measures | How it was measured | Observed |
|---|---|---|---|
| 15✓ verified | would-be 404s caught before launch | hop-by-hop redirect audit (92 sitemap URLs, 132 internal links, 17 archive URLs) | 2026-10-03 |
| 19✓ verified | treatment pages ending in a booking path | pattern insert log | 2026-09-28 |
| 43✓ verified | German pages re-optimised | SEO field log | 2026-09-29 |
| 33+✓ verified | English pages retranslated | translation log | 2026-09-29 |
| 68✓ verified | image alt texts written | change log | 2026-09-29 |
| 103✓ verified | proofreading fixes | change log | 2026-09-29 |
| Not measured yet | Page speed, rankings and enquiries after launch | measured from launch day; first report 90 days after | — |
| Not measured yet | Enquiries per campaign source | tagging is built; counted once the campaign runs | — |
This case carries a PRE-LAUNCH label until the site is live. I add outcome numbers only after they have been measured.
05 · Running costs
What it costs to run
The site stays on WordPress, which the clinic’s team already knows how to edit, but without the page builder and its add-ons. That means fewer licences to renew, fewer plugins to update and fewer things to break. Form mail goes through a dedicated EU sending service. The campaign page is a single static file, so hosting it costs next to nothing.
06 · Ownership
What the client owns
- The theme and blocks pluginVersioned releases, built for this clinic, no page builder.
- The migration scriptsA replayable chain: run it again and get the same result.
- The redirect mapEvery retired URL and where it now points, audited hop by hop.
- The SEO and translation logs43 German pages, 33+ English pages, 68 alt texts, 103 fixes.
- The campaign pageSource file, form fields and conversion tracking.
- Mail, DNS and a switch-day checklistSending domain, records and the go-live steps, written down.
07 · What I’d build for you
An AI-ready rebuild that keeps every link and ends every page in a next step
If your site runs on a heavy theme or a page builder, I’ll rebuild it lean, keep every URL that matters, remove what AI assistants and your regulator would object to, and give every service page a clear next step. For a single campaign, start with a landing page.
- Search Console decides the structure, not opinions
- A hop-by-hop redirect audit before switch day
- Structured data and llms.txt so AI assistants describe you accurately
- A booking or enquiry path on every service page, tagged by source
Not for you if you need it live next week. A rebuild that keeps every link takes 3–6 weeks.
Or start smaller · Chosen
Conversion Landing Page & Funnel
from €2,400 · $2,650 typical €2.4k–5k08 · Under the hood The technical depth, for your CTO
- Theme
- A classic theme with
theme.json, core blocks and block patterns. A companion plugin adds native blocks: hero, gallery, reviews, booking bar, schema and llms.txt. Vanilla JS, no jQuery, self-hosted fonts. - Migration
- A replayable script chain over the REST API turns page-builder content into native blocks, re-lays out the pages and verifies the text order, with backups at every step.
- Consolidation
- Search Console data drives the merge plan: hub and guide clusters, merges, a 301 map and an internal-linking plan.
- SEO pass
- New SEO fields for 43 German pages, 68 image alt texts and 103 proofreading fixes, all logged.
- Translation
- An XLIFF round-trip through the multilingual plugin with a translation memory and stale-job detection; 33+ English pages retranslated.
- Redirects
- 15 would-be 404s found by a hop-by-hop audit of live and rebuilt sites: 92 sitemap URLs, 132 internal links, 17 archive URLs.
- Booking pattern
- One synced pattern appended to 19 treatment pages and translated once, so the English pages update automatically.
- Campaign page
- A single bilingual file with a language switch, campaign fields carried from the URL into the form, a sticky call to action and a conversion event on submit.


