Butterfly Hill is a fully staffed five-bedroom luxury villa in Treasure Beach, Jamaica. I built its website and custom booking engine, then spent months making the site easier to find, easier for AI to quote, and easier to book from.
Search Console data for the 30 days to early October 2026.
The homepage as originally built.
The villa had strong guest reviews, 4.6 stars from 29 on Google, but the website was producing almost no direct enquiries. The Google Business Profile was sending about 2 calls and 14 website clicks a month, and no bookings.
The site had only a few pages, so it couldn’t answer the questions travelers ask before they choose where to stay in Jamaica. It was also invisible to AI answer engines: no machine-readable facts, incomplete structured data and no llms.txt file.
There were technical problems that cost trust as well. Both the http and https versions of the site were being served, there was a typo URL and a broken redirect chain, and key pages were missing structured data.
Travelers research the destination, the season, the cost and the logistics long before they pick a villa. I built the pages that answer those questions, then led readers to the villa.
Clear entity data, consistent structured data, facts that are easy to extract, an llms.txt file and a machine-readable pricing file, so AI answers can describe the villa correctly.
Calls, messages and bookings were the goal, not clicks. I added click-to-call and date prompts where visitors already were.
Duplicate site versions, broken redirects and missing data quietly hurt rankings, so I fixed those first. Then I measured with Search Console and the Business Profile and kept refining.
Built a /guides/ section of 19 guides, from when to visit and what a trip costs to the four coves and booking direct versus Airbnb. Expanded the traveler FAQ library, and rewrote the Treasure Beach guide from about 930 to about 1,800 words.
Added or repaired structured data for the lodging, FAQs, real guest reviews, breadcrumbs and the author. Added a quick-facts block to the homepage, published an llms.txt file and a machine-readable pricing file, and removed fake stock avatars from testimonials.
Added a site-wide redirect from http to https after Search Console flagged a duplicate canonical. Fixed a typo URL and a broken redirect chain, repaired mixed-content images, resolved pages competing for the same searches, and restored the sitemap settings.
Found that openings starting with “Short answer:” let Google quote the page’s own first lines, so searchers got the answer without clicking. Rewrote openings, titles and descriptions to invite the click, with the full answer still further down the page.
Added a click-to-call icon in the mobile header, a “Thinking about staying with us?” block at the end of the top guides and FAQs, and a sticky call and check-dates bar on mobile. Changed the homepage headline to match commercial searches.
Uploaded real villa photography, replied to reviews, published a “Where to eat” post and set up a daily check routine.
Before the growth work, I built the site’s booking engine as a lightweight custom WordPress plugin instead of using WooCommerce Bookings. It handles seasonal rates, guest-based pricing, minimum-stay rules and live availability, and it is simple enough for the owner to run without calling me for every change.
Because bookings arrive through the site’s own form, a booking can be traced to the website rather than to a platform.
The first direct booking came through the website’s own booking form, for a Christmas and New Year stay. The owner confirmed it as a real guest.
I can’t say which page or search led the guest to book, so I’m not claiming that one change caused it. What I can say is that it arrived through the site after this work.
In the 30 days to early October 2026, the site earned about 15,800 impressions and 122 clicks. The homepage turned 7.7% of its impressions into clicks (28 clicks from 362 impressions). Several guides and FAQs sit between positions 4 and 10 for their main searches, for example the dress code FAQ at an average position of 4.4.
Still in progress: commercial searches such as “villas in Treasure Beach” sit around positions 8 to 14, which is the main opportunity left. Most impressions come from informational searches, where Google often shows the answer itself, so total clicks are modest. Business Profile activity has stayed about where it started, around 2 calls and 10 to 14 website clicks a month, so that is the next focus.
Opening a page with the full answer lets Google quote it back to searchers. Hook-first openings keep the answer on the page while giving people a reason to visit.
A stay is booked by a few of the right people, not thousands of visitors. The numbers that matter are enquiries and bookings.
Facts a machine can quote, such as clear entity data, structured data, an llms.txt file and a pricing file, matter as much as the words on the page.