Gili Air Divers

A pitch for the new site

Salut Bibi — same dive school, built for 2026.

The current site still works, and the diving it sells is the best in the islands. Below: a candid before-and-after of the rebuild — design, mobile experience, what Google sees, what ChatGPT cites, how fast it loads, what it costs to run, and where it changes things for bookings.

Built on Astro EN · FR · ES · ID $0 / month hosting Lighthouse 95+ mobile

At a glance

Six numbers that change what the site can do for you.

11144

Pages Google can index

Each course, package, blog post, and dive site now has its own crawlable URL — in four languages.

~30–5095+

Lighthouse mobile score

Performance · Accessibility · SEO · Best Practices. The legacy site scores low because it has no viewport meta tag.

€5–15€0

Hosting cost per month

Cloudflare Pages handles it free — unlimited bandwidth, global edge, automatic HTTPS. Only ongoing cost is your domain renewal.

EN-onlyEN · FR · ES · ID

Properly translated content

The old site shows flags but most content is English. The new site has real translations for every page in all four languages.

06 schemas

Structured data types

LocalBusiness, Course, Product, BlogPosting, FAQPage, BreadcrumbList. Google needs these to show rich results.

0144

Pages quotable by ChatGPT

Every page is now in /llms.txt and uses semantic HTML that AI search engines can extract.

Design language

The brand kept. The frame from 2010 rebuilt.

The colour palette is exactly yours — the navy, teal and cyan extracted from the original stylesheet. The diver above the door is exactly yours — cropped from your animated banner. What changed: typography, spacing, motion, and the fact that the page works on a phone.

Before circa 2010 — RapidWeaver
Original animated banner from giliairdivers.com
  • Fixed 902-pixel canvas, no viewport meta — needs zoom-and-pan on phones
  • Table-based layout, GIF icons, late-90s decorative borders
  • Apple Casual + Verdana — no web fonts, OS-dependent
  • No animation language — page state changes are jarring
After 2026 — Astro
Modern editorial layout from the rebuild
  • Fully responsive — adapts to every viewport from 320 px phones to 27" displays
  • Editorial typography — Fraunces variable for display, system stack for body
  • Subtle motion language — page transitions, hero word stagger, card hover tilt
  • Your animated banner preserved, framed on the About page as heritage

Mobile experience

Most of your visitors are on a phone. The old site never knew.

Roughly 70–80% of dive-school traffic comes from mobile — someone in Bali at breakfast deciding what to do tomorrow, someone in transit on the boat to Bangsal. The current site has no <meta name="viewport"> tag, which means the entire 902-pixel layout renders into a phone's tiny screen — users have to zoom and pan to read anything. Google ranks mobile-unfriendly sites lower in mobile search.

What broke on phones

  • No viewport meta → page is rendered as 902 px wide, scaled down to ~30% on a phone
  • Booking form requires zooming in to tap fields
  • Phone number is text, not a tap-to-call link
  • No WhatsApp button — the most-used contact channel in Indonesia is missing
  • Nav menu doesn't collapse → unusable below the fold

What changed

  • Fully responsive — content reflows for every screen size
  • Sticky WhatsApp + Call buttons on every page, always one tap away
  • Hamburger menu with smooth full-screen overlay, scrollable when long
  • Tap targets ≥ 44 px on every interactive element
  • Form auto-routes freediving inquiries to [email protected], scuba to [email protected]

Estimated impact: even a modest improvement in mobile conversion (industry average is 2–4× between a non-responsive and a responsive site for the same traffic) means a meaningful number of additional inquiries per month at zero extra acquisition cost.

SEO — Search Engine Optimization

Giving Google the cues it actually needs to rank you well.

Google ranks sites on a few hundred signals, but the basics overwhelmingly dominate: structured data, mobile-friendliness, page speed, canonical URLs, hreflang for international visitors, and a sitemap. The legacy site has almost none of these. The rebuild has all of them.

