Skip to content

@type: Physician · MedicalBusiness

Doctor schema generator

People choose a GP on availability: are you taking new patients, which languages do you speak, and are you open before work? Physician schema states all of that in structured data, so search engines and AI assistants can recommend your practice for “GP accepting new patients near me”.

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

Example · Huisartsenpraktijk Noorderplantsoen
<script type="application/ld+json">{  "@context": "https://schema.org",  "@type": "Physician",  "@id": "https://huisartsnoorderplantsoen.example/#localbusiness",  "name": "Huisartsenpraktijk Noorderplantsoen",  "alternateName": "Noorderplantsoen GP Practice",  "description": "General practice in Groningen's Oranjewijk with three GPs, a practice nurse and an English-speaking reception. Accepting new patients in 9712 and 9717.",  "url": "https://huisartsnoorderplantsoen.example",  "logo": "https://huisartsnoorderplantsoen.example/logo.png",  "image": "https://huisartsnoorderplantsoen.example/img/practice-16x9.jpg",  "telephone": "+31 50 555 0142",  "email": "assistente@huisartsnoorderplantsoen.example",  "currenciesAccepted": "EUR",  "paymentAccepted": "Debit Card, Health insurance",  "knowsLanguage": [    "Dutch",    "English",    "German"  ],  "address": {    "@type": "PostalAddress",    "streetAddress": "Kraneweg 48",    "addressLocality": "Groningen",    "addressRegion": "Groningen",    "postalCode": "9718 JR",    "addressCountry": "NL"  },  "geo": {    "@type": "GeoCoordinates",    "latitude": 53.22464,    "longitude": 6.55692  },  "openingHoursSpecification": [    {      "@type": "OpeningHoursSpecification",      "dayOfWeek": [        "Monday",        "Tuesday",        "Wednesday",        "Thursday",        "Friday"      ],      "opens": "08:00",      "closes": "12:30"    },    {      "@type": "OpeningHoursSpecification",      "dayOfWeek": [        "Monday",        "Tuesday",        "Wednesday",        "Thursday",        "Friday"      ],      "opens": "13:30",      "closes": "17:00"    }  ],  "specialOpeningHoursSpecification": [    {      "@type": "OpeningHoursSpecification",      "name": "Kerstavond",      "validFrom": "2026-12-24",      "validThrough": "2026-12-24",      "opens": "08:00",      "closes": "12:00"    }  ],  "medicalSpecialty": "PrimaryCare",  "isAcceptingNewPatients": true,  "hasOfferCatalog": {    "@type": "OfferCatalog",    "name": "Consultations",    "itemListElement": [      {        "@type": "Offer",        "itemOffered": {          "@type": "Service",          "name": "GP consultation",          "description": "Ten-minute appointment, covered by basic insurance."        }      },      {        "@type": "Offer",        "itemOffered": {          "@type": "Service",          "name": "Telephone consultation",          "description": "Call-back from your GP the same day."        }      },      {        "@type": "Offer",        "itemOffered": {          "@type": "Service",          "name": "Travel vaccination",          "description": "Advice and vaccines for travel abroad."        },        "priceSpecification": {          "@type": "PriceSpecification",          "minPrice": "25.00",          "priceCurrency": "EUR"        }      }    ]  },  "sameAs": [    "https://maps.app.goo.gl/huisartsnoorderplantsoen-example",    "https://www.zorgkaartnederland.nl/zorginstelling/huisartsenpraktijk-noorderplantsoen-example"  ]}</script>
Validator score 99/100 · 0 errors

Generate your doctor 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 doctor markup

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

Properties that matter for doctors and GP practices

@type: PhysicianThe schema.org type for an individual doctor or general practice — more precise than MedicalClinic.
isAcceptingNewPatientsThe question most new patients ask first, answered in markup.
medicalSpecialtyUse PrimaryCare, Pediatric or the specialty that matches the practice.
knowsLanguageMultilingual practices win searches in the patient's own language.
name + addressRequired by Google for every LocalBusiness — and must match your Business Profile exactly.

Best practices

  • Keep one markup block per practice location; describe individual doctors on their own profile pages.
  • List consultation types (regular, telephone, home visit) as services so they can be matched in search.
  • Never mark up patient reviews about medical outcomes — stick to the practice details.

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 doctors and GP practices?

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

See Pro