XooCode(){

Campground

Campground is a dual-inheritance type: it sits under BOTH CivicStructure AND LodgingBusiness. That dual lineage gives it the civic-structure opening hours plus the full lodging-business vocabulary for reservations, stays, and amenities.

Use Campground for tent, RV, group, and cabin camping destinations. For pure RV-focused destinations, prefer RVPark; for individual rentable pitches within a campground, attach CampingPitch entries via containsPlace.

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

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

schema.org/Campground
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Campground",
  "name": "Lackawanna State Campground",
  "description": "State-run family campground on the northeast shore of Lake Xoo with tent sites, RV hookups, and rentable cabins.",
  "address": { "@type": "PostalAddress", "streetAddress": "2480 Lake Shore Dr", "addressLocality": "Dunmore", "addressRegion": "PA", "postalCode": "18512", "addressCountry": "US" },
  "telephone": "+1-570-555-0601",
  "geo": { "@type": "GeoCoordinates", "latitude": 41.4105, "longitude": -75.5788 },
  "openingHours": "Mo-Su 00:00-23:59",
  "checkinTime": "14:00",
  "checkoutTime": "11:00",
  "numberOfRooms": 78,
  "petsAllowed": true,
  "priceRange": "$",
  "amenityFeature": [
    { "@type": "LocationFeatureSpecification", "name": "Fire rings", "value": true },
    { "@type": "LocationFeatureSpecification", "name": "Potable water", "value": true },
    { "@type": "LocationFeatureSpecification", "name": "Shower houses", "value": true },
    { "@type": "LocationFeatureSpecification", "name": "RV electric hookups", "value": true }
  ],
  "url": "https://xoocode.com/recreation/lackawanna-state-campground"
}
</script>

Minimal valid version

The smallest markup that still produces a valid Campground 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/Campground (minimal)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Campground",
  "name": "Lackawanna State Campground",
  "address": { "@type": "PostalAddress", "streetAddress": "2480 Lake Shore Dr", "addressLocality": "Dunmore", "addressRegion": "PA", "postalCode": "18512", "addressCountry": "US" }
}
</script>

Google rich results this unlocks

Campground is a structural type. It does not produce a rich result on its own.

Its value comes from combining it with a primary type whose markup earns a rich result (Article, Product, Event, and so on). Campground becomes the trunk that the primary type branches off viamainEntityorbreadcrumb. Include it on every page as the backbone of your markup.

Common Campground 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 Campground for an RV-only park

    Wrong
    Campground for a destination with only RV hookups
    Right
    RVPark (CivicStructure subtype) for RV-only destinations; Campground when tent camping is also offered

    RVPark vs Campground matches user search intent. Families searching 'campground' want tent-friendly; RV users searching 'RV park' want hookup-first.

  2. 02

    Putting pitches on the Campground

    Wrong
    Individual pitch numbers crowded into Campground.description
    Right
    CampingPitch (Accommodation subtype) entries linked via containsPlace

    Individual rentable pitches are Accommodation units with their own availability and pricing. They should be separate CampingPitch entities, not text.

About the example data

"Lackawanna State Campground", a fictional state-run campground outside Dunmore with 48 tent sites, 24 RV hookups, and 6 cabins.

Comments

Loading comments...

Leave a comment