Guides · Healthcare SEO
Schema Markup for Healthcare Practices
What structured data is, which types a practice should use, a working example, and how to check that it's right.
· 3 min read
The short version
Schema markup is a block of code that labels what's on your page in a vocabulary search engines and AI tools understand. Your page already says "Open Monday to Friday, 8 to 5." Schema says it in a form software can't misread.
It doesn't directly raise your rankings. It reduces guesswork about who you are and what you do, and some types make you eligible for enhanced results. For a healthcare practice, that clarity is worth an afternoon.
The types worth using
- A practice type for your business. schema.org has specific ones:
MedicalClinic,Physician,Dentist,Optician,Hospital, and the generalMedicalBusiness. Use the most specific that's accurate. These all build onLocalBusiness, so address, phone, and hours work the same way. Personfor each clinician. Name, job title, credentials, and medical specialty, on that provider's bio page.MedicalSpecialty. The specialties the practice or provider covers, used with the types above.FAQPage. For pages with a genuine question and answer section. Google now shows FAQ rich results only for a small set of well-known authoritative government and health sites, so most practices won't see the visual treatment. The markup is still readable by search engines and AI tools.BreadcrumbList. Describes where a page sits in your site.WebSiteandOrganization. Site-wide basics on the home page.
A working example
This is a practice with one location. The names and numbers are made up. Replace them with your own.
{
"@context": "https://schema.org",
"@type": "MedicalClinic",
"name": "Example Family Medicine",
"url": "https://www.example-clinic.com",
"telephone": "+1-555-555-0100",
"image": "https://www.example-clinic.com/images/clinic.jpg",
"medicalSpecialty": "Family Medicine",
"address": {
"@type": "PostalAddress",
"streetAddress": "100 Main Street, Suite 200",
"addressLocality": "Vancouver",
"addressRegion": "WA",
"postalCode": "98660",
"addressCountry": "US"
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "08:00",
"closes": "17:00"
}
],
"sameAs": [
"https://www.facebook.com/example-clinic",
"https://www.linkedin.com/company/example-clinic"
]
}
Note that the street address is optional in the markup. If your Google Business Profile hides your address because patients don't visit you at a physical location, leave it out and use only city, region, and postal code.
Rules that keep you out of trouble
- Mark up only what's visible on the page. If the hours aren't on the page, they shouldn't be in the schema.
- Match your Google Business Profile exactly. Name, address, phone, and hours should be identical in the markup, on the page, and on the profile.
- One main entity per page. A location page describes that location. A provider page describes that provider.
- Don't add review ratings you collected yourself. See the FAQ above.
- Don't mark up medical claims. Structured data describes your practice. It isn't a place to assert treatment outcomes.
- Keep it current. When your hours or phone number change, update the markup in the same edit.
Where to put it
Use JSON-LD, the format Google recommends. It lives in a script tag and doesn't touch your visible design. Most website platforms give you one of these places to paste it:
- A "custom code" or "header code injection" setting for the whole site
- A per-page code block or HTML embed
- An SEO plugin with a schema setting, if you use WordPress
If you're not sure which applies to your platform, your web developer can place it in a few minutes.
How to check it
- Rich Results Test (search.google.com/test/rich-results) shows whether Google can read the markup and flags errors.
- Schema Markup Validator (validator.schema.org) checks the markup against the full schema.org vocabulary, not just what Google uses.
- Search Console reports enhancements it finds on your site over time, with any warnings.
Fix errors first. Warnings about optional fields can wait.
Where to start this week
- Pick the one page that matters most: usually the home page or the main location page.
- Write the markup for that page using the example above.
- Test it with the Rich Results Test.
- Add it, then repeat for your other location pages and provider pages.
Our free Medical Schema Generator builds the markup from a short form, so you don't have to write it by hand. For how this fits into a larger plan, see our guides to AI search optimization and local SEO.
Common questions
- Will schema markup improve my rankings?
- Not directly. Google has said structured data isn't a ranking factor on its own. It helps search engines and AI tools understand your page accurately, and it can make you eligible for certain enhanced results.
- Where does the code go?
- In the head or body of the page, inside a script tag with the type application/ld+json. Most practice website platforms have a custom code or header injection area where it can be pasted.
- Should I mark up my reviews and star rating?
- Not on your own pages. Google doesn't show star ratings for reviews a business collects about itself in local business markup, and mismatched ratings can cause problems. Leave reviews to your Google Business Profile.
- Do I need to add schema to every page?
- No. Start with your home page and each location page for the practice details, provider pages for the clinicians, and key service pages. Add FAQ or breadcrumb markup where those exist on the page.
- Does schema markup work for service-area practices with no public address?
- Yes. Use the city and region you serve and leave out the street address, matching your Google Business Profile. The details should agree everywhere.