Schema markup for medical practices: what to add and why

Structured data is the part of a practice website that humans never see and machines read first. Done well, it tells Google, Bing and AI assistants exactly who your practice is, where it is and what it does, with no room for misreading.

Structured data code for a medical clinic website on a monitor

What schema markup does a medical practice need?

Most practices need MedicalClinic (or Physician for a solo doctor) on the home and location pages, Physician or Person markup for each doctor, MedicalProcedure or MedicalCondition on treatment pages, FAQPage where real questions are answered, and BreadcrumbList sitewide. Include address, phone, hours, medical specialty and sameAs links to your listings and profiles.

Schema.org is a shared vocabulary that search engines and AI systems use to understand web pages. Markup is usually added as a block of JSON-LD in the page's HTML. It does not replace good content, and it does not guarantee rich results. What it does is remove ambiguity, and ambiguity is the enemy of being recommended.

Why does schema matter for AI search?

AI assistants need to be confident that the practice on your website is the same entity as the listing on Google, the profile on Healthgrades and the doctor mentioned in a news article. Structured data states those facts explicitly: this organization, at this address, with these physicians, offering these services, identical to the entities at these other URLs. Search engines use this to build their knowledge graphs, and assistants that retrieve your page get the same clean facts. For a practice competing on specific, local questions, that clarity is a real advantage.

Which schema types should a practice use?

TypeWherePurpose
MedicalClinicHome page and each location pageIdentifies the practice as a medical business with a physical location
PhysicianSolo practice home page, or each doctor's bio pageDescribes an individual physician's practice, specialty and location
PersonAuthor bylines and biosConnects medical content to a named expert with credentials
MedicalProcedure, MedicalTherapyTreatment pagesDescribes what a procedure is, how it is performed and what it treats
MedicalConditionCondition pagesDescribes a condition, its symptoms and possible treatments
MedicalWebPageHealth content pagesMarks the page as medical content, with audience and last-reviewed date
FAQPagePages with genuine Q&AMakes question-and-answer pairs explicit
BreadcrumbListEvery pageShows the site hierarchy
WebSite, OrganizationHome pageDefines the site and the organization behind it

Schema.org defines Physician as a type of medical organization, meaning a doctor's practice or office, not the person. For the individual doctor as an author or expert, use Person with properties such as jobTitle, hasCredential, alumniOf and affiliation, and connect the two.

Which properties matter most?

For MedicalClinic or Physician, prioritize these properties:

  • name, exactly as it appears on your Google Business Profile and signage
  • address as a PostalAddress with street, suite, city, state, ZIP and country
  • geo with latitude and longitude
  • telephone in a consistent format, and url
  • openingHoursSpecification
  • medicalSpecialty, using schema.org values such as Dermatology, Cardiovascular or Pediatric
  • availableService listing key procedures or therapies
  • isAcceptingNewPatients, a property defined for medical organizations
  • sameAs, an array of URLs for your Google Business Profile, Healthgrades, Zocdoc, Vitals, LinkedIn, Facebook, Instagram and any Wikidata entry
  • @id, a stable identifier (for example your home URL plus #practice) so that other pages can refer to the same entity

What does good JSON-LD look like?

Here is a simplified example for a fictional dermatology practice. Replace every value with your own verified details.

{ "@context": "https://schema.org", "@type": "MedicalClinic", "@id": "https://www.exampledermatology.com/#practice", "name": "Example Dermatology", "url": "https://www.exampledermatology.com/", "telephone": "+1-555-010-0000", "medicalSpecialty": "Dermatology", "isAcceptingNewPatients": true, "address": { "@type": "PostalAddress", "streetAddress": "100 Main Street, Suite 200", "addressLocality": "Springfield", "addressRegion": "IL", "postalCode": "62701", "addressCountry": "US" }, "geo": { "@type": "GeoCoordinates", "latitude": 39.80, "longitude": -89.64 }, "openingHoursSpecification": [{ "@type": "OpeningHoursSpecification", "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"], "opens": "08:00", "closes": "17:00" }], "availableService": [ { "@type": "MedicalProcedure", "name": "Mohs surgery" }, { "@type": "MedicalTherapy", "name": "Phototherapy for psoriasis" } ], "sameAs": [ "https://www.healthgrades.com/...", "https://www.zocdoc.com/...", "https://www.linkedin.com/company/..." ] }

How should you mark up individual physicians?

Every physician bio page should carry a Person node with the doctor's name, jobTitle, a description, image, the medical specialty, credentials (hasCredential with the certifying board as recognizedBy), alumniOf for medical school and residency institutions, and affiliation for hospitals. Link it to the practice with worksFor pointing at the practice @id. On medical articles, reference the same Person as the author or reviewedBy. This one connection, a named physician tied to both the practice and the content, is among the most useful E-E-A-T signals a site can send.

What about FAQ markup?

In 2023 Google limited FAQ rich results mainly to well-known, authoritative government and health websites, so most practices will not see FAQ dropdowns in search results. FAQPage markup is still worth adding where the page genuinely contains questions and answers, because it makes those pairs explicit to Bing, AI assistants and any system that parses the page. Do not add FAQ markup for questions that are not visible on the page. That violates Google's guidelines.

