Dentist
Dentist is a MedicalBusiness subtype (which extends LocalBusiness) for dental practices, clinics, and individual dentists. Google uses it for local healthcare search, the business knowledge panel, and Google Maps listings. Healthcare searches are among the most local-intent queries on Google, so detailed markup directly affects whether a practice appears in "dentist near me" results.
Dentist inherits from both MedicalBusiness (a LocalBusiness subtype) and MedicalOrganization. The healthcare-specific properties (medicalSpecialty, isAcceptingNewPatients) come from MedicalOrganization, while LocalBusiness provides address, hours, and ratings. Note that availableService is NOT on Dentist; that property belongs to Hospital, MedicalClinic, and Physician. For listing services on a Dentist, use the description field or hasOfferCatalog from Organization.
Full example of schema.org/Dentist json-ld markup
The markup is verified as valid with Rich Results Test from Google.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@id": "https://dunmorefamilydental.com#dentist",
"@type": "Dentist",
"name": "Dunmore Family Dental",
"description": "General and cosmetic dentistry for families in Dunmore and the greater Scranton area. Accepting new patients. Same-day emergency appointments available.",
"url": "https://dunmorefamilydental.com",
"image": "https://dunmorefamilydental.com/images/office-exterior.jpg",
"telephone": "+1-570-555-0188",
"address": {
"@type": "PostalAddress",
"streetAddress": "275 Main Street, Suite 2B",
"addressLocality": "Dunmore",
"addressRegion": "PA",
"postalCode": "18512",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 41.4201,
"longitude": -75.6331
},
"medicalSpecialty": "https://schema.org/Dentistry",
"isAcceptingNewPatients": true,
"paymentAccepted": "Cash, Credit Card, Delta Dental, MetLife, Cigna, Aetna",
"currenciesAccepted": "USD",
"priceRange": "$$",
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday"],
"opens": "08:00",
"closes": "17:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Friday",
"opens": "08:00",
"closes": "14:00"
}
],
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.8",
"reviewCount": "94",
"bestRating": "5"
}
}
</script>medicalSpecialty
medicalSpecialty (inherited from MedicalOrganization) describes the practice's specialization. For general dentists, use https://schema.org/Dentistry. For specialists, schema.org provides more specific values, but in practice most dental offices serve general patients and refer out for specialties. You can list multiple specialties as an array if the practice covers orthodontics, periodontics, or oral surgery alongside general dentistry.
isAcceptingNewPatients
isAcceptingNewPatients is a Boolean. This is one of the most searched filters in healthcare local search. A practice that is not accepting new patients wastes a searcher's time. Google and AI assistants read this to filter results proactively. Update it whenever the practice's patient panel opens or closes.
Listing services without availableService
availableService exists on Hospital, MedicalClinic, and Physician, but not on Dentist. To list dental services, describe them in the description field or use hasOfferCatalog (inherited from Organization) with an OfferCatalog containing service entries. In practice, most dental sites list services in the description and rely on Google My Business for structured service data.
Insurance and payment
Schema.org does not have a dedicated insurance property, but you can use paymentAccepted (a text field) to list accepted insurance plans and payment methods. Google reads this for display in the knowledge panel. For structured insurance data, some practices use additionalProperty with PropertyValue objects.
Minimal valid version
The smallest markup that still produces a valid Dentist entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Dentist",
"name": "Dunmore Family Dental",
"address": {
"@type": "PostalAddress",
"streetAddress": "275 Main Street, Suite 2B",
"addressLocality": "Dunmore",
"addressRegion": "PA"
},
"telephone": "+1-570-555-0188"
}
</script>Google rich results this unlocks
Markup matching this example makes your page eligible for the following Google Search rich results. The primary target drives the required / recommended property classification in the advanced code block above.
- Google docsLocal business rich resultprimary
Common Dentist mistakes
Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.
- 01
Missing isAcceptingNewPatients
WrongDentist markup with no isAcceptingNewPatientsRight"isAcceptingNewPatients": trueThis is one of the most important filters in healthcare search. Patients searching for a new dentist need to know if the practice is accepting them. Omitting it means Google and AI assistants cannot answer this question from your markup, and patients may call only to be turned away.
- 02
medicalSpecialty as a plain string
Wrong"medicalSpecialty": "Dentistry"Right"medicalSpecialty": "https://schema.org/Dentistry"medicalSpecialty expects a schema.org URL, not a plain string. The full URL lets Google map your specialty to its medical taxonomy. Plain strings may be parsed but are less reliable for structured filtering.
- 03
Using generic LocalBusiness instead of Dentist
Wrong"@type": "LocalBusiness" for a dental practiceRight"@type": "Dentist"Dentist gives Google the specific business category it needs for healthcare search. Generic LocalBusiness does not trigger healthcare-specific filters (accepting patients, specialties, services). Google may still categorize you correctly from other signals, but explicit typing is more reliable.
- 04
Using availableService on Dentist
Wrong"availableService": [{ "@type": "MedicalProcedure", "name": "Teeth whitening" }] on a DentistRightList services in the description field or use hasOfferCatalog from OrganizationavailableService is defined on Hospital, MedicalClinic, and Physician but NOT on Dentist. Using it on Dentist is technically invalid per the schema.org spec, even though some validators accept it. For Dentist, list services in the description or use hasOfferCatalog with Service entries.
- 05
Insurance listed only in description, not in paymentAccepted
Wrong"description": "We accept Delta Dental, MetLife, Cigna..." (insurance only in prose)Right"paymentAccepted": "Delta Dental, MetLife, Cigna, Aetna, Cash, Credit Card"Google reads paymentAccepted for structured insurance information. Insurance mentioned only in the description text is harder for Google to extract and will not populate the payment section of the knowledge panel.
Schema properties in this example
About the example data
Dunmore Family Dental is a fictional dental practice on Main Street in Dunmore, part of the downtown cluster that includes Xoo Code Shop, The Dunmore Grill, and Hotel Dunmore. It represents the MedicalBusiness branch of LocalBusiness subtypes.
Comments
Loading comments...