Balisage de schéma pour pratiques médicales : JSON-LD pour chaque spécialité médicale
J'ai construit des sites de répertoires de médecins pour des systèmes de santé multi-sites, des pratiques de dermatologie solo et tout ce qui se trouve entre les deux. Et la plus grande opportunité manquée que je vois sur les sites web de santé est les données structurées. Pas le genre générique LocalBusiness -- je parle des types de schéma spécifiques Physician et MedicalSpecialty qui indiquent à Google exactement ce qu'un prestataire fait, où il exerce et pourquoi les patients devraient lui faire confiance.
La plupart des sites de pratiques médicales sont livrés sans balisage de schéma ou, pire, avec un balisage incorrect généré par un plugin WordPress qui traite une pratique de cardiologie de la même façon qu'une pizzeria. Ce guide vous propose du JSON-LD prêt pour la production pour les vraies spécialités médicales -- cardiologie, pédiatrie, urologie, orthopédie et bien d'autres -- ainsi que le raisonnement derrière chaque choix de propriété.
Table des matières
- Pourquoi le balisage de schéma médical est important en 2026
- Types Schema.org pour les pratiques médicales
- Comprendre les valeurs d'énumération de MedicalSpecialty
- Modèle JSON-LD Physician de base
- Exemples JSON-LD spécifiques à la spécialité
- Schéma MedicalOrganization et MedicalClinic
- Connecter les médecins aux organisations
- Propriétés qui construisent E-E-A-T
- Validation et test
- Erreurs courantes à éviter
- FAQ

