gaash.ai

Strategy & Planning · 9 min read · September 25, 2026 · , gaash.ai

One property, several businesses: GEO for a hotel restaurant, bar and spa

A hotel with a restaurant open to the public, a bar, event space or a spa is several businesses at one address, and different people ask about each: a local wants dinner, a planner wants a room for eighty, a traveler wants a bed. Give every outlet that faces the public its own page, its own name and hours and, where Google's guidelines allow, its own listing.

Different people ask about the same address

The traveler's questions about your property are about rooms, and the overview for hotels covers what your room and policy pages have to state for them. The other questions come from people who will never sleep there. A couple in the next neighborhood wants a table on Saturday. A company wants a dinner for eighty. Someone wants a massage on a Sunday afternoon and has no idea your spa takes people who are not staying.

Who asks about a hotel's outlets, how the question might be typed, and the page that has to answer it. Brackets stand for your own places.
Who asksThe question, as it might be typedThe page that answers itWhat that page states
A local, for dinner"restaurant near [neighborhood] open on sunday that takes reservations"The restaurant's own pageIts hours, the menu as text, how to reserve, and that non-guests are welcome
A local, for a drink"bar with a terrace near [neighborhood] open after 10"The bar's page, or its own section of the restaurant pageIts hours, whether it serves food and until when, whether the terrace is open in bad weather
A planner"private dining room for [n] in [city]" or "meeting room for eighty with a projector near [landmark]"The event space pageCapacity by layout, the rooms, catering, the equipment, and how to ask for a quote
A spa guest who is not staying"day spa near [neighborhood] open to non-guests on a sunday"The spa's pageWhether non-guests can book, the hours, the treatments with their prices
A traveler"hotel near [venue] in [city] with parking"The room and policy pagesWhat the hub lists; nothing on this page changes it

A restaurant that exists only as a line on the hotel's amenities page has nothing for the local's question to match: no hours of its own, no menu, perhaps no name beyond "our restaurant". We have not measured which of these questions are asked most in any town, so the table is a map of who asks, not a ranking.

Which outlets get a page, which get a listing, and which stay a line

Two questions decide it. Does the outlet face the public, so that someone who is not staying can walk in or book? And does it operate as a business of its own, with its own name and category? (The guidelines add that such a department typically has its own entrance.) The first decides whether it needs a page. The second, under Google's Business Profile guidelines, decides whether it gets a listing.

A hotel's outlets: whether each needs its own page, its own Business Profile, and hours on that profile, under Google's guidelines as read on September 25, 2026.
OutletIts own page on your siteIts own Business ProfileHours on that profile
The hotelIts room and policy pagesYes, in a lodging category; it adds no restaurant category for a restaurant inside itNone: the guidelines list indoor lodging such as hotels and motels among the businesses that should not provide hours
Restaurant, cafe or bar open to the publicYesYes: the guidelines give a restaurant, cafe or bar inside a hotel a profile of its own, under a name different from the hotel'sIts own; for a restaurant, the hours when diners can sit down and eat
Day spa that takes non-guestsYesIf it faces the public as a distinct entity, with its own name and categoryIts own, on its own profile
Event and meeting spaceYesOnly if it operates as a distinct entity; otherwise it stays on the hotel's profileNone: event venues are also on the list of businesses that should not provide hours
Guest-only facilities: pool, gym, breakfast roomA line on the hotel's pagesNoNot applicable; state their hours as text on the hotel's pages

The guidelines' own example of the hotel case is a restaurant operated inside a hotel: the restaurant takes the restaurant category, and the hotel keeps its hotel category without adding one for the restaurant. Separately, they list a restaurant, cafe or bar inside a hotel or motel among the co-located businesses that should each have their own profile, and ask for a different name for the second business. A department gets a profile of its own only when it faces the public as a distinct entity; a section of the main business, such as a counter inside a shop, does not.

