GEO for Travel: Eight Booking Sites, Three llms.txt Files
Eight travel giants, three llms.txt files, two hard bot walls
Every site below got the same three questions on the same day. The table shows what a text-only crawler actually receives:
| Site | llms.txt | AI crawlers in robots.txt | Homepage structured data |
| Booking.com | 404 — 442 KB HTML error page | none named | none (HTTP 202, 3.9 KB shell) |
| Airbnb | 404 | 7 named, Googlebot's 248-line Disallow list each | none (HTTP 403) |
| TripAdvisor | 403 — block page | Google-Extended and meta-externalagent banned | none (HTTP 403) |
| Expedia | published — 7 KB brand brief | 4 named (OAI-SearchBot, ChatGPT-User, PerplexityBot, Perplexity-User) | none (HTTP 429 on our fetch) |
| Kayak | published — 7.5 KB resource index | none | FAQPage (5 Q&A), Organization, WebSite |
| Marriott | 403 — "Access Denied" | robots.txt itself returns 403 | none (HTTP 403) |
| Skyscanner | soft-404 — HTTP 200, "Sorry, we have a problem" shell | none | none (JS shell) |
| Hostelworld | published — 23.9 KB usage manual | none | Organization, WebSite, SearchAction, AggregateRating |
The biggest booking brands answer AI with error pages and bot walls
Booking.com's /llms.txt 404 page weighs 442 KB. The other three published files total about 38 KB. An AI crawler that asks the largest travel site in the world what it should know gets back a wall of marketing HTML — roughly eleven times the size of the answer its three competitors actually wrote. We fetched the homepage with a Googlebot user agent and got a 202 with 3.9 KB of HTML and zero JSON-LD blocks. As far as a language model's crawler is concerned, the Booking.com homepage is a mostly empty page.
Airbnb wrote the most elaborate policy of the eight, and it is pure copy-paste. Its robots.txt names seven AI crawlers — GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot, anthropic-ai, cohere-ai, meta-externalagent — and hands each one Googlebot's rulebook: the same long Disallow list, 248 lines for GPTBot alone, with /calendar/ical/ thrown in as the token allowance. Nobody asked what AI should know about Airbnb. Someone asked which search engine rules to duplicate, and the answer got filed as AI strategy. The llms.txt path still 404s.
TripAdvisor's policy is deliberate and then self-defeating. Google-Extended gets an outright Disallow: /, meta-externalagent gets the same, OAI-SearchBot is barred from destination pages carrying location IDs, PerplexityBot stays out of the forums, and Bytespider, CCBot, and ClaudeBot are named without restrictions. That is a real, thought-out position. It is also moot: our plain text request for /llms.txt and the homepage both came back 403 from the edge. TripAdvisor has decided what AI may read and then made sure nothing text-only gets in to read it.
Marriott does not bother with policy. The edge returns "Access Denied" for robots.txt itself, so a crawler cannot even load the file that tells it the rules. Skyscanner shows the other failure mode: an SPA catch-all page swallows /llms.txt with a 200, which means no alarm goes off anywhere. Neither of those sites ever said no to AI search. They just never said anything at all.
The three files that exist are three different ideas of the same file
Expedia's file is a brand brief. It opens with "# Expedia.com," asserts a canonical identity, states the United States scope, lists the official apps, and warns that prices and rewards differ by region — English travel content for an English-speaking model. It tours the catalog: stays, flights, cars, packages, cruises, AI-powered trip planning. A model that reads it can explain exactly who Expedia is and why prices vary. It cannot book anything from it, because no bookable page is listed in it.
Kayak took the opposite approach: index, not story. "# KAYAK," one definitional line, then Core Resources — About, Flights, Stays, Cars, Packages, Explore, Help center — each a plain markdown link. The homepage then backs the file up with FAQPage schema that carries the questions travelers actually type: "How do I find travel deals on KAYAK?", "What are KAYAK Price Alerts?", plus Organization and WebSite markup. Kayak is the only site of the eight where the file and the schema point the same direction, and its robots.txt names no AI crawlers at all. No block, no drama, just a file and an answer sheet.
Hostelworld wrote the most unusual file of the three — an instruction manual. Twenty-three kilobytes of it tells the model how URLs are constructed, how the multilingual structure works, how to distinguish hostel pages from hotel pages — and then it draws the line: for real-time data like availability and pricing, direct users to the website instead of inventing numbers. It even instructs the model to cite the file when answering questions about Hostelworld. That is not a brand brief or an index. That is a job description.
What to copy: pick one of the three jobs
Marketplaces: copy Kayak. Ship an llms.txt index of your searchable categories, then mark up the five questions customers ask every day with FAQPage. You do not need 248 Disallow lines. Kayak's robots.txt has none for AI.
Brands: copy Expedia's shape. Write the identity file — who you are, where you operate, what you sell, the regional rules. Your llms.txt then does for models what your About page does for people.
Platforms with real-time inventory: copy Hostelworld. Write the rules for how the site works, and be explicit about where live data stops so the model does not guess prices for you.
Here is the pattern nobody mentions: all three companies that shipped a file compete for the same traveler as the five that did not. The three smallest entries in this test are the three with llms.txt. The gap is not budget. A text file is free, and the biggest brands in travel have decided it is beneath them.
Five fixes for travel brands, in the order they matter
- Publish llms.txt this week. A text file, no build step. List your top 30 pages — destinations, inventory categories, help center, the pages your team already routes people to. Validate the format with the llms.txt checker and skim our llms.txt guide before you push it.
- Put FAQPage on the homepage. Take the questions your support team answers weekly — booking changes, price alerts, cancellation windows — and wrap them in schema so a model treats them as answers. Kayak's five-question block took one engineer an afternoon.
- Check your bot protection from a server, not a browser. If you run Akamai, Cloudflare, or Fastly challenges, the AI crawler check will show you the same 403s Marriott and TripAdvisor are serving right now. Verify GPTBot and friends can reach robots.txt, llms.txt, and your core pages.
- Write answer passages, not brochure copy. Open every destination and inventory page with a 134-167 word passage that says what it is, who it is for, and what it costs. Our how to get cited by ChatGPT walkthrough explains the length and shape models quote.
- Treat AI search as a booking channel, because you are already paying for it. Travelers ask models "where to stay in Lisbon" and "cheapest time to fly to Tokyo" tonight. Every brand that hands the model a clean, quotable answer wins a decision it never had to advertise for. The brands that keep their inventory in JavaScript tabs will keep their invisible readers too.