Pourquoi le balisage de schéma médical est important en 2026
Les AI Overviews de Google dominent désormais les requêtes de santé. Quand un patient recherche « cardiologue acceptant de nouveaux patients près de moi », Google ne scanne plus simplement le texte de votre page -- il lit vos données structurées pour construire des relations d'entités, remplir les panneaux de connaissances et alimenter les réponses générées par l'IA.
Voici ce que le balisage de schéma médical approprié peut déclencher :
| Type de résultat enrichi | Déclenché par | Impact |
|---|---|---|
| Extraits d'avis | AggregateRating sur Physician |
Évaluations par étoiles dans les SERPs |
| Panneau de connaissances | Physician + liens sameAs |
Présence de marque pour les médecins nommés |
| Amélioration du pack local | MedicalClinic + openingHours |
Détails d'annonce cartographique |
| Résultats FAQ enrichis | Schéma FAQPage (sites de santé toujours éligibles) |
Espace SERP étendu |
| Citations dans AI Overview | Graphe d'entité complet | Cité comme source dans les réponses de l'IA |
Une étude BrightLocal de 2025 a révélé que les annonces de santé avec extraits d'avis ont enregistré un taux de clics 37 % plus élevé que celles sans. Et les recherches de Schema App ont confirmé que les pages de médecins avec des données structurées complètes étaient 2,8 fois plus susceptibles d'apparaître dans les citations AI Overview.
Fondamentalement : si vos pages de médecin n'ont pas de balisage de schéma approprié, vous laissez de la visibilité sur la table.
Types Schema.org pour les pratiques médicales
Avant de coder quoi que ce soit, comprenons la hiérarchie des types. Schema.org nous propose plusieurs types qui sont pertinents pour la santé, et choisir le bon compte.
Thing
└── Organization
└── LocalBusiness
└── MedicalBusiness
├── MedicalClinic
├── Optician
├── Pharmacy
└── Physician
Physician est un sous-type de MedicalBusiness, qui est lui-même un sous-type de LocalBusiness. C'est important car cela signifie qu'une entité Physician hérite de toutes les propriétés des entreprises locales (adresse, heures, coordonnées géo) plus les propriétés spécifiques au domaine médical comme medicalSpecialty et hospitalAffiliation.
Pour le site web d'un praticien solo, Physician est votre type principal. Pour une clinique multi-prestataires, vous voudrez un MedicalClinic ou MedicalOrganization en tant qu'entité parente avec des entrées Physician individuelles imbriquées ou liées via member ou référencées sur des pages séparées.
Quand utiliser quoi
| Votre configuration | Type principal | Types secondaires |
|---|---|---|
| Médecin solo, un emplacement | Physician |
MedicalOrganization (optionnel) |
| Groupe de pratique, emplacement unique | MedicalClinic |
Physician par page prestataire |
| Système de santé, emplacements multiples | MedicalOrganization |
MedicalClinic par emplacement, Physician par prestataire |
| Hôpital | Hospital |
Physician, MedicalClinic (départements) |
Comprendre les valeurs d'énumération de MedicalSpecialty
La propriété medicalSpecialty accepte les valeurs de l'énumération MedicalSpecialty de Schema.org. Ce ne sont pas des champs de texte libre -- ce sont des valeurs spécifiques et prédéfinies. Voici celles que vous utiliserez le plus souvent :
| Spécialité | Valeur Schema.org | Notes |
|---|---|---|
| Cardiologie | Cardiovascular |
Couvre la cardiologie et la chirurgie cardiovasculaire |
| Pédiatrie | Pediatric |
Pédiatrie générale |
| Urologie | Urologic |
Incluant l'urologie pédiatrique |
| Dermatologie | Dermatology |
Aussi la variante DermatologyLaserSurgery |
| Orthopédie | Musculoskeletal |
La chirurgie orthopédique relève d'ici |
| Neurologie | Neurological |
Distinct de Psychiatric |
| Obstétrique & Gynécologie | Obstetric et/ou Gynecologic |
Peut spécifier les deux |
| Médecine d'urgence | Emergency |
Médecins des urgences |
| Médecine générale | PrimaryCare |
Pratique générale, médecine familiale |
| Oncologie | Oncologic |
Traitement du cancer |
| Pneumologie | Pulmonary |
Poumons et respiratoire |
| Gastro-entérologie | Gastroenterologic |
Spécialistes GI |
| Endocrinologie | Endocrine |
Diabète, thyroïde, etc. |
| Ophtalmologie | Optometric |
Soins des yeux |
| Psychiatrie | Psychiatric |
Médecins de santé mentale |
Une liste complète est disponible sur schema.org/MedicalSpecialty. Notez que certaines spécialités correspondent à des catégories plus larges que prévu -- il n'existe par exemple pas de valeur « Cardiologie interventionnelle » séparée. Vous utiliseriez Cardiovascular et décrirez la sous-spécialité dans les propriétés description ou knowsAbout du médecin.

