Skip to content

@type: Dentist · MedicalBusiness

Dentist schema generator

Patients compare dentists on three things before they call: whether you take new patients, when you're open, and what a visit costs. Dentist schema puts all three into machine-readable JSON-LD so Google, Bing and AI assistants can answer “dentist open Saturday near me” with your practice.

Free · no account needed · validated against Google's LocalBusiness guidelines

Example · Bright Smile Dental Studio
<script type="application/ld+json">{  "@context": "https://schema.org",  "@type": "Dentist",  "@id": "https://brightsmile-dental.example/groningen/#localbusiness",  "name": "Bright Smile Dental Studio",  "alternateName": "Bright Smile Groningen",  "legalName": "Bright Smile Tandartsen B.V.",  "description": "Family and cosmetic dentistry in the centre of Groningen. Same-week appointments, Invisalign aligners and gentle care for anxious patients.",  "url": "https://brightsmile-dental.example/groningen",  "logo": "https://brightsmile-dental.example/assets/logo-512.png",  "image": [    "https://brightsmile-dental.example/assets/practice-16x9.jpg",    "https://brightsmile-dental.example/assets/practice-4x3.jpg",    "https://brightsmile-dental.example/assets/team-1x1.jpg"  ],  "foundingDate": "2011-03-01",  "telephone": "+31 50 211 4480",  "email": "hello@brightsmile-dental.example",  "priceRange": "€€",  "currenciesAccepted": "EUR",  "paymentAccepted": "Debit Card, Credit Card, iDEAL, Insurance",  "knowsLanguage": [    "Dutch",    "English",    "German"  ],  "address": {    "@type": "PostalAddress",    "streetAddress": "Oude Ebbingestraat 42",    "addressLocality": "Groningen",    "addressRegion": "Groningen",    "postalCode": "9712 HL",    "addressCountry": "NL"  },  "geo": {    "@type": "GeoCoordinates",    "latitude": 53.221432,    "longitude": 6.566874  },  "hasMap": "https://maps.app.goo.gl/brightsmile-example",  "areaServed": [    {      "@type": "Place",      "name": "Groningen"    },    {      "@type": "Place",      "name": "Haren"    },    {      "@type": "Place",      "name": "Paterswolde"    }  ],  "openingHoursSpecification": [    {      "@type": "OpeningHoursSpecification",      "dayOfWeek": [        "Monday",        "Tuesday",        "Wednesday",        "Thursday",        "Friday"      ],      "opens": "08:30",      "closes": "12:30"    },    {      "@type": "OpeningHoursSpecification",      "dayOfWeek": [        "Monday",        "Tuesday",        "Wednesday",        "Friday"      ],      "opens": "13:30",      "closes": "17:30"    },    {      "@type": "OpeningHoursSpecification",      "dayOfWeek": "Thursday",      "opens": "13:30",      "closes": "20:00"    },    {      "@type": "OpeningHoursSpecification",      "dayOfWeek": "Saturday",      "opens": "09:00",      "closes": "13:00"    }  ],  "specialOpeningHoursSpecification": [    {      "@type": "OpeningHoursSpecification",      "name": "Christmas Day",      "validFrom": "2026-12-25",      "validThrough": "2026-12-26",      "opens": "00:00",      "closes": "00:00"    },    {      "@type": "OpeningHoursSpecification",      "name": "New Year's Eve",      "validFrom": "2026-12-31",      "validThrough": "2026-12-31",      "opens": "08:30",      "closes": "13:00"    },    {      "@type": "OpeningHoursSpecification",      "name": "New Year's Day",      "validFrom": "2027-01-01",      "validThrough": "2027-01-01",      "opens": "00:00",      "closes": "00:00"    }  ],  "medicalSpecialty": "Dentistry",  "isAcceptingNewPatients": true,  "hasOfferCatalog": {    "@type": "OfferCatalog",    "name": "Dental treatments",    "itemListElement": [      {        "@type": "Offer",        "itemOffered": {          "@type": "Service",          "name": "Check-up & cleaning",          "description": "Full exam, scale & polish and oral cancer screening."        },        "price": "79.00",        "priceCurrency": "EUR",        "priceSpecification": {          "@type": "UnitPriceSpecification",          "price": "79.00",          "priceCurrency": "EUR",          "unitText": "per visit"        }      },      {        "@type": "Offer",        "itemOffered": {          "@type": "Service",          "name": "Invisalign clear aligners",          "description": "Digital scan, treatment plan and aligner series."        },        "priceSpecification": {          "@type": "PriceSpecification",          "minPrice": "2950.00",          "priceCurrency": "EUR"        }      },      {        "@type": "Offer",        "itemOffered": {          "@type": "Service",          "name": "Teeth whitening",          "description": "In-chair whitening with take-home trays."        },        "price": "349.00",        "priceCurrency": "EUR"      },      {        "@type": "Offer",        "itemOffered": {          "@type": "Service",          "name": "Emergency dental care",          "description": "Same-day appointments for pain, swelling or broken teeth."        },        "priceSpecification": {          "@type": "PriceSpecification",          "minPrice": "95.00",          "priceCurrency": "EUR",          "maxPrice": "250.00"        }      },      {        "@type": "Offer",        "itemOffered": {          "@type": "Service",          "name": "Dental implants",          "description": "Single-tooth implant including crown."        },        "priceSpecification": {          "@type": "PriceSpecification",          "minPrice": "2400.00",          "priceCurrency": "EUR"        }      }    ]  },  "aggregateRating": {    "@type": "AggregateRating",    "ratingValue": "4.9",    "reviewCount": "312",    "bestRating": "5",    "worstRating": "1"  },  "review": [    {      "@type": "Review",      "author": {        "@type": "Person",        "name": "Sanne de Vries"      },      "reviewRating": {        "@type": "Rating",        "ratingValue": "5",        "bestRating": "5"      },      "reviewBody": "Finally a dentist that doesn't make me nervous. Clear explanations and zero waiting time.",      "datePublished": "2026-09-14"    },    {      "@type": "Review",      "author": {        "@type": "Person",        "name": "Mark Jansen"      },      "reviewRating": {        "@type": "Rating",        "ratingValue": "5",        "bestRating": "5"      },      "reviewBody": "Emergency appointment the same afternoon — fixed my cracked molar painlessly.",      "datePublished": "2026-08-02"    }  ],  "sameAs": [    "https://maps.app.goo.gl/brightsmile-example",    "https://www.facebook.com/brightsmilegroningen",    "https://www.instagram.com/brightsmilegroningen",    "https://www.linkedin.com/company/bright-smile-dental-studio"  ]}</script>
Validator score 96/100 · 0 errors

