XooCode(){

PlaceOfWorship

PlaceOfWorship is a CivicStructure subtype (which extends Place), not a LocalBusiness. This matters: it inherits from Place, not from Organization or LocalBusiness. That means properties like priceRange, paymentAccepted, and currenciesAccepted are not available. A church is a place, not a business.

Schema.org provides 5 subtypes: BuddhistTemple, Church, HinduTemple, Mosque, and Synagogue. Use the most specific one. If the place of worship does not fit any subtype (for example, a Sikh gurdwara or a Quaker meetinghouse), use the parent type PlaceOfWorship.

Full example of schema.org/PlaceOfWorship json-ld markup

The markup is verified as valid with Rich Results Test from Google.

Highlight legend:Required by GoogleRecommendedOptional
schema.org/PlaceOfWorship
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@id": "https://stmichaelsdunmore.org#church",
  "@type": "Church",
  "name": "St. Michael's Catholic Church",
  "description": "Catholic parish serving the Dunmore community since 1873. Sunday Mass at 9:00 AM and 11:30 AM. Weekday Mass Tuesday through Friday at 7:30 AM.",
  "url": "https://stmichaelsdunmore.org",
  "image": "https://stmichaelsdunmore.org/images/facade.jpg",
  "telephone": "+1-570-555-0250",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "220 Elm Street",
    "addressLocality": "Dunmore",
    "addressRegion": "PA",
    "postalCode": "18512",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 41.4208,
    "longitude": -75.6320
  },
  "isAccessibleForFree": true,
  "publicAccess": true,
  "maximumAttendeeCapacity": 450,
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "07:00",
      "closes": "17:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Saturday", "Sunday"],
      "opens": "08:00",
      "closes": "13:00"
    }
  ],
  "containedInPlace": {
    "@type": "City",
    "name": "Dunmore",
    "containedInPlace": {
      "@type": "State",
      "name": "Pennsylvania"
    }
  }
}
</script>

CivicStructure, not LocalBusiness

The type hierarchy is Thing → Place → CivicStructure → PlaceOfWorship. CivicStructure also parents types like Park, Airport, Museum, and Library. These are public structures, not businesses. They have address, geo, openingHoursSpecification, telephone, and photo from Place, but no business-specific properties.

openingHoursSpecification for service times

For a place of worship, openingHoursSpecification typically represents when the building is open to visitors, not service times. Service times are better represented as event entries (each service is an Event with a startDate and schedule). The distinction matters because a church might be open for visits from 9 AM to 5 PM but hold services only on Sunday morning.

maximumAttendeeCapacity

maximumAttendeeCapacity (inherited from Place) records the building's seating capacity. Google and event platforms read this when listing events at the venue. For a church, this is the sanctuary seating capacity.

Minimal valid version

The smallest markup that still produces a valid PlaceOfWorship 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/PlaceOfWorship (minimal)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Church",
  "name": "St. Michael's Catholic Church",
  "address": {
    "@type": "PostalAddress",
    "addressLocality": "Dunmore",
    "addressRegion": "PA"
  }
}
</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.

Common PlaceOfWorship 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

    Using LocalBusiness for a place of worship

    Wrong
    "@type": "LocalBusiness" for a church or mosque
    Right
    "@type": "Church" or "@type": "Mosque"

    PlaceOfWorship is a CivicStructure, not a LocalBusiness. Using LocalBusiness for a church implies it is a commercial business, which misrepresents the entity. The correct hierarchy is Thing → Place → CivicStructure → PlaceOfWorship → Church.

  2. 02

    Adding priceRange or paymentAccepted

    Wrong
    "priceRange": "Free" on a Church
    Right
    "isAccessibleForFree": true

    priceRange and paymentAccepted are LocalBusiness properties. PlaceOfWorship does not inherit from LocalBusiness, so these properties are invalid. Use isAccessibleForFree (a Place property) to indicate free admission.

  3. 03

    Service times in openingHoursSpecification

    Wrong
    openingHoursSpecification showing only Sunday 9:00-11:00 (the service time)
    Right
    openingHoursSpecification for when the building is open to visitors; service times as Event objects

    openingHoursSpecification represents when the physical building is accessible. Service times are events. A church open 7 AM to 5 PM daily with services on Sunday at 9 AM and 11:30 AM should show the full open hours in openingHoursSpecification and the services as event entries.

  4. 04

    Using parent PlaceOfWorship when a subtype fits

    Wrong
    "@type": "PlaceOfWorship" for a Catholic church
    Right
    "@type": "Church"

    Schema.org has 5 subtypes: BuddhistTemple, Church, HinduTemple, Mosque, Synagogue. Use the most specific one for better categorization in Google Maps. Use PlaceOfWorship only for faith traditions not covered by the five subtypes.

About the example data

St. Michael's Church is a fictional Catholic parish in downtown Dunmore, part of the same Main Street cluster as the other Xoo universe businesses. The church holds a community breakfast after Sunday services at The Dunmore Grill.

Comments

Loading comments...

Leave a comment