Adept Studio

2026 · Website & SEO migration

A three-language dental clinic website in 7 days — with no drop in Google.

SanjaDent, a dental clinic in Belgrade, had a neglected WordPress site with a partial, word-for-word English translation and no German version — while most dental tourism demand in Serbia comes from German-speaking countries. The result: 23 pages in three languages, a static site with no CMS, and a domain migration with all 21 old URLs under 301 redirects.

Client
SanjaDent
Industry
Dentistry · dental tourism
Timeline
7 days
Scope
Design, copy, translation, SEO, launch

The project in four steps.

The job

A clinic with real international demand had a site that couldn’t serve it: WordPress not updated in years, a word-for-word English translation, no German, and unusable on a phone.

The decision

Instead of redesigning the old WordPress — a completely new, static site. No database, no plugins, no admin panel to maintain and pay for.

The real risk

The old site already ranked on Google. Every old URL was mapped with a 301 redirect to its new equivalent, so the move didn’t break existing traffic or indexed results.

The outcome

23 pages, three languages with separately written SEO copy (not translation), no third-party scripts — designed, built and live in seven days.

Their most valuable service, hidden in the wrong language.

The site was a WordPress install on a bought theme, last seriously touched years earlier. It worked, but looked neglected at every level: a fixed-width column on an empty background, justified text across the full width, a slider as the main element, and a footer with icons for social accounts that no longer existed.

The core problem wasn’t looks. The clinic offered a complete dental tourism service — X-ray review before arrival, a treatment plan with pricing, airport pick-up, accommodation, a local phone — and all of it was described only in Serbian, in one long block of text, on a page foreign patients never found in search.

Before · home — Content in a fixed column on an empty background, a slider with no purpose and a pile of keywords in the footer. Language option: English only.
Content in a fixed column on an empty background, a slider with no purpose and a pile of keywords in the footer. Language option: English only.
Before · about — Ten paragraphs with no hierarchy, and nowhere for a patient to book an appointment.
Ten paragraphs with no hierarchy, and nowhere for a patient to book an appointment.
Before · dental tourism — The most valuable service on offer, described only in Serbian — a language its audience doesn’t speak.
The most valuable service on offer, described only in Serbian — a language its audience doesn’t speak.

Four decisions before the first line of code.

Each was made before writing any code, because each one changes all the others.

A. A static site instead of a CMS

The clinic has no one publishing content daily — text changes a few times a year. A CMS there is pure overhead: a database, updates, vulnerable plugins, a monthly bill. The site is plain HTML and CSS with no third-party scripts: less to hack and predictable on every device.

B. Three languages written, not translated

The old English version was a literal translation — grammatical, but without a single phrase a foreign patient actually types into Google. The new English and German versions were written as standalone copy around the terms those audiences search for. URLs, titles, meta descriptions and links are built from those terms.

C. Migration as its own task

Old URLs stop existing, but Google already has them indexed. Before launch we listed every old URL — including English subpages and local pages like /stomatolog-cerak-filmski-grad/ — and mapped each with a 301 redirect. We added hreflang between the three languages, canonical URLs, a 23-URL sitemap and structured data for the clinic.

D. Visible to AI search too

More patients now start with a question to an AI assistant instead of a Google search. The site includes an llms.txt file — a summary of the clinic, services, price range and location in a format AI assistants read — so the answer about a dentist in Belgrade has an accurate source.

The result in numbers.

Measured on the live site.

  • 23 pages live across all three languages
  • 3 languages with separately written copy — Serbian, English, German
  • 21 301 redirects — every old URL leads to its new equivalent
  • 7 days from kickoff to the site going live
  • 0 third-party scripts or trackers on the page
  • 121 KB HTML, CSS and JavaScript of the home page, combined

Everything we did, in one place.

Design

Visual system, typography and page templates from scratch, keeping the clinic’s existing logo. Before/after gallery, price list, FAQ.

Copy

All copy written in Serbian, then separate English and German versions written for search in those languages — not translations.

SEO

URL structure, per-page titles and meta descriptions, hreflang for sr / en / de and x-default, canonical URLs, a 23-URL sitemap, robots.txt, structured data.

Migration

Inventory of old URLs, 21 redirect rules, domain and DNS moved from the old host, and a check that every old URL still leads somewhere.

Infrastructure

Deployed on a CDN with HTTPS and caching — no server or database to maintain. Visitor analytics through a first-party route, no external tracker.

AI visibility

llms.txt with a machine-readable description of the clinic, services, price range and location.

Three sites, not one translated.

Each version has its own copy, its own URLs and its own keywords — written for a patient searching in that language.

Is your website no longer doing its job?

Moving off an old system, a new language version, or a new site from scratch — book 15 minutes, we’ll look at your current site and tell you what we’d change and in what order.

Book a 15-min video call · Visit the site: sanjadent.rs

AdeptStudio ← {{ cz.back }}
{{ m.cta }}
{{ t.navCta }}
{{ t.eyebrow }} {{ t.eyebrow2 }}

{{ t.h1a }} {{ t.h1b }} {{ t.h1c }}

