Schema markup is a small block of code that states your practice's facts in a vocabulary search engines share: what kind of practice you are, where you are, when you're open, and what you offer. Generic guides use restaurants and shops as examples. This one uses the schema.org types built for practices, walks through a JSON-LD example for a fictional dental office, and covers the rules that keep markup honest.
Search interest is broad: "schema markup" draws 2,400 searches a month in the US and 480 in Canada, "structured data" 1,600 (CPC $122.09), "local business schema" 320 and "medical schema" 30 (Google Ads Keyword Planner data via DataForSEO, 12-month average to Sep 2026).
Schema markup in plain English
Your website says "Example Family Dental, open Monday to Friday, 8 to 5" in words people read. Schema markup says the same thing in a format machines read without guessing. Google calls it structured data (opens in a new tab): "a standardized format for providing information about a page and classifying the page content". Google recommends the JSON-LD format, a block of code that sits in the page and doesn't change how it looks.
It doesn't replace good content. It labels the content you already have.
Schema.org types for practices: MedicalBusiness, Physician, Dentist
Schema.org organizes types in a family tree. For practices, the important branch is MedicalBusiness (opens in a new tab), defined as "a particular physical or virtual business of an organization for medical purposes". It sits under LocalBusiness, which is what Google's local business documentation (opens in a new tab) works with. Google asks you to use "the most specific LocalBusiness sub-type possible".
| Your practice | Type to use | Notes |
|---|---|---|
| Dental office | Dentist (opens in a new tab) | Sits under both MedicalBusiness and MedicalOrganization |
| Physician's office or group | Physician (opens in a new tab) | "An individual physician or a physician's office" |
| Clinic | MedicalClinic (opens in a new tab) | Offers properties such as availableService and medicalSpecialty |
| Physical therapy, dermatology, optometry, podiatry and others | The matching MedicalBusiness subtype | Schema.org lists 26, including Physiotherapy, Dermatology, Optometric and Podiatric |
| A single named doctor | IndividualPhysician (opens in a new tab) | "An individual medical practitioner"; links to the practice with practicesAt |
MedicalOrganization (opens in a new tab) is broader and sits under Organization only, not LocalBusiness. It adds useful properties such as isAcceptingNewPatients and healthPlanNetworkId, which the types above inherit where they're also medical organizations.
What to mark up: name, address, hours, services and providers
Mark up what's on the page, starting with the home page or each location page:
- Name exactly as on your sign and Google listing.
- Address as a full PostalAddress, including suite.
- Telephone with country and area code.
- URL of the page.
- Opening hours with openingHoursSpecification, one entry per pattern.
- Geo coordinates, which Google recommends with at least five decimal places.
- Accepting new patients, if you state it on the page.
Google's required properties for local business are only name and address; the rest are recommended. For provider pages, IndividualPhysician (or Person) with the provider's name, credentials shown on the page and the practice they work at. Use our checklist of pages to mark up to decide where each block goes.
Illustrative example (fictional practice): JSON-LD for "Example Family Dental". The domain, phone number and address are placeholders.
{
"@context": "https://schema.org",
"@type": "Dentist",
"name": "Example Family Dental",
"url": "https://www.example.com/",
"telephone": "+1-555-010-0123",
"image": "https://www.example.com/images/office-front.jpg",
"address": {
"@type": "PostalAddress",
"streetAddress": "100 Main Street, Suite 200",
"addressLocality": "Springfield",
"addressRegion": "IL",
"postalCode": "62701",
"addressCountry": "US"
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "08:00",
"closes": "17:00"
}
],
"isAcceptingNewPatients": true
}
Every value here must also appear on the visible page. If the page doesn't say you're accepting new patients, leave that line out. Our free schema markup generator can build this block for you.
What schema cannot do, and the rich results Google limits
Markup is a label, not a promotion. Google's general guidelines (opens in a new tab) say structured data "must be a true representation of the page content", must not mark up content that isn't visible, and makes a rich result possible rather than certain. A page that breaks the rules can receive a manual action that removes its rich-result eligibility, though Google says that doesn't change how the page ranks.
Two limits matter most to practices:
- No self-serving review stars. Google's review snippet rules (opens in a new tab) say that if a business controls the reviews about itself, its LocalBusiness or Organization pages aren't eligible for stars, whether through markup or an embedded widget. Never write review markup yourself or copy ratings from other sites. Patient reviews belong on your Google Business Profile.
- FAQ rich results are gone. Google limited them to government and health authority sites in 2023, then stopped showing them entirely on May 7, 2026, per its documentation updates (opens in a new tab).
As of October 22, 2026, Google's features gallery (opens in a new tab) still lists Local business, Organization, Breadcrumb, Article and Review snippet, among others.
How to add and test schema markup
- Generate the block for each page type: home or location, provider, service, article.
- Add it to the page inside a
<script type="application/ld+json">tag, in your site's header settings or the page's custom code area. - Test the code in Google's Rich Results Test (opens in a new tab), which accepts a URL or a pasted snippet and lists detected rich result types, errors and warnings.
- Check the vocabulary in the Schema Markup Validator (opens in a new tab), which validates schema.org types beyond what Google uses.
- Publish, then inspect the live URL with Search Console's URL Inspection tool, as Google's local business guide suggests.
- Recheck after changes to hours, phone numbers or addresses. Stale markup that disagrees with the page is worse than none.
Common mistakes
- Using the generic LocalBusiness type when Dentist or MedicalClinic fits.
- Marking up hours, prices or services the page doesn't show.
- Self-written review and rating markup.
- Different phone numbers in markup, on the page and on your Google listing.
- One sitewide block claiming every location on every page.
How AI assistants use structured data
For Google's AI features, the answer is documented. Google says there's "no special schema.org structured data" (opens in a new tab) needed to appear in AI Overviews or AI Mode, and lists making sure structured data matches the visible text among the SEO practices that still apply. We haven't found equivalent documentation from other assistant makers, so treat their use of markup the same way: accurate, visible facts in plain text matter most, and markup confirms them.
Our guide to AI visibility for practices covers how assistants choose which practices to name. Medfy sites include structured data. To see what your current site has, start with a free marketing audit, which also checks whether the crawlers behind ChatGPT, Perplexity, Claude and Gemini can read your site. For speed and the rest of the technical picture, see website speed optimization.
Frequently asked questions
What schema markup should a medical practice use?
Use the most specific schema.org type that fits: Dentist for a dental office, MedicalClinic for a clinic, Physician for a physician's office, or another MedicalBusiness subtype such as Physiotherapy or Dermatology. Mark up the practice name, address, phone, hours and website on the home or location page, add BreadcrumbList across the site and Article on blog posts, and make sure every value matches the visible page.
Does schema markup improve rankings?
Google doesn't describe structured data as a ranking boost. It says markup helps it understand a page and can make the page eligible for richer search results, and that a page with a structured data manual action loses rich-result eligibility without its ranking being affected. Treat markup as a way to state your facts clearly, not as a lever for position.
Can I add review stars to my practice website with schema?
Not in a way Google will show. Its review snippet rules say that if a business controls the reviews about itself, its LocalBusiness or Organization pages aren't eligible for star ratings, whether the reviews are in the markup or in an embedded widget. Never write review markup yourself or copy ratings from other sites. Put your effort into your Google Business Profile reviews instead.
How do I test my schema markup?
Paste the page URL or the code into Google's Rich Results Test, which shows the rich result types it detects and any errors. Then run the Schema Markup Validator at validator.schema.org to check the schema.org vocabulary itself. After publishing, use Search Console's URL Inspection tool to confirm Google can see the page, and recheck whenever hours or addresses change.