This post is for clinic owners, hospital web teams and the marketers who brief them. If your developer has asked "which schema type do you want?" and the honest answer was a shrug, this is the decision guide. It assumes you already know what JSON-LD is and want to choose the type for a facility, not learn the syntax.
The question is narrow: for a single clinic, a multi-specialty hospital and a diagnostics chain, which schema.org type belongs on which page, which subtypes cause trouble, and what you should not expect Google to do with the answer. Our complete implementation guide covers how to write and deploy the markup. This article is about the choice that comes before.
One caution first. Google's structured data gallery does not list a medical-specific feature. Type choice here is about accurate description and a consistent entity, not about a rich result you can unlock. Choose the type that is true.
How the types relate
The schema.org types you will meet sit in a small family. MedicalOrganization is a subtype of Organization, and its own subtypes are Dentist, DiagnosticLab, Hospital, MedicalClinic, Pharmacy, Physician and VeterinaryCare. Three properties are defined at this level: medicalSpecialty, isAcceptingNewPatients and healthPlanNetworkId.
The inheritance is not a single line, and that matters for pitfalls later.
- Hospital inherits through MedicalOrganization, through CivicStructure and through LocalBusiness and EmergencyService. It adds
availableService,medicalSpecialtyandhealthcareReportingData. - MedicalClinic sits under both MedicalOrganization and LocalBusiness through MedicalBusiness. It adds
availableServiceandmedicalSpecialty. - Physician is defined as "an individual physician or a physician's office considered as a MedicalOrganization". It adds
hospitalAffiliation,availableService,occupationalCategoryandusNPI, the last being a United States identifier that does not apply to Indian practitioners. - DiagnosticLab is a MedicalOrganization and adds
availableTest.
Because Hospital, MedicalClinic and Physician are all LocalBusiness descendants, Google's local business documentation applies to them. It asks for the most specific LocalBusiness subtype possible and treats address and name as required. It also says each physical location should be marked up as its own entity.
Type selection by facility profile
Start with the physical thing the page is about, then pick the most specific type that is true for that thing.
| Profile | Primary type for the location page | Brand or group page | Notes |
|---|---|---|---|
| Single-doctor practice | Physician for the doctor, or MedicalClinic if the page is about the premises | Same entity | Pick one per URL; use Dentist for dental practices |
| Multi-doctor clinic | MedicalClinic | MedicalOrganization or Organization | Doctors become separate Physician pages |
| Single multi-specialty hospital | Hospital | Hospital on the home page | Departments as department on the hospital |
| Hospital group, several campuses | One Hospital per campus page | Organization or MedicalOrganization for the group | Never one Hospital with many addresses |
| Diagnostics chain | DiagnosticLab per lab or collection centre | Organization or MedicalOrganization for the brand | Use availableTest |
| Day-care or OPD centre of a hospital | MedicalClinic linked to the parent | The hospital | It is not a second Hospital |
| Pharmacy attached to a hospital | Pharmacy, its own node | The hospital | Separate address and hours |
Hypothetical illustration: a diagnostics brand with 40 branches across Delhi NCR. Each branch page describes one address, one set of opening hours and one phone line, so each is a DiagnosticLab. The brand page describes the company, so it is an Organization or MedicalOrganization without branch details. Branch pages point to the brand with parentOrganization.
Pitfalls by subtype
Marking the group as a Hospital. A hospital group's home page is not a hospital. If the page lists three campuses, three addresses and one corporate name, the entity on that page is an organisation. Putting Hospital there with an array of addresses produces one blurred node that Google, Maps data and LLM tools all struggle to reconcile with the individual campuses.
Using MedicalOrganization as a lazy default. It is valid, and it is the right supertype when you genuinely describe an organisation that is not a specific facility, such as a health network. If the page is about a place where care is delivered, a more specific type is both more accurate and consistent with Google's guidance on local business subtypes. Treat the generic type as a fallback you justify, not a default.
Stacking types. Google allows an array of types for LocalBusiness. That does not mean you should write ["Hospital", "MedicalClinic", "Physician"] for a hospital with an outpatient wing. Each added type is a claim. A hospital that is also a clinic is a hospital with a clinic department or a related clinic node; model that, do not blur it.
Using Physician for a department. A cardiology department is not a physician or a physician's office. Use the `department` property on Organization, whose expected value is another Organization, and keep individual doctors as Physician nodes on their own profile pages.
Using Physician for a doctor who works across facilities. The doctor's page is about the doctor. Link them to each hospital with hospitalAffiliation, which expects a Hospital. Do not put the doctor's name inside the hospital's name.
Treating MedicalBusiness as a medical-only type. MedicalBusiness is a LocalBusiness subtype and the parent of MedicalClinic, Physician and some others. You rarely need to use it directly, and it adds nothing that MedicalClinic does not already say.
Leaving transient fields in place. isAcceptingNewPatients is a Boolean that goes stale the moment a doctor stops taking new patients. If you cannot keep it current from the same source that drives the appointment page, leave it out.
Putting usNPI on Indian profiles. It is defined as a ten-digit United States identifier. Do not repurpose it for an NMC registration number. If you want to show the registration number, show it as visible text and, if you mark it up, use a generic identifier property and make clear what it is. Have the doctor's clinical team confirm the number before it goes live.
Decide using four questions
When a page is awkward, ask these in order.
- What is the physical or legal thing this URL describes? A place of care, an individual doctor, or a company? If it is more than one, you have two pages' worth of content on one URL.
- Does it have its own address, phone and hours? If yes, it is its own LocalBusiness-type node. If it only shares the parent's, it is a department or a service.
- Is there a more specific type? Dentist, DiagnosticLab, Pharmacy, MedicalClinic, Physician and Hospital are all more specific than MedicalOrganization.
- Can the visible page support every property? Google's general guidelines say not to mark up content that is not visible to readers. A
medicalSpecialtythat is not on the page is a mismatch.