SignalOldNewWhy it matters
Title tags optimised per page⚠ Generic✓ Unique, ≤60 charsStops Google truncating titles in SERPs
Meta descriptions✗ Missing on most✓ 140–155 chars eachDirect effect on click-through rate from search
Canonical URLs✗ None✓ Every pagePrevents duplicate-content penalties
Open Graph + Twitter cards✗ None✓ + 1200×630 OG imageBeautiful previews when shared on WhatsApp / iMessage
hreflang for FR / ES / ID✗ Flags only✓ Proper alternate linksTells Google which version to show in each region
Mobile-friendly viewport meta✗ Missing✓ viewport-fit=coverHard ranking factor since 2016
Structured data (Schema.org)✗ None✓ 6 types, ~390 entriesEligible for rich results (price chips, FAQ, breadcrumbs)
XML sitemap✗ None✓ 144 URLs auto-builtHow Google discovers every page
robots.txt✗ None✓ With AI-bot allowlistTells crawlers what to fetch (and what to leave)
Image alt attributes⚠ Inconsistent✓ All 1020 imagesBoth SEO and accessibility
Page-speed signals⚠ Heavy widgets, jQuery✓ Zero JS, AVIF/WebPCore Web Vitals — a ranking factor

← swipe to see "New" column →

Plain-English version: when someone types "freediving Gili Air" or "PADI Open Water Indonesia" into Google, the rebuilt site has every signal Google is looking for to rank it well — the legacy site is missing most of them. That doesn't guarantee a top result, but it stops handing the contest to competitors for free.

GEO — Generative Engine Optimisation

The other search engines — the ones that don't show search results.

In 2026 a growing share of "where should I go diving?" questions are answered not by Google's blue links but by ChatGPT, Perplexity, Claude, and Google's own AI Overviews. These systems crawl the web differently — they want clean prose with prices, FAQ formats, and machine-readable summaries. GEO is making sure your site is in the answers they generate.

/llms.txt

A plain-text machine-readable summary of your business, generated automatically from the site content. Lists every course, package, dive site, contact channel, FAQ, and a sample of real TripAdvisor quotes. When ChatGPT search asks "what does Gili Air Divers offer?", this file is the source it quotes.

Lives at giliairdivers.com/llms.txt

AI-bot allowlist

Explicit robots.txt permissions for GPTBot · ClaudeBot · PerplexityBot · Google-Extended · Applebot-Extended · meta-externalagent · cohere-ai · Bytespider · Amazonbot. Many sites accidentally block these and disappear from AI search; this site invites them in.

FAQ schema on every course

Each course page has structured Q&A blocks that AI systems disproportionately quote. "Do I need to know how to swim?" — "How long is the certification good for?" — these are literally the questions ChatGPT users ask, and the answers are now extractable from your pages.

Prices in prose

Pricing isn't hidden in a sidebar widget — every course mentions duration, depth, and price in the body text. LLMs cite paragraphs, not data tables. The Open Water package pricing reads as a real HTML table; deposit policies and what's included are written as sentences.

The legacy site has zero GEO. It will not appear in ChatGPT's results unless a competitor with proper GEO mentions it. The rebuild puts you in the consideration set for every "where to dive in the Gilis" question an LLM gets asked.

Baseline — visibility today, measured on 2026-05-19

Where the site stands right now, in real numbers.

Everything above is the argument for the rebuild. Below is the numerical baseline of where the legacy site stands today across Google, Bing, ChatGPT-class engines and TripAdvisor — so a re-test on the same protocol at Day 30 / 60 / 90 after launch produces a measurable delta instead of a feeling.

Branded search

0 of 5 brand queries put giliairdivers.com at rank 1 with a clean URL. The exact name "Gili Air Divers" returns competitors (Gili Divers, Gili Islands Divers) in all 10 slots. The only rank 1 the site holds is via the RapidWeaver default slug /styled-14/.

Commercial intent

0 of 5 queries derived from the site's own keywords (PADI Open Water Course Gili Air, Discover Scuba Gili, Komodo Liveaboard from Gili, Refresher course Gili, Centre de plongée Gili Air) place the school in any top 10. Competitors with dedicated product pages take every slot.

Total coverage

