Skip to main content

กำลังโหลด...

Southern Whale

Case Study: SEO Audit of an Outbound Tour Company, a 13-Year-Old Domain and Thousands of Tours Google Could Not Read

Travel Agency / Outbound ToursThailandseo-audit + technical-seo

Outbound tour company selling tour packages and private group tours (business name withheld for privacy)

Southern Whale · Digital Agency
Illustration of an outbound tour company website on a desktop monitor, tablet and phone, next to a whiteboard trend chart

478Pages audited in detailHomepage, articles, every tour listing page and a random sample of 100 tour pages

29,700Monthly searches, tour names for 9 main countriesMain keywords of the country pages · Ahrefs Thailand, 21 September 2026

3Tasks chosen to do firstFix article metadata · serve content from the server · consolidate URLs with 301s

13 yearsDomain ageAn asset the business already owns, nothing to build from scratch

Who this case is for

Tour companies, travel agencies, and any business with thousands of products on a website built with Next.js, React or another JavaScript framework.

This case shows that a page people can see in full is not necessarily a page Google can see in full. Standard site-audit tools often miss this problem, because the page looks perfectly normal in a browser.

At the end of this article there is a 2-minute check you can run yourself to see whether your site has the same issue.

We do not name the company, its licence, competing websites, or the sites that link to it.


1. An outbound tour company with everything in place, but little traffic from Google

This company sells outbound tours, tour packages and private group tours. The site is built with Next.js, has thousands of tour programmes in its system, and already has country pages with content and FAQs. It has more raw material than most tour companies.

Item What we found
Domain age 13 years 3 months
URLs in the sitemap 3,841 (individual tour pages 3,463 · tour listing and country pages 207 · articles 162)
Pages audited in detail 478 pages
Keywords ranking in Thailand 45 keywords (Top 3 = 5 keywords · positions 4–10 = 18 keywords)
Visits from Google (Ahrefs estimate) 210 per month
Domain Rating 13

We checked 4 sources

  • Page audit of 478 URLs, covering both the HTML the server sends before JavaScript runs and the fully loaded page
  • Lighthouse on mobile, measuring the homepage and the Japan tour page
  • Ahrefs, Thai market, for keywords, links and ranking pages
  • Live search results for country tour keywords

2. What we found

People searching for country tours could not find the sales pages

Almost every keyword that brought visitors landed on the homepage. The country pages, which should be the main sales pages, were stuck at positions 20–30.

Google rankings for the main keywords (longer bar = higher position)
Ahrefs Thailand, 21 September 2026 · numbers in brackets are monthly searches
บริษัททัวร์ต่างประเทศ (outbound tour company) · homepagePosition 6
ทัวร์ต่างประเทศ (outbound tours) (1,600) · homepagePosition 12
ทริปญี่ปุ่น (Japan trip) · country pagePosition 28
ทัวร์ จีน (China tour) · country pagePosition 30
ทัวร์ญี่ปุ่น (Japan tour) (9,900) · country pageNot in Top 100
Blue = homepage · Yellow and red = country pages, which should be the main sales pages · bar length scaled from position 1 to 100

The good news is in the same search results. Country tour keywords have very low difficulty (KD). “ทัวร์ญี่ปุ่น” (Japan tour) has a KD of 2, and a DR 10 site with no external links pointing to that page ranks at position 5 on Google’s first page. Domain strength is not the barrier. The problem is how the site delivers its content for Google to read.

Major issue 1: Country pages deliver content through JavaScript only

We opened the Japan tour page in 2 ways. The first is the HTML the server sends before JavaScript runs, which is what Google receives on its first pass. The second is the page users see once it has finished loading.

Japan tour page: what Google receives vs. what people see
Source HTML (before JavaScript runs)
The text "Loading... Searching..."
An average of 79 characters per page
No H1 on 206 of 207 pages
No links to tour pages
Page users see (after loading)
H1 and country description
Frequently asked questions (FAQ)
A list of 475 tours
30 links to the first batch of tour pages
Source HTML checked for all 207 tour listing and country pages · 21 September 2026

Google can render JavaScript, but it has to wait in a queue, and it tends to give more weight to what is in the HTML from the start. The result: content for 28 countries that the team had prepared was barely counted, so the main sales pages stayed stuck at positions 20–30.

The individual tour pages work the same way. We sampled 100 of the 3,463 pages. None of the 100 had an H1 in the source HTML, and they averaged only 131 characters of text, with no day-by-day itinerary. That makes it hard for tour pages to compete on specific searches such as “ทัวร์มาเก๊า 3 วัน 2 คืน” (Macau tour 3 days 2 nights).

We did not draw conclusions from the HTML alone. Reading only the HTML, a site like this looks like a blank page. Opening it only in a browser, everything looks fine. So we always compare both before writing a conclusion.

Major issue 2: All 161 articles told Google they were the same page

161 of 161 article pages used the same page title, and their canonical tag pointed to the blog index page, both in the source HTML and after the page finished loading. Google therefore treated every article as a copy of the index page.

The effect is already visible in Ahrefs. Two articles about theme parks in China, with 450 and 500 monthly searches, ranked with the blog index URL instead of the actual article.

The report also advised not to write new articles until this is fixed, because new articles would hit the same canonical problem straight away.

Other issues ranked in the report

