Skip to content
Sigtrip.

Writing hotel website content AI assistants can use

A playbook for adding or rewriting a section of a hotel’s own website. Published by Sigtrip — AI distribution infrastructure for hotels — for the AI assistants and the people that hotels hand this work to. It is public, needs no login, and is complete on its own: everything you need is on this page.

What this change is

Part 1 of 8. In the hotelier's words, before anything technical.

Guests keep asking the front desk something the website never answers — whether the family rooms connect, whether there is parking for a van, what is actually within walking distance, whether the restaurant is open to non-guests. The hotel wants that answer written down on its own site, in its own words, so a guest reading the page finds it and an AI assistant answering the same question can repeat it.

So the job is small and specific: one honest section on one page, answering one real question, in the voice the rest of the site already uses. It is not a redesign, not a campaign, and not a new page unless the topic genuinely has no home. Done well, nobody can tell which part is new except that the question now has an answer.

The rules this follows

Seven, each with the reason it exists. They apply to every step below; there is nothing else to fetch.

  1. 01

    Read before you write.

    A section written without reading the page arrives in the wrong voice, at the wrong heading level, in class names the site does not use — and the next person to edit that page deletes it.

  2. 02

    Match what is there.

    A block that looks bolted on reads to a guest as an ad and to an assistant as promotional filler, instead of as the property describing itself.

  3. 03

    Facts only.

    A hotel is accountable at the front desk for every number on its site, so an invented rate, distance or capacity becomes a complaint at check-in — leave a marked placeholder instead of a guess.

  4. 04

    Extend, do not duplicate.

    Two descriptions of the same hotel force every reader, human or machine, to decide which one is true — and they may not pick yours.

  5. 05

    Plan first.

    The difference between a drafted section and a mangled homepage is a person saying yes before anything is saved.

  6. 06

    Validate.

    “It should work” is not a check: name the validator you used and what it returned.

  7. 07

    Report back.

    Whoever asked you has to finish the job, and they need the list of placeholders and blocked steps more than they need a confident summary.

Before you start

Part 2 of 8. Read the site first. This inventory is what makes the difference between a section that belongs and one that gets deleted.

Open the page you are about to change, plus two others, and write down:

  • Heading hierarchy. What level is the page title, what level are its sections, and does the page use headings where you were going to use bold text? Never skip a level, and never introduce a heading level the page does not already use.
  • Components and class patterns. View the source of the section closest to yours in purpose. Note its wrapper element, its class names, whether it is a grid or a stack, whether text comes before or after the image. This is the shape you are going to copy.
  • Existing structured data. Search the page source for application/ld+json. You are not adding a second block today, and if the copy you write contradicts what is already in there, the markup has to be updated in the same change.
  • Image treatment. Aspect ratio, whether figures carry captions, how alt text is phrased on this site, whether images are lazy-loaded, and whether width and height are set. If you have no image you are entitled to use, leave a note — never hotlink one, never generate one.
  • Link and URL conventions. Trailing slashes, hyphenation, relative or absolute, and how internal links are phrased. Note where the page sits in the navigation, in the footer, and in any sitemap.
  • Sentence length and voice. Read three existing sections aloud. First person plural (“we”) or third person (“the hotel”)? “Guests” or “you”? Long warm sentences or short factual ones? British or American spelling? Serial comma or not? Write down the answer — you are going to imitate it.
  • What the site runs on. A block editor, a page builder, a template, or hand-written HTML. Ask if you cannot tell. Markup nobody can paste anywhere is not a deliverable.
  • Whether this is the hotel’s page at all. A property on a brand or parent-company domain often cannot edit its own page. If the URL you were given is not editable, stop and say so before writing.

Then collect the facts, and where each one came from:

Read the hotel’s own pages — rooms, amenities, policies, directions, the FAQ, the restaurant page, anything it has published. Keep a list of fact and source as you go, because you will need it for the report. Anything you cannot find there is a [VERIFY: ...] placeholder, not a reasonable assumption. Reviews and third-party listings are useful for working out what guests actually ask about, but they are not a source for a fact you are about to publish on the hotel’s own site.

