Who this case is for
If you run a cruise booking agency, an international tour company or any travel business that posts promotions on Facebook regularly, yet customers almost never find you on Google, this case covers everything from the day we checked the website, the Facebook page and the market, to the new website plan and booking system we designed.
At the end there is a checklist you can use to compare against your own website and page right away.
We do not name the business, to protect the client’s privacy, and we do not name competitor websites.
1. The owner wanted to match the market leader
The company is a cruise booking agency in Bangkok with a tour operator licence. It sells ocean cruises in Asia, European cruises, European river cruises, sailings from Thai ports, private tours and corporate study-tour groups.
The owner already had a model in mind: another cruise agency’s website with an online booking system that lets customers pick their own cabin on the deck plan. He wanted a site like that.
The brief had 3 parts:
- A new website to replace the old WordPress site
- Two languages: Thai and English
- A tour booking system the team can manage themselves
The information we used
- The client’s existing website, checking the real code on every page
- The client’s Facebook page, going through all 1,173 images and 4 albums
- Ahrefs, to check search volume, keyword difficulty and data on 9 competitors
- The booking system of the website the client wanted to match, to understand how it works and what Google can and cannot see
After a meeting with the marketing executives, we sent the client a further questionnaire of 42 questions in 6 sections. Each question explained where its answer would be used in the work, for example: which 3 ships sell best, which channels today’s bookings come from, and most importantly, whether the agency gets cabin allocations from the cruise lines in advance or has to check availability with the cruise line every time. That last answer decides whether the booking system can confirm automatically or needs a step where it waits for the cruise line to confirm.
Before planning anything, we asked one question: is this market’s problem that websites are not strong enough, or that there are no pages that directly answer what people search for? The answer changes the weight of all the work.
2. What we found and what we proposed
The old site: a good image, but Google did not know what it sells
Basics missing from the old site
- Every page title was just the company name, with no mention of cruises or the services it sells
- None of the 8 pages had a meta description
- Sales pages had no main heading (H1). The only H1 on the site was in the sample “Hello world!” post, which was still live
- There was no structured data (Schema) at all, even though travel businesses have their own Schema types
- Only one language, and no booking system: the only way to get in touch was a form
Unfinished work that hurt credibility
- The menu still had an item called “Home_old”
- The homepage had two addresses (
/and/home/), both in the sitemap - The author archive page was open to Google and revealed the admin username
- When we checked, the domain had less than 2 months before it expired. We told the client to renew it before starting work
We separated the urgent fixes on the old site into a set that could be done in a single day, so the site could start following best practice while the new site was being built.
All the good content was inside images
What changed the plan most came from the Facebook page, not the website.
The page has thousands of followers. The client posts promotions regularly, with itineraries, sailing dates and prices by cabin type. There is a series introducing destinations, the company has run its own cruise seminars, and it was once invited to the naming ceremony of a new ship from a global cruise line.
But almost all of this information is text baked into images. Google cannot read it, and older posts sink out of sight in the feed.
We read the text from all 1,173 images through the image descriptions Facebook generates automatically. That gave us 219 images with readable text and a catalogue of 14 routes and packages actually on sale, none of which appeared on the website.
This catalogue changed the plan in 3 places:
- The ships the client really sells come first. The ship that is the client’s real main product has 350 searches a month for its name, KD 2. We had it at number 7 in the plan; it had to move up to be one of the first pages built
- There are entry-level products priced close to a typical Japan tour. The pricing page needs to lead with these, because most people think cruises are out of reach
- There are sailings from Thai ports. The keyword group “เรือสำราญ แหลมฉบัง” (cruise Laem Chabang) / “ล่องเรือสำราญ ไทย” (cruise Thailand) totals about 500 searches a month at KD 0, and it can go fully back into the plan because there are real products to sell
So the main job of the new site fits in one sentence: turn what is in the images into text on web pages. Every itinerary, price and sailing date must be HTML that Google can read, with product and price Schema, and the images become illustrations.
The real competitor is not the biggest website
We checked 9 competitors and found that the website with the strongest domain was not competing in cruises at all. The sites actually getting visitors from cruise searches were the ones focused only on cruises.
The takeaway from this chart is that the cruise market in Thailand is not held back by domain strength, but by the lack of pages that match what people search for. So we split the effort as 60% content and page structure, 25% technical work and 15% links from other sites.
What we learned from each competitor:
- The site the client wanted to match gets only 57 visitors a month from search, almost all from a single informational article. Its bookings come mainly from ads. Its booking system is an app that renders in the browser, so Google sees little of the package page content
- The site with a page per ship gets about 450 visitors a month from one formula: a separate page for every ship it sells. A single ship page gets more than 100 visitors, but the content is thin and some ships have two pages competing for the same keywords
- The cruise-only site runs on old technology, yet its single page on sailings from Laem Chabang gets 221 visitors a month
- A single all-routes page on another tour site gets 108 visitors from 25 keywords, because it puts every route and price on one page
The big keywords we cut
During research we found a “ล่องเรือเจ้าพระยา / ดินเนอร์ครูซ” (Chao Phraya river cruise / dinner cruise) cluster with more than 20,000 searches a month combined, almost all at KD 0. That is several times bigger than all overseas cruise keywords put together.
After checking every post on the page and the website, we confirmed that the client does not sell Chao Phraya dinner cruises. “River Cruise” on its website means European river cruises. So we cut this cluster from the main plan, for 3 reasons:
- People searching it want an inexpensive dinner tonight, while the client sells much higher-priced cruises booked months in advance. Lots of visitors, but nobody books
- It confuses Google about what this site is an expert in
- Sales pages for products you do not actually sell are the kind of pages Google penalises
We kept this cluster as a future opportunity, in case the client one day decides to become a real dinner cruise ticket agent. In the meantime we attract people with content about the ports the ships actually call at, such as the Okinawa travel series the client had already written on the page (“โอกินาว่า ที่เที่ยว” (things to do in Okinawa) 500 searches, KD 0, and “ปราสาทชูริ” (Shuri Castle) 250 searches, KD 0), which can link directly to the pages for ships that call at Okinawa.
One more thing to know: Thai users spell “สำราญ” in two ways on the keyboard, and Google counts them as different keywords. One spelling gets about 2,100 searches and the other about 1,300. So content needs both spellings, and rankings for both need to be tracked.
English is not an extra
People searching in English in Thailand are foreigners living in Thailand, tourists, and people from Singapore and Malaysia searching across borders. So English search volume is higher than Thai, and KD is still low. The client’s own page description was already written in English.
So we proposed building the English site at the same time as the Thai site, written separately for each language rather than using a translation plugin, with some pages built in English first.
8 overseas markets
The client also wanted to market to Vietnam, so we asked to look wider: if the business expands overseas, where should it go first? We checked keywords for every product group in 8 markets, including local-language keywords, not just English.
What we learned from the overseas markets:
- Indonesia is 5 times bigger than Thailand, because the single local-language keyword “kapal pesiar” (cruise ship) gets 14,000 searches a month at KD 2. Looking only at English keywords, you would miss this market entirely
- India has clear departure cities: “cruise from mumbai” gets 6,100 searches at KD 1, and “cruise from chennai” 800 searches at KD 0
- Malaysia searches in English. We checked Malay keywords and almost nobody uses them
- European river cruises suit Western markets. In the United Kingdom, the name of the river cruise line the client sells gets 1,900 searches at KD 6, but in Asia almost nobody searches for it
- Vietnam is still very small. It was the market the client had in mind, but checking Vietnamese keywords for every product gave only 240 searches a month, and the general terms are dominated by Vietnam’s large tour websites. So we recommended postponing it and starting with Indonesia and India instead
This is a good example of why you should look at the numbers before deciding to open a new market. A market that feels close to home is not necessarily a market where people are searching.
What we proposed
1. A new bilingual site, with pages split by the 3 angles customers decide on Destination × cruise line × ship, for 48 pages per language. Every page has a target keyword based on real data.
| Page group | Count | Examples |
|---|---|---|
| Core and brand pages | 5 | Home, About us, Why book with us, Contact, Promotions |
| Destinations | 9 | Asia, Japan, Mediterranean, Northern Europe, Alaska and sailings from Thailand |
| Cruise lines | 10 | The ocean and river cruise lines the client sells |
| Ships | 12 | Ships actually on sale first, followed by ships with high search volume and low KD |
| Ports of call | 6 | Okinawa, Hong Kong, Taipei, Shanghai, Mediterranean, Danube–Rhine |
| Services | 3 | Private tours, corporate groups, all-prices page |
| Trust | 3 | Booking and cancellation terms, privacy, FAQ |
2. Ship pages with real content Competitors who get visitors from ship pages use pages pulled purely from a database. We proposed ship pages with a day-by-day itinerary as text, deck plans, cabin types, FAQs and clean URLs without spaces or trailing numbers.
3. Order pages by opportunity, not by preference Start with the homepage in both languages, the pages for ships the client really sells that have high search volume, the Okinawa travel article the client already has content for, the all-routes-and-prices page and the sailings-from-Thailand page. Only then build the KD 0–2 ships and the remaining cruise lines.
4. Use what the client already has as proof of expertise The tour operator licence goes on the About page, in the footer and in Schema. Photos from the seminars and the ship naming ceremony become an events page, video reviews from travellers are embedded on ship pages, and the 9 selling points the client wrote on the page become the outline of the “Why book with us” page.
5. A booking system in 3 levels that build on each other
- Level 1: a booking request form on each package page that instantly alerts the team by email and group chat, and sends the customer an automatic reply email
- Level 2: search sailings from a database, see real cabin availability, issue a booking number, hold the cabin for 24 hours, pay a deposit by PromptPay QR, and let customers check their own booking status
- Level 3: choose a cabin on the deck plan, pay by card or instalments, discount codes and automatic balance reminders
We recommended starting with Level 1 alongside the new site, to learn first which routes customers are interested in, then moving up once the team is answering the same availability questions so often they have no time to close sales. Building the full system on day one without knowing customer behaviour usually produces features nobody uses.
Unlike the competitor’s booking system, which Google can barely see, our package pages are built as web pages that Google can index, every one of them.
6. Prepare from day one for things outside our control An online payment gateway must be applied for in the client’s company name and takes 2–4 weeks to approve, so we recommended submitting the documents on the first day of the project. Policy decisions must also be made before writing the system, such as the deposit ratio, cancellation terms, and whether cabin allocations come from the cruise lines in advance or every booking must be confirmed with the cruise line.
7. Migrate without losing what already exists Every old URL gets a 301 redirect to the matching new page, the links from 378 domains pointing to the old site are checked before migrating, and the phone numbers that differed between posts are unified into one set across the website, the Facebook page and the Google Business Profile.
3. Expected results
This table shows the targets set in the plan. They are not results that have happened yet. At the time of writing, we have presented the plan to the client’s marketing executives, the client has invited us to present a second round, and the old site has not yet been replaced. We will come back and update this once we have Search Console data.
| Period | What we expect | Based on |
|---|---|---|
| Months 1–3 | 50–150 visitors per month from KD 0–5 keywords, such as the names of ships actually on sale | The competitor the client wants to match gets 57 visitors with a weaker site structure |
| Months 4–6 | 300–600 visitors per month as the main ship pages start to rank | The site with a page per ship gets about 450 visitors |
| Months 7–12 | 1,000–2,000 visitors per month if articles are added consistently | The cruise-only site gets 1,341 visitors with DR 0.3 |
The metrics that matter more than visitor numbers are the number of booking requests coming through the website and the share of bookings that do not depend on paid ads. The site the client wanted to match relies mainly on ads: if the ads stop, the bookings stop too.
Checklist for cruise booking agencies and tour companies
Open your website and your page and answer each point.
Content
- Prices, itineraries and departure dates are on your web pages as text, not only in promotional images
- Every ship or route you actually sell has its own page
- There is one page listing every route with its starting price
- Your content uses both ways Thai users type “สำราญ”
- No pages target keywords for products you do not sell
- Your tour operator licence is shown on the website
- Your phone number and company name match on every channel
Technical
- Every page has a title that says what you sell, and a meta description
- No sample posts, old menus or duplicate pages are left over (try searching Google for
site:yourdomain) - If you have English, it is a real separate page with hreflang, not a translation plugin layered over the original page
- Package pages in your booking system can be viewed without logging in, and Google can index them
- Your booking, cancellation and refund terms are on the website (payment providers will check this page)
If you cannot tick more than half, your site is probably still missing a fair number of customers from Google.
Questions business owners in this field often ask us
We already post on Facebook regularly. Why do we still need a website? Facebook posts sink out of sight in the feed, and Google cannot read text inside images. A website turns every trip into a permanent page people can find at any time. Your page can still be used to share links and announce promotions as before.
Competitors have had websites longer and have more links. Can we compete? In Thailand’s cruise market, the numbers say yes. A site with DR 0.3 gets more visitors than a tour site with DR 46, because it has pages matching every search. What decides it is having pages that directly answer what people search for, more than domain age or strength.
Should we build pages for popular keywords for things we do not sell, just to attract visitors? Not as sales pages. Visitors will look for something you do not have, then leave, and Google may see it as a misleading page. If you want a broader audience, write content that leads on to products you really sell, such as things to do in the ports your ships call at.
Do we need a full booking system right away? No. A booking request form that alerts your team instantly is enough to start selling. Then see which questions customers ask again and again, and add sailing search, deposits and deck plans step by step.
We have planned websites, SEO and booking systems for businesses in this field
If you run a cruise booking agency or an international tour company and want to know how many people search for what you sell, and which customers your website is still missing, start with a free website audit, or see our SEO services, web development services and software development services.

