Case Study: How a 9-Location Dental Practice Group Fixed Keyword Cannibalization and Tripled Map Pack Visibility — OnyxRank
**Industry:** Dental / Multi-Location Healthcare Practice
**Plan:** [OnyxRank](https://onyxrank.com) Growth
**Timeline:** 4 months
**Key Result:** Map pack appearances up **3.1x** across 9 locations; organic new-patient form fills up **218%**; audit score from **34 → 91**
---
The Challenge
A regional dental practice group — we'll call them BrightPath Dental — had grown fast. Nine locations across three metro areas, all opened or acquired within five years. On paper, this should have been a local SEO advantage: nine chances to dominate "dentist near me" searches instead of one.
Instead, it was working against them.
Every location page on their site had been built from the same template: identical service descriptions, identical "Why Choose Us" copy, identical staff bios reused across offices, and near-duplicate meta titles like "BrightPath Dental — [City] Location." When OnyxRank ran the initial audit, the diagnosis was clear: **BrightPath wasn't competing against other dental practices in search results — they were competing against themselves.**
The technical picture:
- **Audit health score**: 34/100
- **Keyword cannibalization**: 61 keyword/location pairs where two or more BrightPath pages competed for the same query, splitting ranking signal instead of consolidating it
- **Map pack presence**: Appearing in the local 3-pack for only 2 of 9 locations, and only for branded searches
- **Duplicate content**: 78% textual overlap between location pages, flagged as a content-quality risk
- **Schema markup**: No `Dentist` or `MedicalOrganization` structured data on any location page — Google had no structured way to associate each page with a distinct physical office, hours, or accepted insurance
- **Reviews**: Strong Google Business Profile ratings (4.7+ average) that weren't being surfaced or reinforced anywhere on the website itself
- **E-E-A-T signals**: No dentist bios with credentials, no author attribution on patient-education content — a real liability for a YMYL ("Your Money or Your Life") healthcare category where Google's quality systems are especially strict
Patients searching "emergency dentist [suburb]" or "pediatric dentist near [neighborhood]" weren't finding the BrightPath office two miles away. They were finding competitors with a third of the reviews but pages built to actually answer the query.
The Approach
[OnyxRank](https://onyxrank.com) treated this as two problems stacked on top of each other: a technical de-duplication problem, and a trust/authority problem specific to healthcare content.
Phase 1: Resolve Cannibalization (Weeks 1–3)
Instead of nine copies of one template, each location page was rebuilt around what actually made that office distinct — its dentists, its specific service mix (some locations offered orthodontics and oral surgery, others didn't), its neighborhood, and its own accumulated review content. The automated [audit](/blog/ai-powered-seo-audit) mapped every cannibalized keyword pair and assigned each query to a single canonical page, with internal links restructured so location pages stopped competing with the group's service pages (e.g., "/services/invisalign") for the same terms.
Phase 2: Local Schema & GEO Optimization (Weeks 2–6)
Every location got dedicated `Dentist` and `MedicalOrganization` schema — accurate NAP data, hours, accepted insurance, and service lists marked up so Google (and AI answer engines) could parse each office as a distinct entity. This mattered for [GEO optimization](https://onyxrank.com) as much as traditional rankings: when a patient asks ChatGPT or Google's AI Overviews "which dentist near me takes emergency walk-ins," structured, entity-clear pages are what gets cited — templated duplicate copy gets skipped.
Phase 3: E-E-A-T Build-Out (Weeks 4–10)
Each dentist got a real author bio page — credentials, school, years in practice, specialties — linked as the byline on the patient-education content they were most qualified to write. Reviews were pulled from Google Business Profile and displayed contextually on each location page rather than left stranded in a separate widget. For a YMYL vertical, this wasn't cosmetic; it directly addresses the trust signals Google's healthcare-content quality raters are trained to look for.
Phase 4: Local Content Expansion (Weeks 6–16)
OnyxRank built out location-specific content clusters — "emergency dentist [city]," "same-day crowns [city]," "pediatric dentist [neighborhood]" — sized to each office's real service capacity, avoiding the trap of promising services a given location didn't actually offer (a common cause of trust erosion and bounce).
The Results
Four months in, the numbers had moved decisively:
| Metric | Before | After |
|---|
|---|---|---|
| Audit health score | 34/100 | 91/100 |
|---|---|---|
| Locations appearing in map pack (3-pack) | 2 of 9 | 8 of 9 |
| Cannibalized keyword pairs | 61 | 4 |
| Organic sessions (site-wide, monthly) | 3,900 | 11,200 |
| New-patient form fills (organic) | 47/month | 149/month |
| Page-1 rankings, non-branded local terms | 12 | 96 |
The cannibalization fix alone accounted for a meaningful share of the early movement — within three weeks of consolidating competing pages, six locations that had been stuck on page 2 jumped into the map pack for their core "[service] near me" terms. AI Overview citations for BrightPath location pages (previously zero) began appearing for comparison-style queries like "best pediatric dentist near [suburb]" by week 10.
Practice-level impact: the group's newest two locations — previously the weakest performers, with no local reputation to lean on — saw the largest relative gains, since they had the least legacy content to untangle and benefited most from clean schema and dedicated local pages from day one.
Key Takeaways
- **Multi-location businesses are often fighting themselves, not competitors.** If your locations share a template, audit for cannibalization before investing in new content — you may be diluting rankings you already have.
- **YMYL categories (healthcare, finance, legal) need real E-E-A-T, not disclaimers.** Author bios with actual credentials, tied to the content those people are qualified to write, are a ranking input Google treats seriously.
- **Structured data is how AI answer engines understand "which location."** Without entity-clear schema, AI Overviews and chat-based search can't confidently cite a specific office — they'll cite the competitor whose data is easier to parse.
- **New locations don't need years of history to rank** — they need clean technical foundations and unique content from launch, which is often easier to get right than fixing years of templated duplication at established locations.
---
Running a multi-location practice, franchise, or service business and not sure if your own location pages are cannibalizing each other? [Get your free audit](/free-audit) and find out in minutes, or [see our plans](/pricing) to get started.
Pro Intel subscribers get the full picture - proprietary analysis, keyword opportunities, tactical playbooks, and template downloads every week. $49/mo.
One email per week. Actionable, no fluff.