{{ t.lead }}

✓{{ tr }}
{{ f.name }}
{{ f.initial }}
{{ f.name }}{{ f.roleShort }}
{{ u.k }}
{{ u.t }}
{{ u.b }}
{{ t.workKicker }}

{{ t.workTitle }}

{{ t.workSub }}

{{ f.stLabel }}·{{ f.indL }}

{{ f.name }}

{{ f.short }}

{{ tg }} {{ f.langs }}
{{ m.live }} ↗
{{ f.shotAlt }}
{{ f.name }}{{ f.indL }}
{{ p.initial }}
{{ t.noProjects }}
(03) — WORKING WITH CANADIAN BUSINESSES

Your hours. Your currency. No surprises.

We work remotely with small businesses across Canada. Calls happen in your business hours, quotes are fixed and in Canadian dollars, and you pay nothing up front.

Google & AI search visibility →
{{ c.k }}{{ c.t }}{{ c.b }}
{{ t.processKicker }}

{{ t.processTitle }}

{{ t.processSub }}

{{ step.quote }}

{{ step.body }}

{{ t.youGet }}{{ step.n }}/04
{{ step.title }}
✓{{ o }}
{{ t.studioKicker }}

{{ t.foundersTitle }}

{{ f.name }}
{{ f.role }}

{{ f.quote }}

{{ t.onProject }}
→ {{ d }}
{{ s.n }} {{ s.title }} {{ s.body }} {{ s.more }} →
{{ t.estKicker }}

{{ t.estTitle }}

{{ t.e1 }}
{{ t.e2 }}
{{ t.e3 }}
{{ t.e4 }}
Websites for dental clinics · Canada

A dental website that books new patients.

We redesign clinic websites so new patients can find you, trust you and book an appointment from their phone in under a minute.

✓ Fixed quote in CAD✓ No deposit✓ Calls in your business hours
(01) — WHAT WE USUALLY FIND

Most clinic websites lose patients in the first ten seconds.

Before our call we look at your current site. On the call we show you exactly what we found — and you keep the notes, whether you work with us or not.

{{ p.n }}{{ p.t }}{{ p.b }}
(02) — DENTAL WORK

Dental clinic work.

(03) — WHAT YOU GET

Built for patients, not for awards.

Typical clinic site: {{ dPrice }}, ready in {{ dWeeks }} weeks. Fixed quote after our call. 50% when you approve the design, 50% at launch.
{{ g.n }}{{ g.t }}{{ g.b }}
{{ vt.eyebrow }}

{{ vt.h1a }}{{ vt.h1b }}

{{ vt.lead }}

✓ {{ tr }}
{{ vt.k1 }}

{{ vt.h2a }}

{{ vt.p2 }}

{{ l.k }}

{{ l.t }}

{{ l.b }}

{{ vt.k2 }}

{{ vt.h2b1 }}{{ vt.h2b2 }}

{{ vt.p3 }}

{{ vt.cta3 }} →
  1. {{ c.n }}{{ c.t }}{{ c.b }}
{{ vt.k3 }}

{{ vt.h2c }}

{{ vt.p4 }}

{{ vt.whoL }}
{{ w }}
{{ g.n }}{{ g.t }}{{ g.b }}
{{ vt.k4 }}

{{ vt.h2d1 }}{{ vt.h2d2 }}

{{ vt.p5 }}

← {{ cz.back }}
{{ tg }} ● {{ cz.liveTag }}

{{ cz.h1a }} {{ cz.h1b }}{{ cz.h1c }}

{{ cz.lead }}

sanjadent.rs
Nova početna strana sanjadent.rs
{{ f.k }}
{{ f.v }}
{{ cz.sumKicker }}

{{ cz.sumTitle }}

{{ c.n }}{{ c.t }}{{ c.b }}
{{ cz.befKicker }}

{{ cz.befTitle }}

{{ p }}

{{ b.tag }}
{{ b.tag }}{{ b.cap }}
{{ cz.apKicker }}

{{ cz.apTitle }}

{{ cz.apSub }}

{{ d.k }}

{{ d.t }}

{{ d.b }}

{{ ch }}
{{ cz.lgKicker }}

{{ cz.lgTitle }}

{{ cz.lgSub }}

{{ cz.resKicker }}

{{ cz.resTitle }}

{{ cz.resSub }}

{{ n.v }}{{ n.unit }}
{{ n.b }}
{{ cz.techKicker }}

{{ cz.techTitle }}

{{ x.k }}{{ x.b }}

{{ cz.ctaTitle }}

{{ cz.ctaSub }}

{{ t.faqKicker }}

{{ t.faqA }} {{ t.faqB }}

{{ f.a }}

{{ t.navCta }} →
ADEPT STUDIO · {{ t.inqKicker }}

{{ t.inqTitle }}

{{ t.inqSub }}

{{ consentErr }}
{{ inqNet }}
{{ t.inqNote }}
{{ t.okKicker }}

{{ t.okTitle }}

{{ t.okBody }}

{{ t.okCal }} ↗

{{ t.privacy }}

{{ pv.h }}{{ pv.b }}