XooCode(){

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 to https://schema.org/PharmacySpecialty for general pharmacies, or more specifically (e.g. compounding pharmacy descriptors live in description).
  • 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.

Highlight legend:Required by GoogleRecommendedOptional
schema.org/Pharmacy
<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.

schema.org/Pharmacy (minimal)
<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.

  • Local business / medical provider knowledge panelprimary
    Google docs

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.

  1. 01

    Store instead of Pharmacy for a pharmacy counter

    Wrong
    "@type": "Store" on a pharmacy
    Right
    "@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.

  2. 02

    paymentAccepted listing drug names

    Wrong
    paymentAccepted listing medications
    Right
    paymentAccepted lists insurers, cards, and cash forms — not drugs

    Drug coverage is a different axis. paymentAccepted is payment methods only.

  3. 03

    Missing amenityFeature for drive-through / compounding

    Wrong
    Text-only description of pharmacy capabilities
    Right
    Structured amenityFeature entries let search engines filter on capability

    Google's local result lets users filter by drive-through; only structured amenityFeature unlocks that filter.

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...

Leave a comment