Match the site you are in

Part 3 of 8. The house-style rule, stated outright, because it is the one an assistant skips.

Your section must reuse the structure, components, markup conventions, formatting and tone that the site already uses, so that it incorporates smoothly instead of looking bolted on. Concretely, that means: copy the markup of the nearest existing section and change only the words. Same wrapper element, same class names, same heading level, same list style, same figure pattern, same link phrasing.

Do not add a stylesheet, a utility-class framework the site does not load, inline styles, an icon set, a web font, or a JavaScript widget. If the effect you want cannot be built from what the page already has, you have chosen the wrong effect. Where the site is inconsistent — older pages in one idiom, newer ones in another — follow the page you are editing, and say in your report that you noticed the split.

Tone is part of this. A hotel that writes plainly about its rooms should not suddenly acquire a paragraph about “creating unforgettable moments”. Match the register even when you believe yours is better; a consistent voice is worth more than a better paragraph.

The test: if your block were pasted into the middle of an existing page with no styling changes, could a reader tell which part is new? If yes, it does not match yet.

Steps

Part 4 of 8. In this order. Step 6 is a hard stop.

  1. 01

    Confirm you can edit the page.

    Check that the URL is on a domain the hotel controls and that whoever asked you can publish to it. If it is a brand, franchise or OTA page, stop here: the work becomes a draft for someone else to paste, and you say so up front.

  2. 02

    Name the guest question you are answering.

    Write it down as a guest would ask it — “can we get two rooms that connect?”, “is there parking for a tall vehicle?” One question per section. If you cannot state it in a sentence, the section has no subject yet.

  3. 03

    Inventory the page.

    Run the checklist above and keep the notes. You will paste the relevant parts of it into your plan, which is how the hotel knows you actually read their site.

  4. 04

    Collect the facts, with sources.

    Every number, distance, capacity, price, policy and opening time comes from the hotel’s own pages. Keep the fact-and-source list. Mark the gaps rather than filling them.

  5. 05

    Decide where it goes: extend, do not duplicate.

    Prefer adding a section to the page that already owns the topic. Create a new page only when the topic has no home at all, and then link it from the navigation and from the page it was split out of. Two pages competing to answer the same question is worse than one imperfect page — the reader, human or machine, has to pick, and may not pick yours.

  6. 06

    Write the plan, and stop.

    One message: the page, the insertion point, what you read, what you will write, the facts you verified, the placeholders you could not, and what you will not touch. Then wait for a person to say go. Do not edit anything before that, and do not treat silence as approval.

  7. 07

    Write the heading as the topic, not as a slogan.

    “Staying with children” or “Family rooms and cots”, not “Family moments await”. A heading that names the subject is what lets a reader — and an assistant scanning for the answer — find it.

  8. 08

    Answer in the first sentence.

    Lead with the fact, then add the detail. “Yes — six of the rooms connect in pairs” before any scene-setting. Never open with a sentence that could appear on any hotel’s website.

  9. 09

    Write the body in the site's register.

    Short, checkable statements a member of staff would stand behind at the front desk. Prefer numbers to adjectives: a nine-minute walk, not a short stroll; two cots per room, not family-friendly. Keep it to what the section promised — one question, answered.

    Do not write for a search engine. Repeating the city name, stacking keywords or padding to a word count makes the page worse to read and no more useful to an assistant, which is reading for facts, not for frequency.

  10. 10

    Put it in the site's own markup.

    Copy the nearest existing section’s markup, change the words, keep the classes. Match heading level, list style, figure pattern and link phrasing. Add no new CSS and no new dependencies.

  11. 11

    Handle images, links and navigation to the house convention.

    Alt text written the way this site writes alt text. Internal links in the site’s own URL form. If you added a page, say exactly where it should be linked from — a page nothing links to is a page nobody reads.

  12. 12

    Mark every gap.

    [VERIFY: what is missing — where it would come from], left visibly in the draft. Never substitute a plausible value, and never publish with a placeholder still in the text.