The page comes first either way. A listing points somewhere, and for an outlet that faces the public it should point to a page that states that outlet's facts, not to the hotel's homepage.

Hours: none on the hotel's profile, each outlet's on its own

If your hotel's Business Profile carries hours, take them off. The guidelines put indoor lodging, such as hotels and motels, on their list of businesses that should not provide hours. The times a traveler needs (check-in from, check-out by, the desk's hours at night and what happens after it closes) belong on your own policies page as text, and in the hotel's markup as checkinTime and checkoutTime.

Each outlet with a profile of its own gives its own hours there. A department's hours go on the department's profile and the main business's on the main profile, as the guidelines ask. For the restaurant that means the hours diners can sit down and eat, which is the guidelines' rule for restaurants, with special hours for holidays and special events. Keeping those the same on the restaurant's page, its profile, its reservation platform and every delivery app is the subject of restaurant data across portals.

On your own site, put an hours block on each outlet's page, under the outlet's name, and never one "Hours" box on the homepage that mixes the desk, the kitchen, the bar and the spa. A template, with every bracket yours:

[Restaurant name]
Dinner: Tuesday to Saturday, [time] to [time]; last orders [time]
Open to hotel guests and to the public; reservations: [number or link]
Closed: Sunday and Monday; [dates of holiday closures]

[Bar name]
Daily, [time] to [time the next morning]; food until [time]

[Spa name]
Open to hotel guests and to non-guests: [days], [time] to [time]
Last treatment starts at [time]

[Hotel name]
Check-in from [time]; check-out by [time]; front desk: [hours, or around the clock]

One name per outlet, written the same way everywhere

Each outlet needs one name, and the same string on its page, its profile, its reservation platform, its menus and its markup. The guidelines ask for the real-world name, and they rule out containment information in it. Their examples of what not to do add the host business with a dash, or with "in", "at" or "inside". So the restaurant's profile carries the restaurant's name. That it is in your hotel is a fact for its description, its page and its markup, not for its name.

The same discipline runs the other way. On the hotel's own pages, name each outlet exactly as its page and profile do, and link the name to the outlet's page: "[Restaurant name], our restaurant, serves dinner to guests and non-guests Tuesday to Saturday." A traveler reading the hotel's page learns the restaurant exists, and the restaurant's page gets a link from the hotel's with its exact name as the anchor text.

Phone numbers need the same care. In our audit of 9,483 small business websites (40 trades, 90 metros, late August to early September 2026), 43.1% were inconsistent about who and where they are across their own homepage, contact page and about page, and 36.9% published more than one phone number across those pages. The audit's measure was blunt: any second number counted, so a clearly labeled restaurant line on a hotel homepage would have been counted too. Read the figure as a count of numbers, not of mistakes, and put each number beside the name of the outlet it reaches.

Markup that keeps the hotel and its restaurant apart

In the structured data, each business is its own node. Hotel is a lodging type under LocalBusiness on schema.org; Restaurant and BarOrPub sit under FoodEstablishment, and DaySpa under HealthAndBeautyBusiness, all of them LocalBusiness subtypes too. Give each node its own @id, its own name, its own page as url, its own telephone, and hours on the outlets that have them, so that each business stays a separate entity and no property of one is read as belonging to the other.

Two properties link them, and schema.org defines both. containedInPlace is the basic containment relation between a place and one that contains it: the restaurant sits in the hotel. department relates an organization to a department of that organization, described as an organization in its own right with its own URL, logo and opening hours; schema.org's own examples are a store with a pharmacy and a bakery with a cafe. Use department on the hotel's node when the hotel runs the restaurant. When another operator runs it, leave department out and keep containedInPlace, which says where the restaurant is without saying who runs it.