Generate your dentist schema

Fill in your details — the JSON-LD, validator and search preview update as you type. Free, no account.

Full builder

Step 1 of 7

Business

Business type

Pick the most specific schema.org subtype. It's the strongest relevance signal you can send.

Identity

Use the name exactly as it appears on your storefront and Google Business Profile.

Missing business name

0/750

Website & media

Missing website URL

Square, at least 112×112px, on a plain background.

No images

Medical details

Free schema checker

Validate existing dentist markup

Already have dentist markup? Paste it to see its score, rich result eligibility and exactly what to fix.

Properties that matter for dentists

@type: DentistA dedicated schema.org type — far stronger than generic LocalBusiness or MedicalBusiness.
isAcceptingNewPatientsAnswers the most common pre-booking question directly in structured data.
openingHoursSpecificationSplit lunch hours and late evenings are encoded per day, not as one vague string.
hasOfferCatalogList check-ups, whitening, implants and Invisalign with from-prices.
name + addressRequired by Google for every LocalBusiness — and must match your Business Profile exactly.

Best practices

  • Use the practice name exactly as it appears on your Google Business Profile — don't append “Best Dentist in…”.
  • Add each dentist as a separate Person page with their own markup; keep the practice markup focused on the location.
  • Encode emergency or out-of-hours slots as their own service so “emergency dentist” searches have something to match.

FAQ

What the validator checks

  • Required name and full postal address
  • Phone format and international prefix
  • Overlapping or invalid split hours
  • Coordinates with 5+ decimal precision
  • Expired holiday exceptions
  • Keyword-stuffed business names
  • Self-serving review markup
  • Most specific schema.org subtype

For agencies

Managing several dentists?

Host the schema for up to 25 client locations and update hours across every site from one dashboard.

See Pro