In October 2026 we tried to book a two-night stay at 12 independent hotels in Bali (Indonesia), Chiang Mai (Thailand) and Hoi An (Vietnam), on a mobile device, from each hotel's own website. Only 2 of them were cheapest on their own website. Half of them lost our dates on the way to the booking engine. None of the eight checkouts we reached took Apple Pay or Google Pay.
We build hotel websites and connect them to booking engines for a living, so we tend to notice where that connection breaks. This time we measured it.

How we tested
We picked the hotels the way a traveler would find them. For each area (Ubud, Canggu, Seminyak, Chiang Mai and Hoi An) we searched Google Hotels and took the first independent hotels in the top half of that area's prices, in the order Google showed them. Chains and our own clients were left out. That gave us Visesa, Alaya and The Lokha in Ubud; Sammy's in Canggu; The Seminyak Beach Resort and The Legian in Seminyak; Chala Number 6, The Chiang Mai Old Town and Na Nirand in Chiang Mai; RiverTown, La Siesta and Little Riverside in Hoi An.
Every hotel got the same test: an iPhone-sized browser, 2 adults, 12 to 14 November 2026 (or the nearest two free nights), from the homepage to the screen where you type a card number. We stopped there. No bookings were made and no personal details were entered. Then we checked each hotel's price for the same stay on Google Hotels, next to Agoda and the other online travel agencies (OTAs). Twelve hotels is a small sample, and the full method and data sit at the end of this article.
The booking is often lost on Google, before the guest reaches you
Most guests who search for a hotel by name on Google see a box of prices: the hotel's own rate (marked "Official site") next to Agoda, Booking.com, Trip.com and others. That box is the first booking decision, and our sample lost a lot of it there.