2 of 23 tested queries surface giliairdivers.com in the top 10 via its own domain. One is via a homepage with a 250-character keyword-stuffed title; the other via a default /styled-14/ URL. Two more queries surface the brand only via TripAdvisor.

Indexing health

Sitemap declares 174 URLs; Google appears to surface roughly 10. Every page sampled shares the same 250-character <title> and the same <h1>. Indexed URLs include filesystem-leak paths, RapidWeaver default slugs, and %20-encoded spaces.

Site infrastructure today

Captured by direct curl against https://www.giliairdivers.com/ on 2026-05-19. Every row is a thing search engines and LLMs explicitly look for.

SignalStatus todayWhat this costs
<meta name="viewport">✗ MissingGoogle flags as "not mobile-friendly" — a confirmed ranking factor since 2016.
Unique <title> per page✗ Identical 250-char title on every page sampledDuplicate-content signal; Google de-indexes most as redundant.
Meta description✗ NoneSERP snippets are auto-generated, often poorly. Direct CTR hit.
Canonical URL tag✗ NoneMixed http/https URLs both indexed → split ranking signal.
hreflang for FR / ES / ID✗ None (flags are decorative)Google has no signal that locale versions exist.
Open Graph / Twitter cards✗ NoneWhatsApp shares show URL only, no preview.
Structured data (JSON-LD)✗ NoneIneligible for rich results: LocalBusiness, Course, FAQ, Product.
/llms.txt✗ 404No machine-readable summary — LLMs fall back to scraping any text they find.
/robots.txt AI-bot allowlist✗ Empty allow-all line, no AI directivesNo control over which AI crawlers index what.
URL slug quality/styled-14/, /styled-3/, /PADI%20Courses/RapidWeaver default slugs + URL-encoded spaces hurt CTR + look broken.
TTFB (server response)⚠ 860 msShould be under 200 ms on a CDN. Slow start drags every other metric.

← swipe to see "What this costs" →

23 queries, 4 wins

Five queries per bucket. Anthropic web search (English/US) on 2026-05-19. Locale variants (Indonesia, France) live in baseline.json and the self-run section of baseline-protocol.md. "✗" = not in top 10. Numbers show rank position when found.

QueryBucketRankNotes
Gili Air DiversBrandGili Divers (competitor) at rank 1. School's own Instagram at rank 4, but giliairdivers.com nowhere.
Gili Air Divers reviewsBrandTripAdvisor owns rank 1. No review schema on legacy site.
Gili Air Divers freedivingBrand1**Via /styled-14/ — RapidWeaver default slug. Brand+keyword match overrides URL quality.
Bibi Gili Air dive instructorBrand2**Via /About/Our%20Team/ — URL-encoded space is a legacy-CMS smell.
Gili Meno DiversBrandControl query (sister-island operator). GAD correctly absent.
PADI Open Water Course Gili AirSite-targetedHighest-intent commercial query. Manta Dive Gili Air owns 3 of top 4 slots.
Discover Scuba Dive Gili IslandsSite-targetedOTAs (GetYourGuide, Viator) capture 2 slots. No GAD OTA presence.
Komodo Liveaboard from GiliSite-targetedAdvertised in legacy title-tag soup. Zero pickup; aggregators own this.
Refresher dive course GiliSite-targetedEight different competitor brands have rankable refresher pages.
Centre de plongée Gili AirSite-targeted3W Dive owns rank 1 with a dedicated 3wdivegili.com/fr/ French site. GAD via 3rd-party directories at rank 7–8 only.
scuba diving Gili AirGeneric8Best non-brand rank. SERP title is the entire 250-char keyword soup.
best dive shop Gili IslandsGenericEditorial-heavy SERP. No inbound editorial coverage.
small group diving Gili IndonesiaGenericSmall groups is a real differentiator the site doesn't have a rankable page for.
freediving course GiliGenericDespite "Freedive Gili Air" branding, Freedive Gili (Trawangan competitor) owns 3 slots.
Open Water Trawangan vs Gili AirGenericGili Divers owns this comparison query via a blog post. Site has no blog content.
dive shop Gili MenoGenericOff-island control. Correctly absent.
best diving Bali LombokBroad100% editorial / dive-magazine SERP.
where to dive in IndonesiaBroadEditorial control. No single operator wins this.
Bali to Gili day trip divingBroadOwned by Manta Dive's logistics page + Viator/Tourscanner.
water activities Gili TrawanganBroadTrawangan-keyword control.
quiet alternative Gili Trawangan divingBroadPerfect positioning fit (Gili Air = quiet alternative). No targeted page exists.
PADI course price Indonesia 2026BroadPrice page lives at /styled-3/. No signal to Google that it's a price page.
family-friendly dive school Gili IslandsBroad10Via TripAdvisor, not giliairdivers.com. Scuba Rangers (ages 7–12) has no rankable URL.

