XooCode(){

Place

Place is the base type for any physical location: a building, a park, a neighborhood, a city, a country. With 41 properties of its own, it covers addresses, coordinates, opening hours, photos, maps, accessibility, and geographic relationships. Most Place subtypes (LocalBusiness, TouristAttraction, Airport) inherit all of these.

The type hierarchy is Thing → Place. Use the generic Place type only for locations that are not businesses, attractions, or civic structures: a neighborhood, a geographic landmark, a generic venue, a region. If the place is a business, use LocalBusiness or its subtypes. If it is a tourist destination, use TouristAttraction.

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

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

Highlight legend:Required by GoogleRecommendedOptional
schema.org/Place
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@id": "https://dunmore.gov/main-street#place",
  "@type": "Place",
  "name": "Dunmore Main Street",
  "description": "The commercial heart of Dunmore, Pennsylvania. A half-mile stretch of independent shops, restaurants, and the Thunderdome conference center.",
  "url": "https://dunmore.gov/main-street",
  "image": [
    "https://dunmore.gov/images/main-street-1x1.jpg",
    "https://dunmore.gov/images/main-street-4x3.jpg",
    "https://dunmore.gov/images/main-street-16x9.jpg"
  ],
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "Main Street",
    "addressLocality": "Dunmore",
    "addressRegion": "PA",
    "postalCode": "18512",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 41.4192,
    "longitude": -75.6345
  },
  "containedInPlace": {
    "@type": "City",
    "name": "Dunmore",
    "containedInPlace": {
      "@type": "AdministrativeArea",
      "name": "Pennsylvania"
    }
  },
  "containsPlace": [
    { "@id": "https://xoocode.com/shop/dunmore-1290", "@type": "LocalBusiness", "name": "Xoo Code Shop Dunmore" },
    { "@id": "https://thunderdomedunmore.com#attraction", "@type": "TouristAttraction", "name": "The Thunderdome" },
    { "@type": "Restaurant", "name": "The Dunmore Grill" },
    { "@type": "CafeOrCoffeeShop", "name": "Main Street Brew" }
  ],
  "publicAccess": true,
  "isAccessibleForFree": true,
  "hasMap": "https://dunmore.gov/main-street/map"
}
</script>

address and geo

address takes a PostalAddress with streetAddress, addressLocality, addressRegion, postalCode, addressCountry. geo takes GeoCoordinates with latitude and longitude. Google uses both for Maps integration: the address for search and directions, the coordinates for map pin placement.

containedInPlace and containsPlace

containedInPlace links this place to a larger place it is inside: a building inside a city, a room inside a building. containsPlace is the inverse: a city contains neighborhoods, a mall contains stores. These build the geographic hierarchy that Google uses for nested place queries ("restaurants in Dunmore").

openingHoursSpecification

openingHoursSpecification takes an array of OpeningHoursSpecification objects for regular hours. specialOpeningHoursSpecification handles holidays and exceptions. Google displays both in the knowledge panel and Maps listing.

Place vs LocalBusiness

Place is a location. LocalBusiness is a business at a location. A park is a Place. A restaurant is a LocalBusiness. A conference center could be either, depending on whether you are describing the building (Place) or the business that operates it (LocalBusiness). For businesses, always prefer LocalBusiness or its subtypes since they add business-specific properties (priceRange, paymentAccepted, openingHours).

Minimal valid version

The smallest markup that still produces a valid Place 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/Place (minimal)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Place",
  "name": "Dunmore Main Street",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "Main Street",
    "addressLocality": "Dunmore",
    "addressRegion": "PA",
    "addressCountry": "US"
  },
  "geo": { "@type": "GeoCoordinates", "latitude": 41.4192, "longitude": -75.6345 },
  "description": "Commercial district in downtown Dunmore, Pennsylvania."
}
</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 Place 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 Place for a business

    Wrong
    "@type": "Place" for a restaurant or store
    Right
    "@type": "Restaurant" or "LocalBusiness" for businesses

    Place describes a location. LocalBusiness and its subtypes describe businesses at locations. A restaurant has hours, prices, a menu. These are business properties that Place does not have. Always use the business type for businesses.

  2. 02

    Missing geo coordinates

    Wrong
    Place with address but no geo
    Right
    "geo": { "@type": "GeoCoordinates", "latitude": 41.4192, "longitude": -75.6345 }

    Google uses geo for map pin placement. An address gets you a text location; geo gets you a precise pin on the map. Include both for the best Maps integration.

  3. 03

    containedInPlace as a string

    Wrong
    "containedInPlace": "Dunmore, PA"
    Right
    "containedInPlace": { "@type": "City", "name": "Dunmore" }

    containedInPlace expects a Place object. A structured object lets Google build the geographic hierarchy (place inside city inside state). A plain string has no hierarchy.

About the example data

Dunmore Main Street, the commercial district where the Xoo universe businesses are located. The containsPlace array references Xoo Code Shop, The Dunmore Grill, and The Thunderdome.

Comments

Loading comments...

Leave a comment