Two hotels, Sammy's Canggu and The Legian, do not appear on Google Hotels as a seller at all, so a guest comparing prices there can only book them through an agency. For the other ten, an OTA was cheaper than the hotel's own site in eight cases, and five hotels were more than 5% more expensive than Agoda on their own website. Google lists some sellers before tax, and we searched while signed in to a Google account, so differences under about 5% are within the noise. A 58% gap is outside it. At The Seminyak Beach Resort, Trip.com was a third cheaper than the hotel's own site.
A note on why this happens, from 15 years on the hotel side: the OTA price on Google is rarely a rate the hotel chose. Agoda and others fund discounts out of their own commission, member programs show lower prices to signed-in users, and a hotel's own engine often shows a rate before tax while the agency shows one after. Many OTA contracts outside Europe also include a rate parity clause, which bars the hotel from publishing a lower public price on its own website than on the agency. So hotels hide their direct discounts behind a member login or a promo code, and Google's price box never sees them. The guest sees one number per line and picks the lowest. If your official price is not on Google Hotels, or sits visibly above Agoda, fix that before you spend anything on your website. Listing your official site on Google Hotels has been free since 2021, through the booking engine's connection.
The jump to the booking engine drops the guest's choices
Say the guest does come to your website. Eight of our twelve hotels had a booking button on the first screen of the phone. On two more, a cookie banner covered it until the guest accepted: The Legian's sticky "Reserve Now" bar and The Chiang Mai Old Town's booking form both sat under the consent box. At Chala Number 6 and Na Nirand the button only appears inside the menu.
The bigger leak is what happens on the tap. Only six of the twelve hotels carried the guest's dates into the booking engine. The other six open the engine on tonight's date, often for one adult, and leave the guest to start again. At Visesa and The Lokha it took 10 taps from the homepage to see prices for our stay, including closing a promotion pop-up inside the engine. At The Legian it took 9, partly because the website's own date form defaults to one guest. Ten of the twelve open the engine in a new browser tab, which on a phone looks like leaving the hotel.
Some sites are simply heavy. La Siesta's homepage transferred about 20 MB and Chala Number 6's about 16 MB, on a phone, before the guest had done anything. The lightest, The Chiang Mai Old Town, was about 2 MB.
And some details have been left behind. RiverTown's "Best Price Guarantee" pop-up, which covers half of the first screen, links to an arrival date of 27 September 2024 (two years before our test). The Legian's booking engine still shows a promotion that ended in March 2026, and the hotel's own domain, thelegianbali.com, loads a blank page: the working site lives on the owner group's domain.
Checkout asks for too much and shows the real price too late
We reached the payment step at eight hotels. The forms asked for between 7 fields (La Siesta) and 20 (Sammy's Canggu). The Chiang Mai Old Town asks for a second guest's name and email, a flight number and an arrival time. Na Nirand asks the guest to confirm their email and say how they heard about the hotel. Most ask for a full postal address, for a hotel room.
Three hotels showed one price on the room list and a higher one at checkout. The Legian lists rates before tax and adds 21% at the end. La Siesta's basket came to about 16% more than the rate shown on the list. Sammy's added 3% between list and cart, with no line explaining it. Three checkouts (La Siesta, Na Nirand and Sammy's) put a CAPTCHA in front of the final button, the "I'm not a robot" check.
None of the eight checkouts showed Apple Pay or Google Pay. On a phone, that is the difference between paying with a thumb and typing a 16-digit card number standing in a hotel lobby on the other side of the world. Booking.com's app has a stored card and a saved profile, and that is the checkout your guest compares you with.
Some of the best results came from the smallest hotels. Sammy's Canggu, a 15-room hotel run by its owner, had the shortest route from homepage to booking engine of the twelve (one tap). Visesa and The Lokha kept the price identical from room list to summary and asked for only four required fields.
What an AI agent would hit
AI assistants are starting to book on a guest's behalf: ChatGPT's agent mode and Google's AI Mode can already walk through a hotel's booking flow, and Google began taking hotel bookings inside AI Mode in the United States in August, with ten big brands and agencies as partners. We covered the discovery side of this in our test of how AI engines describe hotels.
On the booking side, our audit found walls an agent would struggle with. All four hotels on the D-EDGE booking engine (Alaya, The Seminyak Beach Resort, RiverTown and Little Riverside) sit behind DataDome, a bot-protection service. It blocked our automated test before any rates appeared. A real guest on a phone network saw the prices without any check, so guests can still book. An automated agent booking for a guest would meet the same wall our test did. Add the three checkout CAPTCHAs and seven of the twelve hotels would likely stop an agent before payment.
Tim Peter, who advises hotels on digital strategy, wrote after Google's launch that "connectivity gives you a chance to be seen. Brand gets you business" (Tim Peter, September 2026). Our data adds a step in between: once you are seen, the path has to work.
What to fix first
In order, cheapest first:
- Get your official price onto Google Hotels, and check it against Agoda for a few dates every month. Ask your booking engine provider to switch on the free listing if it is not there.
- Make every Book button carry the guest's dates and number of guests into the engine. Most engines accept dates in the link; the website just has to send them.
- Show the price with tax on the room list, the same number the guest will pay.
- Cut checkout to what you need to hold the room: name, email, phone, card. Ask for arrival times and preferences after the booking.
- Turn on Apple Pay and Google Pay if your engine supports them, and ask when it will if it does not.
- Replace the lone Book button with a booking bar, the way the big chain websites do. The dates and number of guests (and the property, if you have more than one) sit as visible fields on every page, even on a phone, and Book now sends all of it to the engine in one tap. Keep the bar above the cookie banner.
- Ask your booking engine provider what its bot protection does to an AI assistant booking on a guest's behalf, and whether your checkout needs a CAPTCHA at all.
- Test the whole path on your own phone every quarter, from Google to the card screen.
Most of these cost nothing but an afternoon with your booking engine's settings and whoever built your website. That is the work we do when we build a hotel website: the website, the handoff and the booking engine set up as one path.
The question the data leaves us with is who on property owns that path. Marketing owns the website, reservations owns the OTAs, revenue owns the rate, and the booking engine belongs to whoever signed the contract. In most of the hotels we tested, nobody had walked through it on a phone recently.
If you would like us to run the same check on your hotel, send us its name and we will send back what we find.
Method and data
Sample: Google Hotels default order for "hotels in [area]" on 9 October 2026 (Chrome, signed in, Singapore), first independent hotels priced above the median of each area's first page, chains and Artehos clients excluded. Booking test: Playwright with iPhone 14 emulation, 12 to 14 November 2026 for 2 adults (or the nearest available two nights), stopping at the payment form. Page weights are browser transfer sizes. Price check: Google Hotels nightly prices for the same stay, 9 October 2026. Limits: one test per hotel on one day; prices change daily; automated load times were measured with tests running in parallel and are not reported.