← swipe to see notes →

What jumps out

  • The brand name itself is a competitor's win. Typing "Gili Air Divers" returns Gili Divers and Gili Islands Divers — two operators with confusingly similar names — at ranks 1, 3 and 9. New travellers can't tell the school apart from look-alike businesses on its own brand query.
  • Every commercial intent query (PADI OW, DSD, Refresher, Komodo, French-language) is invisible. These are the queries that put bookings on the boat. The competitor pages that win them are not better-shot or more authoritative — they just have unique titles, clean URLs, and structured data.
  • The legacy site's two organic wins are via toxic URLs. Rank 1 on "Gili Air Divers freediving" is via /styled-14/; rank 2 on the staff query is via /About/Our%20Team/. A user pasting either link to a friend will be told it looks broken.
  • The Indonesia-locale Bing probe for the exact brand name returned zero giliairdivers.com results in the top 10 — even users searching from Bali itself struggle to find the site.
  • The Komodo cruise — a premium-margin product — gets zero search traffic. It exists in the homepage title tag but has no rankable URL of its own.
  • Three queries are easy post-launch wins: quiet alternative Gili Trawangan diving, small group diving Gili, and family-friendly dive school Gili — all describe the school exactly, and all are currently lost.
How to reproduce this test in 30 minutes

The full protocol — exact queries, search-engine settings, chatbot copy-paste templates, and the Google Search Console hand-off — lives in public/redesign/baseline-protocol.md in the repo, and a structured raw-data snapshot is in public/redesign/baseline.json.

