Duplicate Content Risk — Multi-Tenant SEO¶
The Problem¶
Our shared content library (content/defaults/) provides default text for all 9 practices. If multiple sites launch with identical content (only {ville} swapped), Google filters duplicates — picking one to show and suppressing the others. Our sites compete against each other instead of against competitors.
This is exactly the pattern SA and Denti.site use. Our benchmark showed those template-based sites underperform on local SEO. Reproducing that pattern would undermine a key differentiator.
How Google Handles Cross-Domain Duplicates¶
- No penalty — duplicate content across domains is not a ranking penalty
- Filtering — Google picks one canonical version and suppresses others from results
- Local signals win — for "dentiste {ville}" queries, Google weighs local relevance, uniqueness, and E-E-A-T (Experience, Expertise, Authoritativeness, Trustworthiness)
- Thin content risk — pages with only
{ville}swapped may be classified as thin/low-value content
Risk by Content Type¶
| Content type | Risk | Why | Mitigation |
|---|---|---|---|
| Service detail (L2) body text | High | Factual text ("Qu'est-ce qu'un implant") identical across domains | Require unique "At our practice" section per practice |
| Service hub (L1) intro | High | Template intro with city swapped | Rewrite intro mentioning specific team, equipment, expertise |
| FAQ answers | Medium | Same Q&A across domains | Low priority — FAQ schema ties to domain, answers are factual |
| Espace Patient pages | Medium | Generic medical advice | Accept — educational content, not ranking-critical |
| Votre Besoin pages | Low | Short pages, mostly card links | Value is in linking, not text volume |
| Homepage | None | Different hero, team, stats, testimonials | Unique by design |
| Cabinet pages | None | Practice-specific by nature | Always written per practice |
| Legal pages | None | Legal text expected to be templated | Google ignores |
Mitigation Strategy¶
1. Content Flags¶
Every default content file uses these flags per page/section:
| Flag | Meaning | Action before launch |
|---|---|---|
unique |
Write from scratch per practice | No default available — must be original |
customize-required |
Default is a starting point, not final copy | Rewrite marked sections with practice-specific details |
default-ok |
Use shared default as-is | No changes needed |
2. The "At Our Practice" Section¶
Every service detail page (L2) follows a 5-section structure:
- What — definition (shared, factual) →
default-ok - Why — indications (shared) →
default-ok - How — procedure steps (mostly shared) →
default-ok, mention specific equipment if relevant - At our practice — unique differentiator →
customize-required - Recovery — post-op advice (shared) →
default-ok
Section 4 (80-100 words) is what makes each page distinct. It should mention: - Specific equipment used at this practice (by name) - Practitioner expertise ("Dr X, spécialisé en implantologie depuis 15 ans") - Volume/experience ("Plus de 2000 implants posés dans notre cabinet") - Any specific approach or protocol unique to the practice
3. Hub Introductions¶
L1 hub intros (100-150 words) must be rewritten per practice. The default provides structure, but the intro should mention: - The practice's specific expertise in this category - Named practitioners - Local context ("au cœur d'Aubagne", not just "à {Ville}")
4. Stagger Rollouts¶
Don't launch multiple sites simultaneously with identical content. Launch Aubagne first, then customize for each subsequent practice before going live. This gives Google time to index each site's version as the canonical one for its local context.
5. What NOT to Worry About¶
- Legal pages — templated legal text is standard, Google knows this
- FAQ content — factual answers to patient questions are expected to be similar across dental sites
- Espace Patient pages — educational/medical advice content, not ranking-critical
- Meta descriptions — these can share structure (templates from
seo-patterns.md) as long as the page content differs. Google rewrites meta descriptions 70% of the time anyway.
Monitoring¶
After launch, monitor for duplicate content issues:
- Google Search Console → Coverage → check for "Duplicate without user-selected canonical"
- Site: search — site:cabinet-dentaire-aubagne.fr implant dentaire should return results, not be filtered
- Rankings — if two of our sites target the same keyword and neither ranks, suspect duplicate filtering