Pharmacy
Pharmacy dual-inherits from MedicalBusiness and MedicalOrganization. It has no unique properties; its value is in the classification itself — a Pharmacy is a specific kind of healthcare business that knowledge-graph consumers, insurance directories, and Google local-search all treat differently from a generic Store.
The powerful properties are all inherited:
medicalSpecialty: set tohttps://schema.org/PharmacySpecialtyfor general pharmacies, or more specifically (e.g. compounding pharmacy descriptors live indescription).isAcceptingNewPatients: rare on pharmacies but still valid (e.g. specialty pharmacies that manage chronic therapies).healthPlanNetworkId: insurer-network membership.paymentAccepted: the insurance carriers billed at the counter.openingHoursSpecification: essential for pharmacy search.
Full example of schema.org/Pharmacy json-ld markup
The markup is verified as valid with Rich Results Test from Google.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Pharmacy",
"@id": "https://dunmorepharmacy.example/#pharmacy",
"name": "Dunmore Corner Pharmacy",
"url": "https://dunmorepharmacy.example",
"description": "Independent, full-service pharmacy in downtown Dunmore with same-day refills, compounding, immunisations, and a 24-hour drive-through.",
"telephone": "+1-570-555-0150",
"address": {
"@type": "PostalAddress",
"streetAddress": "218 Main Street",
"addressLocality": "Dunmore",
"addressRegion": "PA",
"postalCode": "18512",
"addressCountry": "US"
},
"geo": { "@type": "GeoCoordinates", "latitude": 41.4218, "longitude": -75.6338 },
"medicalSpecialty": "https://schema.org/PharmacySpecialty",
"paymentAccepted": "Aetna, CVS Caremark, Express Scripts, Medicare Part D, OptumRx, Cash",
"currenciesAccepted": "USD",
"priceRange": "$$",
"openingHoursSpecification": [
{ "@type": "OpeningHoursSpecification", "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"], "opens": "08:00", "closes": "21:00" },
{ "@type": "OpeningHoursSpecification", "dayOfWeek": "Saturday", "opens": "09:00", "closes": "18:00" },
{ "@type": "OpeningHoursSpecification", "dayOfWeek": "Sunday", "opens": "10:00", "closes": "16:00" }
],
"amenityFeature": [
{ "@type": "LocationFeatureSpecification", "name": "Drive-through", "value": true },
{ "@type": "LocationFeatureSpecification", "name": "Compounding", "value": true },
{ "@type": "LocationFeatureSpecification", "name": "Immunisations", "value": true }
],
"aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.7", "reviewCount": "218", "bestRating": "5" }
}
</script>Pharmacy vs Store
A retail pharmacy with a counter inside a supermarket is both a Pharmacy and a GroceryStore. Use dual-typing via "@type": ["Pharmacy", "GroceryStore"], or model the pharmacy as a department of the grocery store with its own Pharmacy listing.
Minimal valid version
The smallest markup that still produces a valid Pharmacy 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": "Pharmacy",
"name": "Dunmore Corner Pharmacy",
"address": { "@type": "PostalAddress", "streetAddress": "218 Main Street", "addressLocality": "Dunmore", "addressRegion": "PA" },
"telephone": "+1-570-555-0150"
}
</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 / medical provider knowledge panelprimary
Common Pharmacy 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
Store instead of Pharmacy for a pharmacy counter
Wrong"@type": "Store" on a pharmacyRight"@type": "Pharmacy" (or dual-type with the retail parent if it truly is both)Pharmacy is what insurance directories, health-search engines, and Google Medical carousels key on. Generic Store loses all that signal.
- 02
paymentAccepted listing drug names
WrongpaymentAccepted listing medicationsRightpaymentAccepted lists insurers, cards, and cash forms — not drugsDrug coverage is a different axis. paymentAccepted is payment methods only.
- 03
Missing amenityFeature for drive-through / compounding
WrongText-only description of pharmacy capabilitiesRightStructured amenityFeature entries let search engines filter on capabilityGoogle's local result lets users filter by drive-through; only structured amenityFeature unlocks that filter.
Schema properties in this example
Also mentioned in 1 other example
Pharmacy also appears in MedicalSpecialty. See the full Pharmacy schema page for every reference.
About the example data
Dunmore Corner Pharmacy, a fictional independent pharmacy on Main Street with a 24-hour drive-through.
Comments
Loading comments...