{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Hotel",
      "@id": "https://www.[your-domain]/#hotel",
      "name": "[Hotel name]",
      "url": "https://www.[your-domain]/",
      "telephone": "[front desk number]",
      "address": {
        "@type": "PostalAddress",
        "streetAddress": "[street]",
        "addressLocality": "[city]",
        "postalCode": "[postal code]",
        "addressCountry": "[country]"
      },
      "checkinTime": "[hh:mm:ss]",
      "checkoutTime": "[hh:mm:ss]",
      "department": { "@id": "https://www.[your-domain]/restaurant/#restaurant" }
    },
    {
      "@type": "Restaurant",
      "@id": "https://www.[your-domain]/restaurant/#restaurant",
      "name": "[Restaurant name]",
      "url": "https://www.[your-domain]/restaurant/",
      "telephone": "[reservations number]",
      "address": {
        "@type": "PostalAddress",
        "streetAddress": "[street]",
        "addressLocality": "[city]",
        "postalCode": "[postal code]",
        "addressCountry": "[country]"
      },
      "containedInPlace": { "@id": "https://www.[your-domain]/#hotel" },
      "servesCuisine": "[cuisine]",
      "acceptsReservations": "[the reservations page URL, or true]",
      "hasMenu": "https://www.[your-domain]/restaurant/menu/",
      "openingHoursSpecification": [
        {
          "@type": "OpeningHoursSpecification",
          "dayOfWeek": ["Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
          "opens": "[hh:mm:ss]",
          "closes": "[hh:mm:ss]"
        }
      ]
    }
  ]
}

The JSON-LD template shows both nodes in one graph so that the two links can be read side by side. On the site, put the hotel's node on the hotel's pages and the restaurant's node on the restaurant's page, where its facts are shown; Google's introduction to structured data says to mark up what a visitor can see. A bar that closes after midnight can state it as it is: schema.org's OpeningHoursSpecification reads a closing time earlier than the opening time as running into the next day. The event space is different in kind: schema.org's EventVenue is a place, not a business, so department, which expects an organization, does not fit it. Tie it to the hotel with containedInPlace.

How the @id references hold a graph together is set out in building an entity, and the hotel's own node, field by field, in making a hotel website machine-readable. The restaurant's menu, its dietary labels and its reservation facts are covered in the overview for restaurants, which applies to a hotel's restaurant as it does to any other.

Common questions

Our restaurant serves only hotel guests. Does it need its own page?

It needs a clear line on the hotel's pages, not a listing. If only guests can eat there, a local asking for dinner cannot use it, and an answer that named it for dinner would send them to a door they cannot open. State its hours and what it serves on the hotel's pages, and say plainly that it serves hotel guests only.

The restaurant has its own entrance and its own name. Is it a department or a separate business?

For Google's guidelines, what matters is that it faces the public as a business of its own: a restaurant, cafe or bar inside a hotel is on their list of co-located businesses that each get a profile, under a name different from the hotel's. For your markup, what matters is who runs it: the hotel's node lists it as a department if the hotel does, and containedInPlace alone says where it is if someone else does.

Should the hotel's profile list the restaurant and the spa as categories?

No. The guidelines ask for categories that complete "this business is a", and rule out categories for a business contained within yours; their hotel example keeps the hotel category and adds no restaurant category. Mention the outlets in the hotel's description and on its pages, and give each outlet that qualifies a profile of its own, with its own category.

Our event space is sold through the hotel's sales office. Does it need a listing?

Not if it is sold as part of the hotel rather than run as a business of its own. It needs a page, because planners ask for capacity by layout, the rooms, catering and equipment, and none of that fits on a room page. If it does qualify for a profile of its own, leave the hours off: the guidelines list event venues among the businesses that should not provide them.

Sources

The consistency figures are this site's own, from the audit named below, and cover all 40 trades; there is no hotel cut. The profile rules are Google's, from its Business Profile guidelines as read on September 25, 2026, and the types and properties are schema.org's, each opened on its own page the same day.

Sources: Google Business Profile guidelines · our audit of 9,483 small-business sites, with its method · schema.org, LocalBusiness and its subtypes · schema.org, OpeningHoursSpecification · Google, introduction to structured data

All articles