XooCode(){

Park

Park is a CivicStructure subtype (extending Place) for public parks, gardens, and recreation areas. Like PlaceOfWorship, it is not a LocalBusiness. It inherits from Place, so it has address, geo, openingHoursSpecification, telephone, amenityFeature, and photo, but not business properties like priceRange or paymentAccepted.

Park defines no properties of its own. Its value is classification: Google Maps categorizes it differently from a business, showing park-specific features in the knowledge panel (trails, playgrounds, facilities). The markup is consumed by mapping services, travel apps, and AI assistants that recommend outdoor activities.

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

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

Highlight legend:Required by GoogleRecommendedOptional
schema.org/Park
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@id": "https://dunmore-pa.gov/parks/community-park#park",
  "@type": "Park",
  "name": "Dunmore Community Park",
  "description": "Municipal park in Dunmore with walking trails, a playground, picnic pavilions, basketball courts, and a seasonal splash pad. Open dawn to dusk year-round.",
  "url": "https://dunmore-pa.gov/parks/community-park",
  "image": "https://dunmore-pa.gov/parks/images/community-park-aerial.jpg",
  "telephone": "+1-570-555-0001",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "100 Park Drive",
    "addressLocality": "Dunmore",
    "addressRegion": "PA",
    "postalCode": "18512",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 41.4215,
    "longitude": -75.6310
  },
  "isAccessibleForFree": true,
  "publicAccess": true,
  "amenityFeature": [
    { "@type": "LocationFeatureSpecification", "name": "Walking Trails", "value": true },
    { "@type": "LocationFeatureSpecification", "name": "Playground", "value": true },
    { "@type": "LocationFeatureSpecification", "name": "Picnic Pavilions", "value": true },
    { "@type": "LocationFeatureSpecification", "name": "Basketball Courts", "value": true },
    { "@type": "LocationFeatureSpecification", "name": "Restrooms", "value": true },
    { "@type": "LocationFeatureSpecification", "name": "Parking Lot", "value": true },
    { "@type": "LocationFeatureSpecification", "name": "Dog Park", "value": false }
  ],
  "openingHoursSpecification": {
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"],
    "opens": "06:00",
    "closes": "21:00"
  },
  "containedInPlace": {
    "@type": "City",
    "name": "Dunmore",
    "containedInPlace": {
      "@type": "State",
      "name": "Pennsylvania"
    }
  }
}
</script>

amenityFeature for park facilities

amenityFeature (inherited from Place) is the most useful property for parks. Use LocationFeatureSpecification objects to declare what the park has: playground, picnic area, walking trails, restrooms, sports courts, dog park, parking lot. Google Maps reads these for facility-filtered searches ("parks with playgrounds near me").

isAccessibleForFree and publicAccess

Most public parks are both free and publicly accessible. Set isAccessibleForFree to true and publicAccess to true. For parks with admission fees (botanical gardens, state parks with parking fees), set isAccessibleForFree to false. For parks with restricted access (gated communities, private estates open seasonally), set publicAccess accordingly.

Park vs TouristAttraction

A local community park is a Park. A nationally known park (Central Park, Yellowstone) might be both a Park and a TouristAttraction. In that case, use "@type": ["Park", "TouristAttraction"]. For a simple neighborhood park, just Park is sufficient.

Minimal valid version

The smallest markup that still produces a valid Park 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/Park (minimal)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Park",
  "name": "Dunmore Community Park",
  "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 Park 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 public park

    Wrong
    "@type": "LocalBusiness" for a municipal park
    Right
    "@type": "Park"

    Park is a CivicStructure, not a LocalBusiness. A public park is not a commercial entity. Using LocalBusiness implies business-level properties (priceRange, paymentAccepted) that do not apply to parks.

  2. 02

    Adding priceRange to a park

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

    priceRange is a LocalBusiness property that Park does not inherit. Use isAccessibleForFree (a Place property) to indicate free admission. This is the correct property for all CivicStructure subtypes.

  3. 03

    Missing amenityFeature for park facilities

    Wrong
    Park with only name and address, no amenityFeature
    Right
    "amenityFeature": [{ "@type": "LocationFeatureSpecification", "name": "Playground", "value": true }]

    Park facilities are the main differentiator between parks in search. amenityFeature makes playgrounds, trails, courts, and restrooms filterable. Without it, Google cannot match the park to queries like "parks with playgrounds near me."

  4. 04

    Park when TouristAttraction is more accurate

    Wrong
    "@type": "Park" for a nationally recognized park that draws tourists
    Right
    "@type": ["Park", "TouristAttraction"] for parks that are also tourist destinations

    A neighborhood park is just a Park. A park that attracts tourists (botanical gardens, national parks, famous city parks) benefits from the TouristAttraction type for travel-related search queries. Use both types together when applicable.

About the example data

Dunmore Community Park is a fictional municipal park a few blocks from the Dunmore Main Street cluster. XooCon attendees use it for morning runs and post-conference barbecues. The amenityFeature list reflects a typical small-town community park.

Comments

Loading comments...

Leave a comment