Bali Time Investment had no working website and works with a broker in Indonesia and a booking platform. The question was how the owners get control back, so I rebuilt the site in English and French. On 3 November 2026 all 24 pages return HTTP 200 and the placeholder amounts and placeholder links are gone. That same day a 2-month stay was confirmed for a client who got in touch through the WhatsApp button on the site. Enquiries over a longer period have not been measured: there is no measurement since the rebuild.
0 of 24
pages with placeholder amounts, the placeholder WhatsApp link or the unregistered domain, checked with curl on 3 November 2026. Before, they were on the 6 product pages, the homepage and the contact page (audit of 27 August, notes of 9 and 30 October).
12 per language
pages in the sitemap, in English and in French, all HTTP 200 when checked with curl on 3 November 2026. On 27 August 2026 the crawl found 4 indexable pages and the sitemap held 10 URLs, 6 of them orphan product pages.
24 of 24
pages with hreflang for en, fr and x-default, reciprocal and with a self-referencing canonical, checked with curl on 3 November 2026. On 27 August 2026 html lang said en-PH on French content and hreflang was not recorded.
Sources: Screaming Frog crawl, 27 August 2026. Search Console exports, 31 August and 26 October 2026. Note, 9 October 2026. Monthly draft, 28 October 2026. Claims audit and handover document, 30 October 2026. Curl check of 24 pages and browser check of the homepage, 3 November 2026. Brief and message about the stay, 3 November 2026.
Bali Time Investment works with a broker in Indonesia and a booking platform. A website existed, but it did not work. The question to me was how the owners get control back. That is in my brief of 3 November 2026. I have no figures on sales or rentals through the broker or the platform.
The site was built on Hostinger Website Builder and was live before 6 April 2026. I got access to the existing site on 24 August 2026. The audit of 27 August and the notes of 9 and 30 October 2026 show what did not work:
Search traffic was almost absent. The Search Console export of 31 August 2026 (last 7 days) showed 0 clicks and 1 impression, average position 78, homepage only, country Indonesia. The last measurement before the rebuild is the export of 26 October 2026 (18 to 24 October, type Web). It showed 0 clicks and 3 impressions at average position 18.7, homepage only. GA4 counted 28 sessions in 7 days, the last pull on 31 August 2026. The property was verified on 24 August 2026, so no earlier history exists. According to the monthly draft of 28 October 2026, the sitemap had lastmod 25 August 2026. The site was rewritten on 30 October 2026.
Bali Time Investment offers four furnished leasehold villas (Maison Putih 1 to 4) in Pererenan, near Canggu in Bali. The villas are for sale and for long-stay rent. The audience is mainly French-speaking and European (handover of 30 October 2026).
The goal was a direct channel for enquiries: their own site in English and French with one linked WhatsApp number. I left the broker and the booking platform outside my work.
I work inside the existing platform, the Hostinger editor, and do not build a new system. I start with a technical audit and then remove claims that conflict with the documents I have. The owners have not yet confirmed the details per villa, so I cannot check texts against a confirmation from them. After publishing I fetch every page with curl and check language, hreflang, canonical, H1, structured data and the placeholder values. I check tracking in a browser as well, because a script that loads twice does not show in the raw HTML.
I checked everything below on the live site on 3 November 2026. I fetched all 24 pages with curl and, for tracking, also looked in a browser.
The live sitemap lists 24 URLs: 12 pages in English and the same 12 in French under /fr. Every URL returns HTTP 200 and all lastmod values are 1 November 2026, 08:57 UTC. Per language that is the homepage, a sales hub, a long-stay rental hub, four villa pages and contact. Each language also has four sitemap pages titled privacy policy, terms, cookie policy and site map. The domain without www redirects with a 301 to www. Robots.txt allows crawling and lists the sitemap.
The html lang is en-GB on English pages and fr-BE on French pages. Every page has hreflang for en, fr and x-default, reciprocal, and a canonical to itself. All 24 titles are unique. Sixteen pages have exactly one H1, unique within its language, and 16 pages have a meta description of 103 to 156 characters. None of the 24 pages has an H2.
No page contains a placeholder amount any more. The only structured data is WebSite on the English homepage and WebPage on the other pages. The placeholder WhatsApp link, the placeholder number in the footer and the unregistered domain now appear on 0 pages. The old product pages are no longer in the sitemap. The homepage title states the form of ownership: leasehold.
One WhatsApp number is linked on all 24 pages. I have not confirmed that this line reaches the owners. The contact address on the unregistered domain is gone. The GTM container sits once in the site's code. In a browser on the homepage one gtm.js script loaded and the dataLayer held one gtm.js event. On 30 October 2026 GTM still loaded twice.
The technical improvements are measurable. I compared the state of 3 November 2026 with the dates in the table. For enquiries, bookings and search performance there is no measurement since the rebuild.
| Measure | Before | After (3 November 2026) | Source |
|---|---|---|---|
| Pages in the sitemap | 4 indexable pages in the crawl and 10 URLs in the sitemap, 6 of them orphan product pages (27 August 2026) | 24 URLs: 12 pages in English and the same 12 in French, all HTTP 200 | Screaming Frog, 27 August 2026; sitemap.xml and curl, 3 November 2026 |
| Language and hreflang | html lang en-PH on French content (27 August 2026). Hreflang not recorded | en-GB on English and fr-BE on French pages. Hreflang en, fr and x-default on all 24 pages, reciprocal, with a self-referencing canonical | Audit, 27 August 2026; curl of 24 pages, 3 November 2026 |
| H1 | Two pages with the same H1 'Galerie' (27 August 2026) | 16 pages with exactly one H1, unique per language. The 8 legal and site map pages have no H1 | Audit, 27 August 2026; curl and rendered DOM, 3 November 2026 |
| H2 headings | No page had an H2 (27 August 2026) | None of the 24 pages has an H2 | Audit, 27 August 2026; curl, 3 November 2026 |
| Structured data | None (27 August 2026) | WebSite on the English homepage, WebPage on the other pages | Audit, 27 August 2026; curl, 3 November 2026 |
| Placeholder amounts on the site | On the 6 orphan product pages, also in Product JSON-LD (9 October 2026) | 0 of 24 pages | Note, 9 October 2026; curl, 3 November 2026 |
| Placeholder WhatsApp link and placeholder phone | Link on homepage and contact page, number in the footer (handover of 30 October 2026) | 0 times on 24 pages. One WhatsApp number is linked | Handover, 30 October 2026; curl, 3 November 2026 |
| Unregistered domain | Email address on homepage and contact page (9 October 2026), link on the homepage (27 August 2026) | 0 times on 24 pages | Note, 9 October 2026; audit, 27 August 2026; curl, 3 November 2026 |
| GTM container | Loaded twice on the homepage (30 October 2026) | Once in the site's code and one gtm.js event in a browser on the homepage | Audit, 30 October 2026; curl and browser check, 3 November 2026 |
| WhatsApp click event | Did not exist (30 October 2026) | Not built according to the specification of 30 October 2026. The HTML of the homepage and contact pages holds no click event. I did not read the GTM container itself | Handover and tracking specification, 30 October 2026; curl, 3 November 2026 |
| Search Console, homepage | 26 October 2026 (18 to 24 October): 0 clicks, 3 impressions, position 18.7. 31 August 2026 (7 days): 0 clicks, 1 impression, position 78, country Indonesia | Not measured | Search Console exports, 26 October and 31 August 2026 |
| GA4 sessions | 28 in 7 days (last pull 31 August 2026) | Not measured | Handover, 30 October 2026 |
State of play on 3 November 2026:
The existing site was rebuilt in English and French. On 3 November 2026 all 24 pages return HTTP 200 and carry hreflang, and no placeholder amounts or placeholder links remain. Enquiries over a longer period have not been measured.
The audit of 27 August 2026 found an English H1 on the French homepage, two pages with the same H1 and no structured data. According to the notes of 9 and 30 October, 6 orphan pages showed placeholder amounts. A contact address sat on an unregistered domain and a WhatsApp link was a placeholder.
One client got in touch through the WhatsApp button on the site and a 2-month stay was confirmed on 3 November 2026. That rests on my information of that day, not on a measurement: the WhatsApp click event was not set up on 30 October 2026. So I cannot say how many enquiries the site produces.
hello@sahardid.comAmsterdam