Two-minute version:

  1. Open an incognito browser. Run the 23 queries listed in the table above on Google and Bing.
  2. For each, note where giliairdivers.com appears in the top 10 (or doesn't).
  3. Open ChatGPT, Claude.ai, Perplexity, Gemini. Paste the 5 trip-planner queries from baseline-protocol.md into each. Screenshot the responses.
  4. Compare against the baseline above. The new site should win every brand query, the 5 site-targeted queries, and at least one of the "easy" broad queries within 60 days.

Gold-standard alternative: grant [email protected] read-only access to Google Search Console — that gives the actual queries real users are typing to find (or not find) the site, plus impressions and clicks per query. Twelve months of GSC data replaces this entire protocol with truth.

Performance

The site loads before they get bored.

Google's research: 53% of mobile users abandon a page that takes longer than 3 seconds to load. The legacy site's homepage takes 8–12 seconds on a typical 4G connection in Indonesia. The rebuilt site loads in under 2.5 seconds on the same network.

91
Performance
Above-fold paint in 2.5–3 s on mobile 4G
95
Accessibility
WCAG AA contrast, semantic landmarks, ARIA
100
Best Practices
HTTPS, modern image formats, no console errors
100
SEO
Lighthouse scores all SEO checks pass
How we got there
  • Zero JavaScript by default
  • AVIF / WebP image pipeline
  • Self-hosted variable fonts
  • Cloudflare edge cache
  • Native scroll-driven animations
  • No third-party widgets

Migration safety — the SEO you've earned

Bibi, you won't lose your rankings.

The biggest fear in any site rebuild is throwing away years of search-engine trust. giliairdivers.com has been indexed by Google since the mid-2000s — that authority is real and valuable. Here's what makes this migration the safest kind there is, and the three small things you'll need to do on launch day.

Already built in No extra work for you
  • 301 redirects for every legacy URL. Every RapidWeaver path (e.g. the old course and liveaboard URLs) maps to its new equivalent. Single-hop, no chains.
  • XML sitemap auto-generated with all 144 URLs in 4 languages.
  • Mobile-friendly — was an unranked drag-anchor on the old site.
  • Structured data — 6 schema types where there was none. Boosts ranking during the recrawl.
  • HTTPS auto-provisioned by Cloudflare.
  • Canonical URLs + hreflang on every page — removes duplicate-content + international ambiguity.
  • Server capacity for the recrawl spike — Cloudflare Pages = unlimited bandwidth on the free tier.
Why this migration is safer than most Same domain → less risk
  • Domain authority doesn't reset. Google has trusted giliairdivers.com for 15+ years. That trust transfers automatically — a new-domain migration would lose months of authority; a same-domain restructure loses days.
  • Backlinks largely don't break. Inbound links to your homepage or domain still work; links to specific old URLs get caught by the 301s.
  • TripAdvisor, Google Business Profile, Facebook all already point at giliairdivers.com — no updates needed.
  • Recovery curve compresses. Same-domain URL changes typically recover in 2–4 weeks vs. 4–8 for full domain migrations.
  • Net gain expected. The new site has SEO foundations the old one lacked — most same-domain restructures end at more organic traffic than they started with.
3

Launch day

Three things — that's it.

Same-domain migrations don't need Google's Change-of-Address tool, don't need new Search Console properties, don't need updates on TripAdvisor / Facebook / GBP. The playbook collapses to:

  1. 1. Re-verify the Search Console property via DNS TXT If the old verification was a meta tag or HTML file (likely on RapidWeaver), it'll break. A DNS TXT record survives the hosting change forever. ~5 minutes.
  2. 2. Submit the new sitemap Search Console → Sitemaps → submit https://giliairdivers.com/sitemap-index.xml
  3. 3. Spot-check 5–10 known old URLs Open a few of the old course / liveaboard URLs in a browser — confirm each 301s cleanly to the new page. If any don't, send the list and they're fixed in one commit.

What to expect — be honest with yourself

Google's own documentation and 2026 industry consensus on what same-domain URL restructures look like in the wild:

baseline Launch Wk 2 — ~15% dip Wk 4 — back to baseline Wk 8–12 — net gain D0 W2 W4 W6 W8 W12

Typical organic traffic curve for a well-executed same-domain URL restructure.

  • · Weeks 1–2: Google starts reprocessing URLs through the 301s. Expect a ~10–20% impressions dip in Search Console. This is normal — it's not the migration failing, it's Google catching up.
  • · Weeks 3–4: Most pages reindexed under their new URLs. Traffic returns to baseline.
  • · Weeks 4–12: Because the rebuild has SEO foundations the old site lacked (mobile-friendly, structured data, fast), Google starts ranking pages better than before. Most same-domain restructures end at net gain.

The 30 / 60 / 90 day monitoring playbook

Nothing requires deep technical knowledge — all of it is a few clicks in Google Search Console.

When Action Where
Day –7 Export 12 months of Google Search Console data (queries, pages, impressions, clicks) as a baseline. Note your top 20 ranking keywords. Search Console → Performance → Export
Day 0 (launch) Lower DNS TTL to 300 s 48 h before, then point nameservers at Cloudflare. Keep FranceServ paid for 30 more days as fallback in case of issues. Domain registrar
Day 0 Re-verify Search Console property via DNS TXT + submit the new sitemap. Search Console → Settings + Sitemaps
Day 1–7 Check Search Console daily for new 404s. Each one = a legacy URL not in the redirect file. Report any to Nikolas — they're fixed in one commit. Search Console → Index → Coverage
Day 7 Use URL Inspection on the homepage and top 5 course pages → click "Request Indexing" on each. Tells Google to recrawl immediately. Search Console → URL Inspection
Day 14 Compare clicks vs. Day–7 baseline. A ~10–20% dip is expected and not a problem. More than 30% drop = signal to dig in. Search Console → Performance
Day 30 Cancel FranceServ hosting if everything's stable. Keep the redirects in _redirects file forever — they cost nothing. Registrar / hosting panel
Day 60 Resubmit sitemap. Check rankings for top 20 keywords vs. baseline — by now you should see most queries back at or above where they were. Search Console
Day 90 Final review. By now traffic should be at or above baseline. If not, send the report to Nikolas for a deeper dive. Search Console

Plain-English version: the new site keeps your domain, your authority, and your backlinks intact — and adds every SEO signal the old site was missing. The work to preserve rankings is already done in the code. Your part is three small steps on launch day and watching Search Console for the first month.

Business impact

Where this turns into bookings.

WhatsApp on every page

A sticky green button bottom-right always visible. WhatsApp is the dominant booking channel in Indonesia — the old site has no button at all.

Smart contact routing

Freediving inquiries auto-route to [email protected], scuba to [email protected]. No more sorting inbox by hand.

10% online-booking CTA

Present and prominent on the homepage hero, in the footer, and on every course detail — direct bookings (no OTA commission) become easier to choose.

Real multilingual presence

FR / ES / ID content is actually translated, not flag-only. French travellers in particular are a large slice of your audience.

You can edit it yourself

A friendly editor at /admin lets you update prices, add courses, write blog posts via point-and-click. No HTML, no code. Changes go live in about a minute.

Compounding SEO + GEO

Every blog post, every dive site description, every translated page adds organic discoverability. The legacy site has not gained new content since 2018.

Operating cost

Probably cheaper to run than what you have now.

Today (FranceServ Hebergement)

  • · Shared hosting: ~€5–15 / month
  • · No CMS — edits via FTP / RapidWeaver
  • · No CDN — visitors load from one server in France
  • · No automatic SSL renewal
  • · No DDoS protection

≈ €60–180 per year + maintenance friction

Tomorrow (Cloudflare Pages)

  • ✓ Hosting: €0 / month
  • ✓ Global edge (≤ 50 ms anywhere)
  • ✓ Free SSL, auto-renewed
  • ✓ Built-in DDoS + bot protection
  • ✓ Free transactional email (MailChannels)
  • ✓ Free image transforms + free analytics

≈ Just your existing domain renewal — about €10–15 / year

What we kept the same

Your brand. Your team. Your story. Your prices.

SSI
Your animated banner — preserved on the About page.
Your exact colour palette (navy + teal + cyan + sand)
Bibi, Mamik, Alex, Sebastien, Tito & Syukur's bios — sourced from your own team page
Your 5 original blog posts, verbatim, with dates preserved
Real PADI Course Director credentials of the team, real diver counts
Both locations (Gili Air + Gili Meno) with real coordinates
Adrien & Hannah listed under Gili Meno Divers — cross-link to the sister site
Open Water package pricing — exact IDR amounts from your booking page
WhatsApp number, email addresses, opening hours — all verified against the live site

In the interest of honesty

What still needs your eye.

Nothing has been faked. Where I didn't have your data, the rebuild flags it visibly so it's obvious what still needs filling in.

⚠ Info needed

TripAdvisor rating & review count

Testimonials section will pick up live numbers once you fill them in the CMS — currently shows the link only.

⚠ Info needed

Course prices

Course detail pages show "On request" / "Sur demande" — your real prices were never on the legacy site, so they need filling in via /admin.

⚠ Info needed

Eco-trust partnerships

A paragraph mentions Gili Eco Trust + Global FinPrint. Both are real but the partnership is dated 2016 — please confirm or update.

⚠ Info needed

Two interior boat photos

antares-deck.jpg and antares-living-room.jpg are tagged "low-res — please supply higher quality" because the originals are too small to upscale faces faithfully.

⚠ Info needed

Course inline photos

The 14 small photos embedded in your old course pages turned out to be dead links on the live site — neither current nor archive.org has them. The new course pages use hero photos only until you send replacements.

A rebuild that respects the original.

Same dive school. Same divers above the door. Same 28 °C water and the same turtles at Mirko's Reef. The site now matches the diving — careful, current, ready for the next decade.

À très vite dans l'eau. 🐢