Websites

A hotel website: direct booking is the product

A hotel site is judged on direct bookings: a three-screen date-room-rate flow, all-in totals and rates synced with the property management system.

Key points

  • The booking flow matters more than the home page: three screens, an all-in total, no mandatory account.
  • On a room at €180 for three nights a 15% OTA commission is €81 per booking.
  • Without live availability the site sells rooms that are already taken, so it needs a channel manager linked to the PMS.

A hotel website is judged on one thing: how many bookings arrive direct, without the 15-18% an OTA keeps from the room rate. The home page, the photos and the story of the property exist to move the guest into a booking flow that works.

The EneUI catalogue indexes 1,556 blocks and 51 hero sections, but only one booking flow: Booking flow from 1st-pouf, counted on 1 November 2026. That says a lot about how rare the piece that decides revenue in this sector is.

The booking flow, not the home page

Three screens, not seven: dates and guests, room with rate, details and payment. Every extra step loses guests, and the steepest drop sits between choosing a room and entering a card.

    The page for each room

    One page per room type, not a single gallery. Floor area, bed type, view, street noise, breakfast included or not, pets allowed, step-free access. Six to ten photos per type, the first showing the whole room rather than a close-up of a cushion.

    Shadcn Space's gallery block ships in 2 files with the grid ready to use; uitripled's Gallery Grid with Lightbox adds full-screen zoom, which matters when the guest wants to count the beds.

    Groups, weddings and requests that skip the calendar

    Someone planning a wedding or a week for a group does not book from a calendar: they ask for a quote. That needs a separate form with dates, number of rooms, reason for the stay and budget, plus a stated reply within 24 hours. Shadcn UI Blocks' Contact 01 is a single block with fields and validation, ready to be cut down to those four questions.

    StepWhat the guest must seeWhere bookings leak
    Dates and guestsNightly price on the calendar, minimum stay flaggedA calendar that reloads the page on every click
    RoomPhotos, floor area, bed, breakfast, cancellationAmbiguous rates: «flexible» with no conditions
    RateTotal with city tax and extrasA price that grows at the last step
    PaymentCard, 30% deposit, immediate confirmationMandatory sign-up before paying
    # la pagina di prenotazione risponde e in quanto tempo
    curl -s -o /dev/null -w "%{http_code} %{time_total}s\n" https://www.esempio-hotel.it/it/prenota
    
    # quante pagine camera sono indicizzate
    curl -s https://www.esempio-hotel.it/sitemap.xml | grep -c "/camere/"
    
    # quali dati strutturati dichiara una pagina
    curl -s https://www.esempio-hotel.it/it/camere/suite | grep -o '"@type":"[A-Za-z]*"' | sort -u

    Rates, OTAs and parity

    The OTA brings demand, the site brings margin. On a room at €180 a night for three nights, a 15% commission is €81: ten direct bookings a month leave €810 in the hotel instead of walking out of the door. Rate parity clauses live in the contract with the OTA, not in the site's code, so read them before you set the published price.

    The free booking links in Google Hotel Search and an up-to-date Google Business Profile with photos, services and hours cost no commission. They are also where a guest compares your site price with what they see elsewhere.

    Languages, structured data and city tax

    For an Italian hotel the minimum is Italian, English and German: lakes and mountains sell to the German-speaking market in German. Hotel, HotelRoom and Offer structured data with price and validity, check-in and check-out times, and the city tax inside the total rather than added at reception. How to write the block is covered in adding schema markup.

    The limitation, stated plainly

    A site with a form is not a booking system: without live availability you sell a room that is already taken. You need a channel manager wired to the property management system, with rates kept in sync. EneUI blocks are React and Tailwind, the preview is free and the source sits behind Pro: none of them includes a PMS or OTA integration. A well-built static site remains a good catalogue and a poor booking engine.

    Platform and cost

    A site with a booking engine starts in the low thousands of euro for the site itself, plus the monthly channel manager fee. Choosing between WordPress, Wix and React components carries one extra constraint compared with a showcase site: the link to the property management system. The three routes are compared in WordPress, Wix or React components, typical costs in what a website costs.

    Frequently asked questions

    What does a hotel website with direct booking cost?

    The site costs a few thousand euro, but the booking engine is priced separately, usually as a monthly channel manager fee. Ask for the quote split into site, property management integration and payment provider fees, because those are three different lines.

    Is an enquiry form enough to sell rooms?

    No. A form collects enquiries, it does not sell rooms: taking money needs live availability connected to the property management system, otherwise you accept a booking for a room that is already taken. The form stays useful for groups, weddings and events only.

    The site or Booking.com?

    You need both. The OTA brings new demand the site cannot generate on its own, the site protects the margin on guests who already chose you. On a room at €180 for three nights a 15% commission is €81, so every extra direct booking shows up immediately.

    How many photos does a room need?

    Six to ten per room type. The first should show the whole room in real light, then the bed, the bathroom, the view and the details that help someone decide. Stock or heavily retouched photos produce bad reviews, and those cost more than a photo shoot.

    Which languages does an Italian hotel site need?

    Italian, English and German as a minimum, with separate URLs and hreflang. The German-speaking market searches for lakes and mountains in German and books in its own language, so an Italian-only site leaves those bookings to the OTAs.