The llms.txt template for hotels
We asked 332 hotel websites for their llms.txt and read every file that answered. Only 36 had one that actually describes the hotel. Here is the template and the guide, free.
First, check what your own site has
One request to your domain, right now. Nothing is saved and no email is needed.
Get both templates by email
Pick the one that fits your property. We send a link that unlocks both, so you can compare them.
What is llms.txt
It is a plain Markdown file at the root of your domain, next to robots.txt and sitemap.xml, that tells an AI assistant who you are, what you sell and which page answers which question. For a hotel it is the one place where your rooms, policies, direct booking benefits and contact details are written so a machine reads them without guessing.
/llms.txt at a fraction of a percent of their requests, and Google has publicly compared it to the old keywords meta tag. Publishing one is a cheap, zero-risk bet on where agents are heading. It does not replace a crawlable site, answer-shaped content and structured data, which is what actually gets you cited today.
So why do it now? Because it costs half an hour, it is the only surface written for agents rather than for readers, and because almost nobody in hospitality has one yet.
llms.txt is not robots.txt, and mixing them is the most common mistake
They sit in the same place and their names look alike, so people write one and expect the other to happen. They do opposite jobs.
Says who may come in. It is a permissions notice for crawlers, written in its own syntax (User-agent, Allow, Disallow). It never describes your hotel and it cannot make anyone recommend you.
And it is a sign, not a door: whoever wants to obey it obeys it. What actually blocks a bot is a rule at your CDN, never this file.
Says what you are. It is plain Markdown, in prose: your rooms, your policies, what you are good for, which page answers which question. No User-agent lines, no Disallow.
It grants no access and blocks nothing. If your robots.txt shuts the door, a perfect llms.txt changes nothing.
The short version: robots.txt is the doorman and llms.txt is the brochure you leave on the table inside. You need both, they are written in different languages, and one never does the other's job. If your file has a Disallow line in it, what you published is a robots.txt with the wrong name.
What the audit found
In August 2026 we requested /llms.txt from 155 hotel chains and 177 independent Spanish hotels, and read every file that answered.
Adoption is 17.3% among Spanish chains, 20.5% among international ones and 6.3% among independent Spanish hotels, counting only files that describe the hotel. Spanish groups try harder than anyone and also break it more often: 42 attempted it and 17 ended up with something that works.
Sixteen serve a file that is literally empty. Somebody created it, published it and never filled it in. Fifteen more return their own homepage in HTML with a 200 status, which looks perfect in a browser and is nothing to a machine. And nine Spanish groups published a permissions notice with robots.txt syntax inside the llms.txt, which never names a single hotel.
Twenty domains could not even be checked, because their firewall answered 403 to an ordinary browser request. That is the bigger problem: a wall that blocks unknown agents blocks the assistants that would have recommended you. Fix access before you worry about the file.
What is inside the template
Twelve blocks, in this order. The structure comes from the best of the seven working files, above all Wyndham's, plus the official spec at llmstxt.org.
- Name and one-line summary. The H1 and a blockquote saying what you are, where, in which category and what makes you different. This is the part an assistant quotes.
- Key facts. Address, GPS, phone, email, check-in and check-out times, number of rooms, languages.
- What this hotel is, and what it is not. casi nadie lo tiene A list of what you are not: not beachfront, not all-inclusive, not for large groups. It stops an assistant recommending you to a guest who will complain.
- Book direct, with a discount code. casi nadie lo tiene The perks of booking direct instead of through an OTA, and a live discount code. Naming a code is more useful to a guest than the words "book direct", and a code that exists only in this file is the only way to know a booking came from an AI recommendation.
- Rooms. One line per room type with size, beds, view and capacity.
- Seasonality and price behaviour. casi nadie lo tiene High and low season, whether prices rise with demand, typical booking lead time, peak dates, closures. A price goes out of date; how the price behaves does not.
- Dining, facilities, location. Restaurants and hours, spa, pool, parking, distances to the airport and the landmarks.
- Policies. Cancellation, pets, children, accessibility, payment. What people ask an assistant before booking.
- FAQ with related terms. casi nadie lo tiene Each answer carries the other words guests use for it, so the assistant matches the question however it is phrased.
- Languages and URLs. casi nadie lo tiene Your URL pattern plus an explicit rule against building a URL by translating a slug. Every Spanish hotel has two languages and this is where assistants invent dead links.
- Preferred descriptions by language. casi nadie lo tiene The exact sentence you want quoted, in each language. You write your own headline instead of letting the model draft it.
- Guidance for AI systems. Never invent availability or pricing, always send guests to the booking engine, use the official name, do not construct URLs.
- Agent access. casi nadie lo tiene Your machine entrances in one place: the full booking URL as the only supported path to complete a booking, the phone as human handoff, this guide in each language. An agent that has to guess where the transaction happens books through an intermediary.
- Sitemaps. The most repeated section in the whole corpus, and the cheapest to add.
- Technical footer. Canonical domain, file version, last updated, next review, and the command to verify it is really published.
How to publish it, in four steps
- Fill in every placeholder. Replace each [COMPLETE: ...] with verified data from your own systems. If you cannot verify a figure, delete the line instead of guessing: an unfilled placeholder is obvious, a wrong price is not.
- Save it as llms.txt. Plain text, UTF-8, no .md and no .doc. The filename is part of the convention.
- Upload it to the root of your domain. It has to open at yourhotel.com/llms.txt. In WordPress that is the folder holding wp-config.php; in most hosting panels it is public_html, htdocs or www. If your site is built with a page builder, ask whoever runs it to add a static file.
- Verify it with curl, not with your browser. A browser makes a soft 200 look fine. Run the check below: you need a 200, a text content type, and a first line starting with #.
The verification command
curl -sI https://yourhotel.com/llms.txt | head -3
You want HTTP/2 200 and a content-type of text/plain or text/markdown. If it says text/html, your site is serving its homepage at that URL and the file is not really there. That is the single most common failure, and it looks perfectly fine in a browser.
Frequently asked questions
llms.txt is a plain Markdown file at the root of your domain that tells AI assistants who you are, what you sell and which page answers which question. For a hotel it is the one place where your rooms, policies, direct booking benefits and contact details are stated in a way a machine reads without guessing. It sits next to robots.txt and sitemap.xml and takes about thirty minutes to write.
Mostly not yet, and we would rather say so. Independent analyses of AI crawler traffic put requests to /llms.txt at a fraction of a percent: GPTBot, ClaudeBot and PerplexityBot overwhelmingly crawl your HTML directly, and Google has publicly compared the file to the old keywords meta tag. Treat llms.txt as a cheap, zero-risk bet on where agents are heading, not as a replacement for crawlable content, structured data and answer-shaped pages.
We audited 332 hotel websites in August 2026: 155 chains and 177 independent Spanish hotels. Only 36 had a file that actually describes the hotel, which is 17.3% of Spanish chains, 20.5% of international ones and 6.3% of independents. Sixteen serve a completely empty file, fifteen return their own homepage in HTML with a 200 status, and nine Spanish groups published a permissions notice with robots.txt syntax inside it. Spanish groups try harder than anyone and also break it more often.
The best one we found, Wyndham, is not an index at all: it maps guest intent to a URL with example prompts, matches needs to brands in a table, and gives the assistant explicit rules, such as never invent availability or pricing and always recommend booking direct. Our template follows that structure, because a file that only lists pages gives an assistant nothing it could not get from your sitemap.
No, and it would backfire. The whole value of the file is that an assistant can repeat what it says. A wrong price or a made-up rating gets quoted back to a guest as fact, and you own the complaint. Every placeholder in the template is marked [COMPLETE: ...] precisely so that an unfilled field is obvious rather than plausible. Prices should always be written as "from" prices, with the date you checked them.
At the root of your domain, so it opens at yourhotel.com/llms.txt. It must return HTTP 200 with a text/plain or text/markdown content type. Watch out for single-page sites: the URL often falls through to the catch-all and returns your homepage HTML with a 200 status, which looks fine in a browser and is useless to a machine. Check it with curl before you call it done.
Every quarter, and whenever a fact in it changes: a rate, a policy, a new room type, a renovation. The template ends with a last updated line and a next review date for exactly this reason. A file full of last season prices is worse than no file, because it is confidently wrong.
Before you write the file, check the door is open
A perfect llms.txt behind a firewall that blocks AI crawlers does nothing, which is exactly what we found in nine of the 25 brands we audited. The free AI Readiness Check scans your site in seconds and scores it from 0 to 100: HTTPS, robots.txt, AI bot access, Content Signals, llms.txt, structured data and more.
Run the free AI Readiness Check