A plugin that marks every page as one MedicalClinic or one Physician passes every syntax test and still describes a practice that does not exist: the group, each location and each doctor become one thing.
Medical organization schema for the group, its clinics and its doctors
Schema for a health practice starts from its real map of who works where. Consider a group with two staffed clinics and a physician who sees patients at both. The group, each clinic and the physician are distinct, and their pages show those relationships before the structured data repeats them.
Northline Medical Group
The organization or about page is about the group. Clinic addresses stay with the clinic nodes.
Northline Central
The Central location page carries its own address, phone, hours, and practitioners.
Northline West
The West location page exists only if patients can actually reach the staffed facility.
Dr. Taylor Morgan
The practitioner page states the role and real location relationships.
Medical local SEO uses the same test: a second Business Profile or location node needs a second real clinic.
The group's own page carries MedicalOrganization, since Google recommends the most
specific Schema.org subtype of Organization that matches the organization. Its url
helps Google identify the group, sameAs points to the group's profiles elsewhere,
and logo can influence which logo Google shows.
{
"@context": "https://schema.org",
"@type": "MedicalOrganization",
"@id": "https://example.com/#organization",
"name": "Northline Medical Group",
"url": "https://example.com/",
"logo": "https://example.com/logo.png",
"telephone": "+1-555-0100",
"sameAs": [
"https://www.linkedin.com/company/northline-medical-group"
]
} Medical clinic schema
This example describes one clinic location and its parent organization. The names and URLs are illustrative.
{
"@context": "https://schema.org",
"@type": "MedicalClinic",
"@id": "https://example.com/locations/central/#clinic",
"name": "Northline Central",
"url": "https://example.com/locations/central/",
"telephone": "+1-555-0100",
"address": {
"@type": "PostalAddress",
"streetAddress": "100 Example Street",
"addressLocality": "Example City",
"addressRegion": "CA",
"postalCode": "90000",
"addressCountry": "US"
},
"parentOrganization": {
"@id": "https://example.com/#organization"
}
}
Schema.org defines MedicalClinic as a
LocalBusiness subtype, and the sample carries the name and physical address Google requires,
plus a telephone and URL, so the Rich Results Test can assess it for the Local Business feature.
Eligibility may support a business knowledge panel or other local presentation, but
Google does not guarantee display.
Add maintained hours, geo coordinates, departments, or other recommended Local Business
properties when the visible page supports them.
Physician schema for a doctor's page
Physician schema markup starts from what a doctor's page is: visibly about one person. Google's
ProfilePage documentation
accepts a Person as the main entity of a genuine employee profile. That is a
cleaner description of the page than forcing the Schema.org Physician type,
whose historical hierarchy describes an organization or medical business rather than a
Person.
{
"@context": "https://schema.org",
"@type": "ProfilePage",
"@id": "https://example.com/doctors/taylor-morgan/#page",
"url": "https://example.com/doctors/taylor-morgan/",
"mainEntity": {
"@type": "Person",
"@id": "https://example.com/doctors/taylor-morgan/#person",
"name": "Dr. Taylor Morgan",
"jobTitle": "Physician",
"worksFor": {
"@id": "https://example.com/#organization"
}
}
}
Add credentials, affiliations, image, locations, and identity references only when the
visible profile and maintained records support them. If the URL is instead the office or
practice location, a truthful MedicalClinic, Physician, or other
medical-organization subtype may fit the subject. Do not give one node both roles to avoid
making the choice.
Since 2024 Schema.org has also had IndividualPhysician,
an individual medical practitioner, with usNPI, medicalSpecialty,
hospitalAffiliation and practicesAt for the clinics and hospitals where
the doctor practices. It sits under MedicalBusiness, not Person, so it describes the doctor as a
provider patients book; the Person above, as the main entity of a ProfilePage, is
what Google's profile documentation describes.
Medical procedure schema
Schema.org defines MedicalProcedure
and more specific types such as SurgicalProcedure. It can describe a procedure
page and can be connected as an availableService from a clinic or Schema.org
Physician node. Google currently documents no dedicated MedicalProcedure rich
result, so the markup should not be sold as a ranking or display feature.
{
"@context": "https://schema.org",
"@type": "SurgicalProcedure",
"@id": "https://example.com/procedures/rhinoplasty/#procedure",
"name": "Rhinoplasty",
"url": "https://example.com/procedures/rhinoplasty/",
"bodyLocation": "Nose",
"relevantSpecialty": "https://schema.org/PlasticSurgery",
"mainEntityOfPage": "https://example.com/procedures/rhinoplasty/"
} Properties such as preparation, how the procedure is performed, and follow-up should appear only when the page states that clinically reviewed information. The code is a description of published facts, not a substitute for the procedure content a prospective patient needs.
The surgeon and the procedure are different subjects. In
plastic surgery SEO,
the surgeon's page establishes identity, credentials, affiliations and consultation locations,
while a rhinoplasty page explains the procedure; marking both as the same Physician
entity collapses the two.
Which properties to add
Add a property only when the visible page supports it and a maintained record can keep it
true. The schema's medical specialty for a doctor is the one the doctor's page names. Address and hours come from the location record. Verify usNPI against the
exact provider's NPI record. isAcceptingNewPatients needs a
maintained source because availability can change long before the next SEO release.
sameAs
Use official URLs that identify this exact entity, after checking namesakes and branches.
Ratings
Schema.org can describe a visible, maintained rating. Google separately recommends LocalBusiness review markup only for sites that capture reviews about other local businesses. A practice should not expect a Google review result from marking up its own clinic rating.
Service area
Describe the factual area the practice serves; local relevance and facility status come from the underlying operation.
What Google does with medical schema
Google's current structured-data gallery documents feature eligibility, while Schema.org provides a wider descriptive vocabulary. For a medical-practice website, these are separate implementation decisions.
Local Business for each clinic location
Google's Local Business documentation says to define each location and use the most specific LocalBusiness subtype available. Eligible markup can supply business details for local search presentations; the current required fields are the business name and physical address.
Organization for the practice group
Organization markup on the home or organization page can help Google disambiguate the group. Google also documents possible influence on visual elements such as its logo and knowledge panel.
ProfilePage for each doctor's page
Google currently documents no dedicated Physician rich-result feature.
A genuine employee profile may separately fit Google's
ProfilePage guidance
with a Person as its main entity; that eligibility comes from the page type,
and adding Physician to every page does not create it.
Article for guides, Breadcrumb for every page
Editorial guides can follow Google's Article guidance. Breadcrumb markup describes a page's place in the site. Both have documented Google feature eligibility independent of the medical entities mentioned in the content.
How to test medical schema
The Schema.org validator checks the vocabulary and graph. Google's Rich Results Test checks documented feature eligibility. Google also requires structured data to represent the visible page content in its general guidelines.
- Compare every node with the actual group, location, practitioner, and subject of the page.
- Run the complete graph through the Schema.org validator.
- Use Google's Rich Results Test only for features Google documents.
- Check the live page's rendered HTML and canonical URL, then monitor the URL in Search Console.
- Name who updates hours, locations, practitioners, and availability at the source.
None of this makes a page rank. A medical SEO company earns that with the page itself, the practice's Business Profiles and the links to them, and the markup only describes them.