Modèle JSON-LD Physician de base
Voici un solide modèle de démarrage pour n'importe quelle page de médecin. Je vais annoter les décisions clés.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Physician",
"@id": "https://example.com/doctors/jane-smith#physician",
"name": "Dr. Jane Smith, MD, FACC",
"image": "https://example.com/images/dr-jane-smith.jpg",
"url": "https://example.com/doctors/jane-smith",
"telephone": "+1-555-867-5309",
"description": "Cardiologue certifiée titulaire d'un conseil d'administration spécialisée en cardiologie interventionnelle et maladie cardiaque structurelle avec 15 ans d'expérience clinique.",
"medicalSpecialty": "https://schema.org/Cardiovascular",
"isAcceptingNewPatients": true,
"address": {
"@type": "PostalAddress",
"streetAddress": "450 Heart Center Drive, Suite 200",
"addressLocality": "Austin",
"addressRegion": "TX",
"postalCode": "78701",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 30.2672,
"longitude": -97.7431
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "08:00",
"closes": "17:00"
}
],
"sameAs": [
"https://www.healthgrades.com/physician/dr-jane-smith",
"https://www.doximity.com/pub/jane-smith-md",
"https://www.linkedin.com/in/drjanesmith"
],
"alumniOf": {
"@type": "CollegeOrUniversity",
"name": "Johns Hopkins University School of Medicine"
},
"hasCredential": [
{
"@type": "EducationalOccupationalCredential",
"credentialCategory": "Board Certification",
"name": "American Board of Internal Medicine - Cardiovascular Disease"
}
],
"hospitalAffiliation": {
"@type": "Hospital",
"name": "St. David's Medical Center",
"url": "https://stdavids.com"
},
"worksFor": {
"@type": "MedicalOrganization",
"@id": "https://example.com/#organization",
"name": "Austin Heart Specialists"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.8",
"reviewCount": "142",
"bestRating": "5"
}
}
</script>
Je veux signaler quelques points :
@id: Cela crée un identifiant unique pour cette entité. Utilisez l'URL de la page plus un fragment. Cela devient critique lorsque vous liez des médecins à des organisations sur plusieurs pages.medicalSpecialty: J'utilise la forme d'URL complète (https://schema.org/Cardiovascular) plutôt que simplement la chaîne. Les deux fonctionnent, mais la forme d'URL est plus explicite.isAcceptingNewPatients: C'est une propriété plus récente spécifique àPhysician. Utilisez-la. Les patients la recherchent constamment.sameAs: Liez à des profils tiers vérifiés. C'est ainsi que Google construit la confiance dans les entités et peut potentiellement déclencher des panneaux de connaissances.aggregateRating: Incluez ceci seulement si vous affichez des avis visiblement sur la page. Les directives de Google sont strictes à ce sujet -- les avis masqués violent leurs politiques.
Exemples JSON-LD spécifiques à la spécialité
Construisons des exemples pour les spécialités que les gens recherchent réellement.
Cardiologie (Cardiovascular)
{
"@context": "https://schema.org",
"@type": "Physician",
"name": "Dr. Robert Chen, MD, FACC",
"medicalSpecialty": "https://schema.org/Cardiovascular",
"knowsAbout": [
"Interventional Cardiology",
"Cardiac Catheterization",
"Coronary Artery Disease",
"Heart Failure Management",
"Echocardiography"
],
"availableService": [
{
"@type": "MedicalProcedure",
"name": "Cardiac Catheterization",
"procedureType": "https://schema.org/PercutaneousProcedure"
},
{
"@type": "MedicalTest",
"name": "Stress Echocardiography"
},
{
"@type": "MedicalTest",
"name": "Electrocardiogram (ECG/EKG)"
}
]
}
La propriété availableService est unique à Physician et vous permet de spécifier les procédures et tests exacts. Pour la cardiologie, cette distinction entre MedicalProcedure et MedicalTest correspond naturellement à la division interventionnelle vs. diagnostique.
Pédiatrie
{
"@context": "https://schema.org",
"@type": "Physician",
"name": "Dr. Maria Gonzalez, MD, FAAP",
"medicalSpecialty": "https://schema.org/Pediatric",
"knowsAbout": [
"Well-Child Visits",
"Childhood Immunizations",
"Developmental Screening",
"Adolescent Medicine",
"Newborn Care"
],
"availableService": [
{
"@type": "MedicalTherapy",
"name": "Pediatric Vaccination Program"
},
{
"@type": "MedicalTest",
"name": "Developmental Milestone Assessment"
}
],
"hasCredential": [
{
"@type": "EducationalOccupationalCredential",
"credentialCategory": "Board Certification",
"name": "American Board of Pediatrics"
}
]
}
La pédiatrie est intéressante car la valeur MedicalSpecialty est simplement Pediatric -- il n'y a pas de valeur séparée pour les sous-spécialités pédiatriques comme la cardiologie pédiatrique. Pour un cardiologue pédiatre, vous incluriez les deux spécialités :
"medicalSpecialty": [
"https://schema.org/Pediatric",
"https://schema.org/Cardiovascular"
]
Oui, medicalSpecialty accepte un tableau. Utilisez-le.
Urologie
{
"@context": "https://schema.org",
"@type": "Physician",
"name": "Dr. Michael Torres, MD, FACS",
"medicalSpecialty": "https://schema.org/Urologic",
"knowsAbout": [
"Robotic-Assisted Surgery",
"Prostate Cancer Treatment",
"Kidney Stone Management",
"Urinary Incontinence",
"Male Infertility"
],
"availableService": [
{
"@type": "MedicalProcedure",
"name": "Robot-Assisted Laparoscopic Prostatectomy",
"procedureType": "https://schema.org/SurgicalProcedure"
},
{
"@type": "MedicalProcedure",
"name": "Extracorporeal Shock Wave Lithotripsy (ESWL)",
"procedureType": "https://schema.org/NoninvasiveProcedure"
},
{
"@type": "MedicalTest",
"name": "Cystoscopy"
}
]
}
Orthopédie
{
"@context": "https://schema.org",
"@type": "Physician",
"name": "Dr. Sarah Kim, MD",
"medicalSpecialty": "https://schema.org/Musculoskeletal",
"knowsAbout": [
"Total Joint Replacement",
"Sports Medicine",
"Arthroscopic Surgery",
"Fracture Care",
"Rotator Cuff Repair"
],
"availableService": [
{
"@type": "MedicalProcedure",
"name": "Total Knee Arthroplasty",
"procedureType": "https://schema.org/SurgicalProcedure"
},
{
"@type": "MedicalProcedure",
"name": "Arthroscopic ACL Reconstruction",
"procedureType": "https://schema.org/SurgicalProcedure"
}
]
}
Notez que la valeur medicalSpecialty est Musculoskeletal, pas « Orthopedic ». Cela trompe les gens constamment.
Schéma MedicalOrganization et MedicalClinic
Votre schéma au niveau de l'organisation est la base. Chaque entité médecin doit la référencer. Voici un exemple MedicalClinic complet :
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "MedicalClinic",
"@id": "https://example.com/#clinic",
"name": "Austin Heart Specialists",
"url": "https://example.com",
"logo": "https://example.com/images/logo.png",
"image": "https://example.com/images/clinic-exterior.jpg",
"telephone": "+1-555-867-5309",
"medicalSpecialty": "https://schema.org/Cardiovascular",
"address": {
"@type": "PostalAddress",
"streetAddress": "450 Heart Center Drive",
"addressLocality": "Austin",
"addressRegion": "TX",
"postalCode": "78701",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 30.2672,
"longitude": -97.7431
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "07:30",
"closes": "17:30"
}
],
"availableService": [
{
"@type": "MedicalTest",
"name": "Cardiac Stress Testing"
},
{
"@type": "MedicalProcedure",
"name": "Cardiac Catheterization"
}
],
"member": [
{
"@type": "Physician",
"@id": "https://example.com/doctors/jane-smith#physician"
},
{
"@type": "Physician",
"@id": "https://example.com/doctors/robert-chen#physician"
}
],
"sameAs": [
"https://www.facebook.com/austinheartspecialists",
"https://www.google.com/maps/place/?q=place_id:ChIJ_____"
]
}
</script>
Le tableau member utilise des références @id pour lier aux entités médecin définies sur leurs pages individuelles. Cela crée un graphe connecté que Google peut parcourir.
Connecter les médecins aux organisations
C'est là que la plupart des implémentations s'effondrent. Vous avez besoin de références bidirectionnelles :
- Organization → Physician : Utilisez
membersur la page de l'organisation - Physician → Organization : Utilisez
worksForsur la page du médecin
Les deux doivent référencer le même @id. Pensez-y comme une clé étrangère dans une base de données. Si les ID ne correspondent pas, Google ne peut pas les connecter.
// Sur la page du médecin :
"worksFor": {
"@type": "MedicalClinic",
"@id": "https://example.com/#clinic",
"name": "Austin Heart Specialists"
}
// Sur la page de l'organisation :
"member": [
{
"@type": "Physician",
"@id": "https://example.com/doctors/jane-smith#physician"
}
]
Pour les pratiques multi-sites, chaque emplacement doit être une entité MedicalClinic séparée avec son propre @id, et les médecins qui exercent dans plusieurs emplacements doivent utiliser practicesAt (un tableau) au lieu de worksFor.
Si vous construisez ces sites sur des plates-formes CMS headless, ce type de modélisation de données relationnelles correspond parfaitement aux références de contenu dans des systèmes comme Sanity ou Contentful. Le modèle de contenu CMS reflète le graphe d'entité schema.org.
Propriétés qui construisent E-E-A-T
Les évaluateurs de qualité de Google évaluent l'expérience, l'expertise, l'autorité et la fiabilité pour le contenu YMYL (Your Money or Your Life). La santé est la catégorie YMYL par excellence. Ces propriétés de schéma soutiennent directement les signaux E-E-A-T :
| Propriété | Type | Signal E-E-A-T |
|---|---|---|
hasCredential |
EducationalOccupationalCredential |
Expertise |
alumniOf |
CollegeOrUniversity |
Expertise |
memberOf |
Organization |
Autorité |
hospitalAffiliation |
Hospital |
Autorité, Confiance |
award |
Text |
Autorité |
knowsAbout |
Text ou Thing |
Expertise |
medicalSpecialty |
MedicalSpecialty |
Expertise |
sameAs |
URL |
Confiance (vérification inter-références) |
aggregateRating |
AggregateRating |
Confiance (preuve sociale) |
Règle critique : vous ne pouvez marquer que le contenu visible sur la page. Si vous listez les certifications du conseil d'administration dans votre schéma mais ne les montrez nulle part sur la page du profil du médecin, vous violez les directives de données structurées de Google. Ajoutez d'abord le contenu, puis balisez-le.
Validation et test
Avant de pousser quoi que ce soit en production :
- Test des résultats enrichis de Google (search.google.com/test/rich-results) : Valide l'éligibilité aux résultats enrichis
- Validateur de balisage de schéma (validator.schema.org) : Vérifie la syntaxe et la conformité au vocabulaire Schema.org
- Google Search Console : Surveillez la section « Améliorations » après déploiement pour toute erreur
Voici mon flux de travail de test :
# Si vous générez un schéma par programme (Next.js, Astro, etc.)
# Sortez le JSON dans un fichier et validez d'abord localement
node -e "const schema = require('./generate-schema.js'); console.log(JSON.stringify(schema, null, 2))" > schema-output.json
# Puis collez dans validator.schema.org ou utilisez leur API
Si vous construisez avec Next.js ou Astro, vous pouvez générer ces blocs JSON-LD dynamiquement à partir de données de votre CMS. Les deux frameworks gèrent proprement l'injection <script type="application/ld+json"> -- Next.js via le composant <Script> ou next/head, Astro via son slot <head>.
Erreurs courantes à éviter
Utiliser LocalBusiness générique au lieu de Physician. Vous perdez toutes les propriétés spécifiques au domaine médical. Un Physician est un LocalBusiness, donc vous obtenez tout ce que LocalBusiness offre plus davantage.
Valeurs medicalSpecialty en texte libre. Écrire "medicalSpecialty": "Cardiology" au lieu d'utiliser la valeur d'énumération appropriée (Cardiovascular) signifie que Google peut ne pas comprendre correctement la spécialité.
Coordonnées géo manquantes. Les données lat/long aident Google à associer votre pratique aux requêtes basées sur la localisation. Ne les ignorez pas.
Valeurs @id en double sur différentes entités. Chaque entité a besoin d'un @id unique. J'ai vu des implémentations où chaque médecin partage le même suffixe @id -- cela casse complètement le graphe d'entité.
Marquer du contenu qui ne figure pas sur la page. Ceci mérite d'être répété. Les directives de Google sont explicites : tout ce qui se trouve dans vos données structurées doit correspondre au contenu visible. Les violations peuvent entraîner des actions manuelles.
Ignorer isAcceptingNewPatients. C'est un signal d'intention élevée. Les patients le filtrent. Incluez-le et gardez-le à jour.
FAQ
Quelle est la différence entre les types de schéma Physician et MedicalBusiness ?
Physician est un sous-type de MedicalBusiness. Utilisez Physician pour les pages de prestataires individuels et MedicalBusiness (ou plus spécifiquement, MedicalClinic) pour la pratique elle-même. Physician hérite de toutes les propriétés de MedicalBusiness et en ajoute d'autres spécifiques aux médecins comme hospitalAffiliation, availableService et isAcceptingNewPatients.
Puis-je lister plusieurs spécialités médicales pour un médecin ?
Oui. La propriété medicalSpecialty accepte un tableau. Un médecin qui est à la fois pédiatre et cardiologue peut en lister deux : "medicalSpecialty": ["https://schema.org/Pediatric", "https://schema.org/Cardiovascular"]. C'est courant pour les médecins ayant une double accréditation.
Le balisage de schéma médical améliore-t-il directement le classement Google ?
Les données structurées ne sont pas un facteur de classement direct. Cependant, elles activent les résultats enrichis (évaluations par étoiles, déroulantes FAQ, panneaux de connaissances) qui améliorent considérablement les taux de clics. Elles alimentent également la compréhension d'entité de Google, ce qui influence la manière dont votre pratique apparaît dans les AI Overviews et les résultats du pack local. L'impact SEO indirect est substantiel.
Quel type de schéma dois-je utiliser pour un répertoire de médecins d'hôpital ?
Utilisez Hospital comme entité de haut niveau, MedicalClinic pour les départements individuels (p. ex., Service de cardiologie) et Physician pour chaque page de prestataire. Connectez-les avec les propriétés member, worksFor et department. Cela crée un graphe organisationnel complet.
JSON-LD est-il le seul format pour le balisage de schéma médical ?
Non -- vous pouvez également utiliser Microdata ou RDFa intégrés dans votre HTML. Mais Google recommande explicitement JSON-LD et c'est le format qu'ils utilisent dans tous leurs exemples de documentation. JSON-LD est également beaucoup plus facile à maintenir car il est séparé de votre mise en page. Vous pouvez le générer par programme à partir de données CMS sans toucher les modèles.
Comment gérer un médecin qui exerce dans plusieurs emplacements ?
Utilisez la propriété practicesAt avec un tableau d'entités MedicalClinic ou Hospital, chacune ayant son propre @id. Ne dupliquez pas l'entité médecin sur plusieurs emplacements -- créez une entité Physician canonique unique et liez-la à plusieurs emplacements de pratique. Le schéma de chaque emplacement doit également référencer le médecin via member.
Dois-je inclure les avis des patients dans mon schéma de médecin ?
Uniquement si les avis sont visiblement affichés sur la page du médecin. Utilisez la propriété aggregateRating sur le type Physician et incluez ratingValue, reviewCount et bestRating. Google prend cela au sérieux -- marquer les avis masqués ou faux peut entraîner des pénalités manuelles. Si vous collectez des avis par le biais de plates-formes tierces comme Healthgrades, liez-vous à elles via sameAs à la place.
À quelle fréquence dois-je mettre à jour le balisage de schéma de pratique médicale ?
Mettez à jour vos données structurées chaque fois que les informations sous-jacentes changent : nouvelles heures de bureau, un médecin quitte ou rejoint, un prestataire n'accepte plus de nouveaux patients, ou les coordonnées changent. Pour les pratiques utilisant un CMS sans tête avec génération de schéma dynamique, cela se produit automatiquement lorsque les éditeurs de contenu mettent à jour le CMS. Si vous codez en dur JSON-LD, définissez un cadre de révision trimestriel au minimum. Les données structurées obsolètes -- en particulier les valeurs incorrectes isAcceptingNewPatients ou telephone -- érode la confiance avec Google et les patients.