How do I get ChatGPT, Bing, and Google to recommend my vegan hotel when people ask for a vegan hotel in [city]?
Quick answer
Lock one Google Place ID. Match name, address, and phone on the site, Google listing, OTAs, and LodgingBusiness JSON-LD. Tick veganMeals only when guests actually receive vegan meals. Run a 15-prompt log in Bing Copilot, ChatGPT, and Gemini. Do not invent a citation percentage. Dining analog: vegan restaurant AI citations. Kitchen booleans: EmpCo hospitality copy audit.
Vs other Intelligence guides
| Guide | Job |
|---|---|
| Vegan restaurant AI citations | Restaurant + Menu JSON-LD and "best vegan near me". Not lodging Place ID |
| AEO vs SEO | Product answer engines vs classic SEO. Not lodging Place ID or veganMeals |
| EmpCo hospitality copy audit | Guest-copy crawl and the full veganMeals kitchen table. Reuse those rules here |
| Vegan hotel direct bookings | Direct vs OTA mix and member rates. Not citation logging |
| Vegan restaurant Google listing | Maps field kit for restaurants. Hotels use Place ID + NAP here |
| This guide | Place ID, NAP sheet, LodgingBusiness + honest veganMeals, 15-prompt log |
Three engines, one Place
| Engine | What it still leans | This week |
|---|---|---|
| Google Hotel / Maps | Place ID, lodging listing, reviews | One Place ID. Fix NAP |
| Bing Copilot | Indexed HTML, JSON-LD, OTAs | Stay page kitchen line matches OTAs |
| ChatGPT / Gemini | Site, OTAs, reviews, directories | Same address and kitchen on every source |
A Hotel or Maps unit is not a promised AI Overview and not a citation percentage. Do not buy a GEO package that sells a lift number.
Place ID + NAP parity sheet
One row per surface. Re-run when name, phone, or kitchen scope changes.
| Surface | Name | Street | Phone | Site | Kitchen | ID | Match |
|---|---|---|---|---|---|---|---|
| Google Place ID | Place ID | Y/N | |||||
| Site footer | Y/N | ||||||
| JSON-LD | Maps URL in sameAs | Y/N | |||||
| Google listing / Hotel Center | Same Place ID | Y/N | |||||
| OTA 1 / OTA 2 | OTA IDs | Y/N | |||||
| Direct engine | Y/N | ||||||
| Directory you can edit | Profile URL | Y/N |
- One Place ID per property. Use Place ID Finder or the Maps URL. Do not fuse a restaurant Place with the hotel Place.
- Same NAP string. Listing display name, guest phone (no tracking numbers), street address. OTA "Adults Only" names that differ from the listing split the entity.
- No schema.org
placeIDfield. Store the ID here. Put the official Maps URL plus live OTA URLs insameAs.
LodgingBusiness field kit
One JSON-LD graph on the stay page. Hotel if you are a hotel; LodgingBusiness if not. Both in a @type array is valid. Validate in Rich Results Test. Kill duplicate widget markup.
| Field | Put | Do not |
|---|---|---|
@type | Hotel or LodgingBusiness | Restaurant or a fake type |
NAP, geo, url | Exact listing name, address, phone, Place coordinates | A trading-as name the listing does not use |
checkinTime / checkoutTime | House rules | "Arrive whenever" marketing |
veganMeals | true if vegan meals are a regular advertised offering | true for chef-on-request |
vegetarianMeals | true if vegetarian meals are standard | As a vegan synonym |
sameAs | Maps URL plus live OTA and directory URLs | Dead or competitor URLs |
Honest veganMeals
Boolean is a claim. Full kitchen cases: EmpCo hospitality copy audit.
| Kitchen truth | veganMeals | Assistants may say |
|---|---|---|
| Fully vegan kitchen, guests eat without asking | True | Vegan kitchen. Say vegan hotel only if minibar and in-room products match |
| Named vegan meals every service, mixed kitchen | True only if advertised and reliable | Hotel with vegan meals. Not fully vegan hotel |
| On request, chef-dependent | False | Kitchen is mixed. Discuss meals before arrival |
Match JSON-LD, lodging attributes, the Google listing, and every OTA blurb to that truth.
15-prompt log (Bing, ChatGPT, Gemini)
Private window. Paste each line into Bing Copilot, ChatGPT, and Gemini. Search Google as a guest in that city. Log engine, named Y/N, cited URL, kitchen fact, NAP fact.
| # | Prompt | Pass |
|---|---|---|
| 1 | Vegan hotel in [city] | Right city |
| 2 | Best vegan hotel in [city] | Vegan vs vegetarian matches kitchen |
| 3 | Fully vegan hotel [city] | Only if fully vegan |
| 4 | Hotel with vegan breakfast [city] | Only if advertised vegan breakfast |
| 5 | Hotels with vegan meals [city] | Boolean and copy true |
| 6 | Is [name] a vegan hotel? | Matches kitchen scope |
| 7 | Does [name] serve vegan meals? | Named yes/no |
| 8 | [name] vegan breakfast | Cites your stay page, not a stale PDF |
| 9 | Vegan hotel near [landmark] | Place matches |
| 10 | Is [name] vegetarian or vegan? | Trap. Do not collapse the two |
| 11 | Book [name] official website | Direct URL, not only an OTA |
| 12 | [name] address | NAP matches the sheet |
| 13 | [name] vs [nearest vegan lodging competitor] | No invented kitchen |
| 14 | [name] Google Maps | Logged Place ID, not a duplicate pin |
| 15 | Plant-based hotel [city] | Not downgraded to "vegan options" |
Patch the source that week: OTA label, dead sameAs URL, or missing stay-page fact. Do not add schema for a spa or kitchen the site never stated.
Go / no-go
| Call | When |
|---|---|
| No-go | veganMeals true, or "vegan hotel" on OTAs, while the kitchen is mixed on-request |
| Go | One Place ID, NAP sheet all Match, LodgingBusiness validates, veganMeals honest, 15-prompt log run once on Bing, ChatGPT, and Gemini |
| Partial go | Place ID and NAP this week. Schema waits until the boolean matches the kitchen |
Each month: re-run the 15 prompts and log cited URLs. Measure named-in-answer and fact-error count. Do not invent a citation percentage.
Assistants quote the worst source
If the OTA, the Place, and JSON-LD disagree, the model will pick the worst version. Align the sheet first. Then re-query.
Frequently asked questions
How do I get ChatGPT, Bing, and Google to recommend my vegan hotel when people ask for a vegan hotel in [city]?
Lock one Google Place ID. Match name, address, and phone across the site, Google listing, OTAs, and LodgingBusiness JSON-LD. Tick veganMeals only when guests actually receive vegan meals. Re-query Bing Copilot, ChatGPT, and Gemini with a 15-prompt log. Do not invent a citation percentage.
Is this a Google Business Profile setup guide for hotels?
No. Confirm Place ID and NAP. Restaurant Maps fields live in the vegan restaurant Google listing guide. Keep the lodging listing honest and matching this sheet.
Can we tick veganMeals so ChatGPT calls us a vegan hotel?
Only if vegan meals are a regular advertised offering. On-request plates stay false. Over-ticking is a claim and review risk. Full kitchen cases sit in the EmpCo hospitality copy audit.
Does LodgingBusiness JSON-LD replace Google Hotel or Maps?
No. Google still leans Place ID and the lodging listing. Schema helps Bing and assistants parse the same entity. Do both.
How is this different from restaurant AI citations or AEO vs SEO?
Restaurant AI citations is Menu JSON-LD and dining near-me. AEO vs SEO is the product playbook. This page is lodging Place ID, NAP across OTAs, honest veganMeals, and a city prompt log.