Worked example

Part 5 of 8. A fictional property — The Cedarline Hotel, cedarline.example — asked to answer 'can we stay here with kids?' on its rooms page.

What the inventory found:

Inventory notes. These go into the plan verbatim — they are the evidence that the site was read.
Page to change: /rooms/  (editable: yes, own domain)
Sections on it:  Overview (h1) > Rooms, Suites, Accessibility (h2)
Section markup:  <section class="content-block content-block--split" id="...">
                 text column first, then <figure class="content-block__media">
Lists:           <ul class="feature-list"> with plain <li>, no icons
Images:          16:9, width+height set, loading="lazy",
                 alt describes the room, never the hotel name
Links:           relative, trailing slash: /dining/, /contact/
Voice:           third person ("the hotel", "guests"), short sentences,
                 no exclamation marks, American spelling, serial comma
Structured data: one JSON-LD Hotel block in the site head
CMS:             WordPress, custom HTML block available
Facts verified on cedarline.example:
  - 6 rooms connect in pairs                     (/rooms/)
  - cots available on request, no charge          (/faq/)
  - kids eat free under 10 in the restaurant      (/dining/)
Facts NOT found anywhere on the site:
  - cot capacity per room
  - distance to the park

The existing section, copied as the shape to follow:

Existing markup on /rooms/ — this is the idiom the new section has to match.
<section class="content-block content-block--split" id="suites">
  <div class="content-block__text">
    <h2 class="section-title">Suites</h2>
    <p>The hotel has eight suites, each with a separate sitting room and
       a view over the courtyard. Two have a second bathroom.</p>
    <ul class="feature-list">
      <li>Separate sitting room</li>
      <li>Courtyard view</li>
      <li>Espresso machine</li>
    </ul>
    <p><a href="/contact/">Ask the front desk</a> about connecting a suite
       to an adjoining room.</p>
  </div>
  <figure class="content-block__media">
    <img src="/img/suite-courtyard.jpg"
         alt="A suite sitting room with two armchairs facing a courtyard window"
         width="960" height="540" loading="lazy">
  </figure>
</section>

The new section, in that same idiom:

Proposed addition to /rooms/, inserted after #suites. Same wrapper, same classes, same heading level, same figure pattern, same link phrasing — only the words are new. Every fact traces to a page on the hotel's own site; the two that did not are marked placeholders.
<section class="content-block content-block--split" id="families">
  <div class="content-block__text">
    <h2 class="section-title">Staying with children</h2>
    <p>Six of the hotel's rooms connect in pairs, so a family can take two
       rooms with a door between them. Cots are available at no charge and
       are requested at booking or at the front desk.</p>
    <ul class="feature-list">
      <li>Six connecting rooms, in three pairs</li>
      <li>Cots at no charge — [VERIFY: how many cots fit in one room —
          ask the front desk]</li>
      <li>Children under 10 eat free in the restaurant</li>
    </ul>
    <p>The nearest playground is [VERIFY: walking time to the park —
       measure from the main entrance] on foot.
       <a href="/dining/">Restaurant hours</a> are the same every day of
       the week.</p>
  </div>
  <figure class="content-block__media">
    <img src="/img/connecting-rooms.jpg"
         alt="Two rooms with the connecting door open between them"
         width="960" height="540" loading="lazy">
  </figure>
</section>

<!-- Image not supplied. Either point src at an existing photo of the
     connecting rooms, or drop the <figure> and keep the text column;
     do not source a photo from anywhere else. -->

And the same copy written badly, for contrast:

What a generic assistant produces if it skips the inventory. Every line of it is wrong in a way this playbook is designed to prevent.
<div style="padding:40px;background:#f7f7f7">
  <h3>Family Moments Await at The Cedarline! 👨‍👩‍👧</h3>
  <p>Nestled in the heart of the city, The Cedarline Hotel is the perfect
     home away from home for families. Our spacious connecting rooms,
     just 10 minutes from the park, make unforgettable memories easy.
     Kids stay free!</p>