What are the most common schema mistakes on practice websites?

  • Mismatched details. The phone number or suite in the schema differs from the one on the page or the Google profile.
  • Generic types. Using LocalBusiness or Organization when MedicalClinic or Physician is available.
  • Markup that describes invisible content. Reviews, FAQs or services in the schema that do not appear on the page.
  • Self-serving review markup. Google does not show review stars for a business's own reviews of itself, and marking them up can violate guidelines.
  • Broken JSON. A stray quote mark or comma can invalidate the whole block. Validate after every edit.
  • No sameAs links. The single most useful property for entity consistency is often missing entirely.
  • Plugin defaults left unchanged. Many WordPress SEO plugins output a generic Organization with the wrong name or logo.

How do you test schema?

Use Google's Rich Results Test to check eligibility for Google features, and the Schema Markup Validator at validator.schema.org to check that the markup is valid schema.org. Then check Search Console's enhancement reports for errors across the site. For AI visibility, a simple extra check is to paste your page URL into an assistant that can browse and ask it to describe the practice. If the description is wrong or vague, your markup and copy are not doing their job.

Where does schema fit in a GEO program?

Schema is one layer of the entity work that makes a practice easy to recommend. It works together with consistent listings, clear on-page facts and a machine-readable fact file such as llms.txt. On its own, schema will not make up for a thin website. Combined with strong pages, it makes sure every system reading those pages reaches the same conclusion about who you are. Our medical SEO and GEO work includes a full schema implementation and validation for every page type.

How should multi-location practices handle schema?

Each location should have its own page with its own MedicalClinic node, a unique @id (for example the location page URL plus #clinic), its own address, phone, hours and geo coordinates, and a parentOrganization property pointing at the main practice entity. The home page carries the parent organization with the list of locations. Physicians who work at several locations can reference each one through their Person node. This mirrors how Google Business Profile treats each location as a separate listing, and it prevents systems from blending the details of two offices into one inaccurate description.

What about telehealth?

If you offer virtual visits, say so in text on the relevant pages and in your schema. availableService can include a MedicalTherapy or service described as telehealth, and your description can state which states you are licensed to see patients in by video. Patients increasingly ask assistants for providers "who offer telehealth in [state]", and the answer depends on whether this information is published somewhere an assistant can read.

How often should schema be reviewed?

Whenever something factual changes: a physician joins or leaves, hours change, a new service launches, a location moves. Beyond that, a quarterly check with the validators catches errors introduced by site updates, plugin upgrades or template changes. On sites we manage, we run an automated audit that parses every JSON-LD block after each deployment and flags any page where the markup fails to parse, because a single broken quote mark can silently remove all structured data from a page.

A schema checklist for practices

  • MedicalClinic or Physician on the home page with a stable @id
  • Address, geo, phone, hours and medical specialty that match your Google Business Profile exactly
  • sameAs links to every accurate official profile
  • A Person node for each physician with credentials, affiliations and worksFor
  • MedicalProcedure or MedicalCondition on treatment and condition pages
  • Article or MedicalWebPage on content pages, with author, reviewer and dates
  • FAQPage only where the questions are visible on the page
  • BreadcrumbList on every page
  • Validation in both the Rich Results Test and the Schema Markup Validator after each change

Does schema help with AI assistants that do not use Google?

Assistants such as ChatGPT and Perplexity retrieve pages through their own crawlers and third-party indexes, and when they read a page they see the full HTML, including JSON-LD blocks. There is no public confirmation of exactly how each assistant weighs structured data, but the markup states facts in an unambiguous, machine-readable form, and the indexes these assistants rely on, including Bing, use structured data to understand pages. Consistent markup also feeds the knowledge graphs that shape how models learn about entities over time. The cost of adding it correctly is low, and the downside of leaving facts ambiguous is real, which is why we treat schema as standard on every page.

Frequently asked questions

What is the best schema type for a doctor's office?

MedicalClinic works well for most practices. For a solo physician practice, the Physician type, which schema.org defines as a physician's office or practice, is also appropriate. Use Person for the individual doctor as an author and expert.

Does schema markup improve Google rankings?

Google says structured data is not a direct ranking factor. It helps search engines understand your pages and can make them eligible for rich results, which supports visibility. For AI assistants, clear structured facts reduce ambiguity about your practice.

Should I add review schema to my practice website?

Google does not show star ratings for reviews a business publishes about itself on its own site, and self-serving review markup can violate guidelines. Focus on collecting reviews on Google and healthcare directories instead.

How many sameAs links should a practice include?

Include every official profile that accurately represents the practice: Google Business Profile, major healthcare directories, social profiles and any Wikidata entry. Only link profiles you control or that are accurate.

Can a WordPress plugin handle medical schema?

Plugins can generate a base layer, but they rarely cover MedicalClinic, Physician credentials, procedures and sameAs links correctly. Most practices need custom JSON-LD added or configured on top of the plugin output.

Want to know how AI assistants see your practice today?

Send us your website. We will check how ChatGPT, Perplexity, Gemini and Google describe your practice and tell you, in plain English, what is holding you back. Pricing depends on scope, so we quote after the first call.

Keep reading

Citing this page. You may quote this article with attribution.Fargon, A. (2026). "Schema markup for medical practices: what to add and why". Only One Medical. https://onlyonemedical.co.il/en/insights/schema-markup-for-medical-practices