Issue Evidence Priority
Duplicate meta descriptions, and country page titles too short 199 of 207 pages use the same description · titles have no year, selling point or price, while first-page competitors include all of these High
Country pages very slow on mobile Japan tour page: Performance 12, LCP 12.0 s, CLS 0.78 High
Old URLs not redirected Old-format URLs return 200 with a canonical to the homepage · old URLs that still rank return 404 High
Non-www domain not redirected Returns 200 with only a canonical to www · Ahrefs sees non-www pages ranking Medium
Sitemap sends inaccurate signals lastmod changes every time the file is requested · includes country pages with no tours at all Medium
Most links come from automated domains 2,428 domains but DR 13 · around 10 domains are links from real Thai websites Medium
Traffic concentrated on the homepage Almost all keywords with visits land on the homepage; if it drops, the whole site is affected Medium
Lighthouse mobile Homepage Japan tour page Good threshold
Performance 42 12 90+
Largest Contentful Paint 6.8 s 12.0 s 2.5 s or less
Total Blocking Time 3,020 ms 5,170 ms 200 ms or less
Cumulative Layout Shift 0.018 0.78 0.1 or less

What is already working well

Item Details
Old domain and a clear licence The tour operator licence number is shown in the content, which builds trust
Solid homepage basics Has an H1, page title and meta description; all 56 images have alt text; Lighthouse SEO 100
Structured Data Homepage has TravelAgency and AggregateRating, country pages have BreadcrumbList, tour pages have Product
Individual tour pages Unique page titles and self-referencing canonicals on all 100 of the 100 sampled pages
Ready for AI Search robots.txt allows the bots of the major AI Search providers
Country page content already exists The remaining work is getting that content into the HTML from the start, not rewriting everything

3 tasks to do first

Out of all the issues, we picked 3 tasks that take little effort but unlock the most pages. Speed and links follow in the next phase.

Task How Timeframe
1. Fix article metadata Generate each article’s page title, description and canonical from its slug with Next.js generateMetadata, then resubmit the sitemap 1–2 days of development · 2–6 weeks to see results
2. Serve country page content from the server Render the H1, description, FAQ and first batch of tours on the server · write a title and description for each country · reserve image space to reduce CLS 2–3 weeks · 2–4 months to see results
3. Consolidate URLs with 301s Build a table mapping old URLs to new URLs, set up 301s, then write a script to check every route 2–3 days

What does not need doing yet: no need to buy more links, and no need to disavow spam links, because there is no sign of a Manual Action.

We have fixed a problem like task 2 before, on a car information site where 49 main pages also had no HTML for Google to read. See the sedan information site rebuild case.


3. Expected results

This report does not set monthly target numbers. This is all the report expects, and none of it is a result that has already happened.

Task Expected outcome
Fix article metadata Articles get ranked as individual pages and can genuinely act as entry points to country and tour pages
Serve country page content from the server Country pages move from positions 20–30 towards the first page for tour keywords of the 9 main countries, which together get 29,700 searches a month
Consolidate URLs with 301s Rankings and links that old pages built up are passed on to the current pages

How we will measure it: indexed pages and clicks per page from Search Console, compared before and after at 4 and 8 weeks; rankings for country tour keywords; and mobile Lighthouse for the country pages, which currently score 12.

Rankings depend on competition and on changes at Google, so nobody can guarantee them. But the search results show that sites with a lower DR than this one still reach the first page for these keywords, as long as the page delivers its full content for Google to read.

This report has just been delivered. We will update this case when we have real numbers.


Check it yourself in 2 minutes: can Google see your whole page?

  1. Open your most important product or category page on a computer
  2. Right-click and choose View Page Source (or type view-source: in front of the URL)
  3. Press Ctrl+F or Cmd+F and search for the heading text you see on screen

If you cannot find it, or you only find “Loading…”, that content is built by JavaScript after the page loads, and Google may not be counting it yet.

Checklist for sites with a large catalogue

  • Category and product pages have their H1 and main text in the HTML from the start
  • Each article has its own page title and canonical, not pointing to the index page
  • Meta descriptions are not duplicated across hundreds of pages
  • Every old URL redirects with a 301 to the new URL, not returning 200 or 404
  • The www and non-www versions of the domain go to the same place with a 301
  • The sitemap only lists pages with real products, and lastmod changes only when the content changes

Questions travel businesses often ask us

Can’t Google read JavaScript now? It can, but it has to wait in a rendering queue, and it does not render every page every time. Sites with thousands of pages are at a big disadvantage. Sending the H1, description and key links in the HTML from the start is the safest approach, and many AI bots still cannot read JavaScript at all.

Do we need to move away from Next.js? No. Next.js can already render on the server. The work is moving the important parts of the page to be built on the server, not switching frameworks.

We have links from thousands of domains. Why is our DR still low? Because most of those links come from automated domains that nobody visits. The links that genuinely help come from travel media, partners and real Thai websites, and in this case there were around 10 such domains.

Should we write more articles first? Not while existing articles still point their canonical to the index page, because new articles would not be counted either. Fix the structure first, and then every article, old and new, starts working.


We audit websites like this for travel businesses

If your site has a large catalogue but gets little traffic from Google, start with a free website audit. We always compare what Google receives with what people see. Or see the details of our SEO Audit service.

About the Author

Southern Whale

Digital Agency

Have a similar project?

Free consultation · we scope the work before quoting