</div>

  wrong markup   — a <div> with inline styles; the site uses
                   <section class="content-block">
  wrong level    — h3 under a page whose sections are h2
  wrong voice    — first person and exclamation marks; this site uses
                   neither
  invented facts — "10 minutes from the park" and "kids stay free" appear
                   nowhere on the site. Kids EAT free under 10; nobody
                   said anything about the room rate
  filler         — "nestled", "perfect home away from home", "spacious"
                   say nothing a guest can check

Validate

Part 6 of 8. Before it goes live, and before you report anything. Name the check and what it returned.

  • No placeholder survives. Search the draft for [VERIFY:. If one is still there, the section is not publishable — it is a draft with an open question, and your report has to say so.
  • Every fact traces to a source. Walk your fact-and-source list. Anything without a source on the hotel’s own pages comes out or becomes a placeholder.
  • The markup is valid and unchanged in shape. Run it through an HTML validator and say what it returned. Diff your classes against the section you copied — a class that appears nowhere else on the site is a mistake.
  • Heading order is intact. No skipped levels, no second h1, and the new heading is at the same level as its siblings.
  • Links and images resolve. Every href returns a page, every image has alt text written in the site’s style, and nothing points at a domain the hotel does not control.
  • The page still says one thing. Re-read the rest of the page, the FAQ and the policies. If your section contradicts any of them, one of the two is wrong — flag it, do not quietly pick a side.
  • It reads without JavaScript. The content is in the HTML, not injected by a script and not hidden behind a click. Anything an assistant cannot read in the source may as well not be on the page.
  • Read it aloud against a neighbouring section. Different rhythm, different register or a different word for the same thing means it does not match yet.

Report back

Part 7 of 8. The report is the deliverable — the person who asked you has to finish the job.

Four headings, in this order. Keep the placeholder list complete even when it is long — that list is the work you are handing back.
WHAT I CHANGED
  - /rooms/ — added one section, "Staying with children", after #suites
  - markup copied from the existing #suites block; no new CSS
  - no other pages touched

WHAT I LEFT AS A PLACEHOLDER
  - [VERIFY: cots available per room] — used in the feature list
  - [VERIFY: walking time to the park] — used in the closing sentence
  - image: no photo of the connecting rooms was available to me

WHAT I COULD NOT DO
  - nothing blocked; the page is on the hotel's own domain

WHAT I VALIDATED WITH
  - W3C HTML validator: 0 errors
  - classes diffed against #suites: identical
  - re-read against #rooms and #suites for tone and heading level
  - checked /faq/ and /dining/ for contradictions: none found

Common mistakes

Part 8 of 8. What this particular change goes wrong as.

  • A new page where a section would do. It splits the topic across two URLs that compete to answer the same question, and the new one usually has nothing linking to it.
  • Marketing register. “Nestled”, “unparalleled”, “a true home away from home”. It reads as an advertisement to a guest and as filler to an assistant, and it is the clearest signal that a section was written by someone who did not read the site.
  • Facts invented to complete a sentence. The rhythm wants a number, so a number appears. “Just ten minutes from” is the most common invented fact in hotel copy, and the front desk is the one that hears about it.
  • A slogan instead of a heading. A heading that does not name its subject cannot be found by a reader scanning the page or by an assistant looking for the answer.
  • New CSS, new classes, inline styles. A block styled by hand survives exactly until the site’s next template change, and looks foreign until then.
  • Text copied from another page. Repeating a paragraph that already exists elsewhere on the site leaves two versions to keep in sync, and they will diverge.
  • Writing for the engine. Keyword stuffing and city-name repetition make the page worse for guests without making it more useful to an assistant, which is reading for checkable facts.
  • Editing before approval. The plan gate is the only thing standing between a drafted section and a mangled live page. Silence is not approval.
  • Markup nobody can paste. Handing a page builder a block of raw HTML it cannot accept means the work never ships. Ask what the site runs on first.
  • Copy that contradicts the structured data. If the page says pets are welcome and the JSON-LD says otherwise, both become unreliable. Update them together or flag the conflict.