@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
<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>Generate your doctor schema
Fill in your details — the JSON-LD, validator and search preview update as you type. Free, no account.
Step 1 of 7
Business
Type & identity
Business type
Pick the most specific schema.org subtype. It's the strongest relevance signal you can send.
@typeIdentity
Use the name exactly as it appears on your storefront and Google Business Profile.
nameMissing business name
alternateNamelegalNamedescription0/750
sloganfoundingDateWebsite & media
urlMissing website URL
logoSquare, at least 112×112px, on a plain background.
imageNo images
Medical details
medicalSpecialtyisAcceptingNewPatientsFree 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: Physician | The schema.org type for an individual doctor or general practice — more precise than MedicalClinic. |
isAcceptingNewPatients | The question most new patients ask first, answered in markup. |
medicalSpecialty | Use PrimaryCare, Pediatric or the specialty that matches the practice. |
knowsLanguage | Multilingual practices win searches in the patient's own language. |
name + address | Required 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