Case studiesTransport
Harlan Transport
A bus hire business moved off a tours website and onto a 29-page site built from one approved fact list: every old address redirected, every page readable by search engines and AI assistants, and a quote form that sizes the vehicle for the customer.
Outcome
Mobile performance in Lighthouse
Client
Industry
Region
Services touched
- Web
- Search
01The challenge
A bus hire business on a tours website, with 190 addresses Google already knew.
Harlan Transport arranges bus hire with a driver for groups across Melbourne and Victoria, from 7 to 57 seats, working with a network of contracted operators. The website it had was built around day tours. The work the business wanted more of, such as worksite and crew transport, corporate shuttles, funerals and airport transfers, had no real home on it.
We measured the old site on 27 September 2026, before the rebuild went live. Its sitemap listed 190 pages. Of the 209 pages that loaded, 137 had no meta description and four had no main heading, the homepage among them in both cases. Another 36 had more than one main heading, and seven items in its own menu led to a page that did not exist. On a phone, a fixed notice bar sat over the menu button.
So the rebuild had two jobs: present the business as group transport, and do it without throwing away what those 190 addresses had earned.

02The approach
Twenty-nine pages from one fact list, and an audit that fails on anything not on it.
We rebuilt the site from scratch in Next.js as 29 pages: eight vehicle sizes, ten services, five destinations and six others. Twenty-three of them come from data files through one template, so a seat count or a service line is typed once and cannot drift between pages.
The site runs under accuracy rules agreed with the client: nothing invented and nothing inferred. No prices, no street address, no opening hours, no vehicle makes or models, and no claim to own vehicles, because Harlan works with contracted operators and says so. We wrote those rules as an audit that reads the finished pages, including the structured data and the image descriptions, and fails on any breach. It checks 11 rules across every rendered page. Where the approved facts held no answer to a common question, the question was left out instead of padded.
The quote form does the sizing for the customer. It asks how many people are travelling and suggests the vehicle, counting the driver's seat: 21 passengers means a 25 seater. One table of rules decides which questions each of six trip types asks, from a one-way run to a Melbourne Airport transfer with a flight number. If an enquiry cannot be delivered, the customer is told and given the phone number, so nothing fails silently. Sixty-six automated tests cover the form, the email it sends and the redirects.
Before launch, not after, every address on the old site was mapped to its closest new page: 119 permanent redirects covering all 190 addresses in the old sitemap, plus six more that Search Console knew and the sitemap had missed. An old winery tour lands on the Yarra Valley page, not on the homepage, and a test proves that every old address reaches a real page.

03The result
Twenty-nine pages, and every one can be found, read and quoted.
The new site launched on 16 October 2026, when the client switched the domain across using the runbook we wrote for them. We crawled it on 11 November. All 29 pages in the sitemap load correctly, each with exactly one main heading, its own title and description and a canonical address. Twenty-three pages carry Service, FAQPage and BreadcrumbList structured data, and the organisation is described on every page. Across those pages there are 117 questions and answers, written into the page itself so that a search engine or an AI assistant reads them without running any JavaScript.
The homepage opens on a slow aerial film of Melbourne. It loads only once the page is usable, pauses when it is off screen, and does not play at all for visitors who have asked for reduced motion or data saving.
In Lighthouse, run five times on each device on 11 November 2026, the homepage scores 95 for Performance on mobile and 100 on desktop, both medians, with 100 for Accessibility, Best Practices and SEO in all ten runs. In Google PageSpeed Insights on 27 September the old homepage scored 69 for SEO and 82 for Accessibility on mobile. Its mobile Performance score that day was 54, but that was measured on Google's servers and the new figure on our own machine, so those two performance scores are not a like-for-like pair.
It is too early to judge the site on enquiries or rankings, and we are not showing any. The business changed what it wants to be found for, so the tour pages and the searches they attracted were retired on purpose. What can be measured today is that no old address was left pointing at a dead page, and that every page the new site publishes is complete.
Performance on mobile in Lighthouse, the median of five runs, with a film playing in the hero
Addresses in the old sitemap
190Permanent redirects covering them
119Pages with a meta description · new site
29 of 29Pages with a meta description · old site
72 of 209Pages with exactly one main heading · new site
29 of 29Pages with exactly one main heading · old site
169 of 209New site: Lighthouse 13.6.0, run from our own machine against the live homepage on 11 November 2026, five runs per device with the default mobile throttling and the desktop preset. Performance 95 on mobile (runs of 75 to 99) and 100 on desktop (all five); Accessibility, Best Practices and SEO 100 in all ten runs. Old site: crawled on 27 September 2026, 240 addresses fetched and 209 pages loaded. Its PageSpeed Insights scores that day (Performance 54 on mobile and 81 on desktop, medians of five) were measured on Google's servers and are not directly comparable with a local Lighthouse run.
The deeper outcomes
Behind the headline metric.
- All 29 pages load correctly with one main heading, a unique title and description and a canonical address
- 119 permanent redirects cover all 190 addresses in the old sitemap, each to its closest new page
- An audit of 11 accuracy rules reads every rendered page: no prices, no ownership claims, nothing the client has not approved
- 117 questions and answers across 23 pages, in the page itself and in FAQPage structured data
- A quote form that suggests the vehicle size and counts the driver's seat
- 66 automated tests on the form, the enquiry email and the redirects
- A hero film that waits for the page, pauses off screen and respects reduced motion and data saving
In the work








What's next
The next measurement is the first few months of Search Console and enquiries, read against a business that has changed what it wants to be found for. The quote form was built so that pricing can sit behind it later without the customer-facing form changing.
Related
Other engagements that ship the same kind of outcome.
Start
Want this kind of outcome for your business?
Tell us what you're trying to grow, then choose how to continue: a 30-minute call with Michael Wilkins, our founder, or a conversation with our AI strategist that ends with a written scope. No obligation either way.
