Case study · Built by Lightly Coded

Zero to ~500 search impressions a week, on the jobs he actually wants.

TrueFlow HVAC is a sheet-metal, ductwork, and heat-pump-retrofit specialist working across the Halifax Regional Municipality. I built the site end to end. Seven weeks after it started showing up in Search Console, it ranks for furnace-conversion searches in Bedford, Dartmouth and Lower Sackville — not the vague head terms an agency would sell, but the specific job in the specific town.

The trueflowhvac.ca homepage: a dark header listing Halifax, Dartmouth, Bedford, Lower Sackville and Hammonds Plains / Fall River, above a hero reading "Sheet Metal, Ductwork & Heat-Pump Retrofit" beside a photograph of installed ductwork.

Week seven, measured

  • 503search impressions in the week
  • 7clicks, up from 1 five weeks earlier
  • 9.7best position on 'furnace conversion lower sackville'
  • 2quote requests from the site so far

Real figures from trueflowhvac.ca's Google Search Console, week ending August 20, 2026. Across the full measured period (July 4 – August 20) the site took 16 clicks on 2,458 impressions — de-duplicated by date, because two export windows overlap. It is a young site and the numbers are still small; the trajectory is the point.

The brief

A trade with real demand, and no way to be found in it.

TrueFlow does the work most HVAC companies subcontract out: custom sheet-metal fabrication, ductwork sized and built properly, the duct side of an oil-to-heat-pump conversion. It is skilled, high-ticket work, and the people who need it are searching for it every week across the HRM.

The problem is that none of those searches say "sheet metal." A homeowner converting off oil searches *furnace conversion Bedford*. Someone with a rotting bathroom fan duct searches for the damage, not the trade. If your site is organised around what you call yourself rather than what customers type, you are invisible to all of it.

So the site was never planned as a brochure with a services list. It was planned as a map of the actual searches — every service, in every town TrueFlow serves, with a real page behind each one.

The strategy

Match the page to the search, not to the org chart.

Three decisions did most of the work, and all three were made before a line of code was written.

  1. 1

    Service × town, as separate real pages

    Seven services and five service areas — Halifax, Dartmouth, Bedford, Lower Sackville, and Hammonds Plains/Fall River. Each area page names its own towns in body text, because that is the language local search actually matches against. This is why the site ranks for 'furnace conversion bedford' and 'hvac sackville' rather than fighting for a single generic 'HVAC Halifax' term it would lose.

  2. 2

    Guides that answer the question before the sale

    Twenty-one guides covering what homeowners actually ask — what a range hood install costs in Halifax, why a bathroom fan must not vent into an attic, whether a heat pump needs new ductwork. These reach people months before they are ready to call, and they are where the site first got traction.

  3. 3

    A contractor-partner track, kept separate

    A large share of TrueFlow's work comes from other contractors, not homeowners. Those two audiences want completely different things, so they got their own route rather than being blurred into one homepage that serves neither well.

What got built

Forty-two pages, each with a job.

No filler pages. Every route exists because a real search leads to it or a real customer needs it.

  • Seven service pages

    Ductwork installation, furnace-conversion ductwork, duct sealing, HRV/ERV installation, ventilation, custom sheet-metal fabrication, and commercial sheet metal — each written around the job as the customer describes it.

  • Five service-area pages

    One per community, each naming its towns in text a person and a search engine can both read, and each prioritising the services that community actually buys.

  • Twenty-one guides

    Cost guides, diagnosis guides, and code-adjacent explainers, cross-linked both ways with the services they relate to, so a reader who arrives cold has somewhere sensible to go next.

  • A for-contractors route

    The partner track, with its own framing and its own call to action, so trade enquiries do not have to squeeze through a homeowner funnel.

How it was built

Server-rendered, tested, and honest about its sources.

The same standards I hold my own site to.

  • Next.js App Router, TypeScript strict

    Server-rendered HTML, so every word is in the initial response — for Google, and for the AI answer engines that increasingly sit between a homeowner and a contractor.

  • Thirty-six tests, including content guardrails

    Not just unit tests. Tests that catch content mistakes — a service page linking to itself, two area pages accidentally sharing an identical service priority. Two of them caught real errors mid-edit on the most recent pass.

  • Structured data on every page type

    Service, Article, FAQ, and Breadcrumb nodes with a real local address, so the business is legible to machines as a specific HRM trade rather than a generic company.

  • Primary sources, read and cited

    The cost and code guides cite what was actually opened and read — the ventilation institute's own airflow tables, the Nova Scotia building-code regulations. Where a widely-quoted figure could not be verified for Nova Scotia, the guide says so rather than repeating it. That honesty is the differentiator against the pages currently outranking us.

The results

Small numbers, moving in one direction.

In the week ending August 20, 2026 the site drew 503 search impressions and 7 clicks, at a weighted average position of 24.9 — its best week on every one of those measures. The weekly click count went 1, 2, 3, 5, 7 across the preceding five weeks. That is compounding, not a spike.

The queries are the part I care about most. 'Furnace conversion bedford' has produced 212 impressions; 'furnace conversion lower sackville' 187, reaching position 9.7 — page one. Add 'furnace conversion dartmouth ns', 'home heating bedford', 'furnaces near me bedford', 'dryer vents halifax', 'hvac sackville'. Every one of those is a homeowner with a specific job in a specific town. That is the whole design showing up in the data.

The site has produced two quote requests so far. I am not going to dress that up: it is a seven-week-old site with small absolute numbers, and there is real work still to do — I know of two service pages Google has not indexed yet, and I know why. But the direction is unambiguous, and it is pointed at the jobs the owner wants to be quoting.

Search impressions per week
477
Clicks per week
6

Complete Mon–Sun calendar weeks from trueflowhvac.ca's Search Console. These are not the same seven days as the export windows quoted above, so the last point here — 477, the week of August 10 — is a different week from the 503 of August 14–20, not a drop. Part-weeks are omitted rather than drawn as dips they aren't.

The takeaway

You do not win 'HVAC Halifax'. You win the job in the town.

The instinct with a local trade site is to fight for the biggest term in the city. It is almost always the wrong move: it is the most contested phrase in the market, and it is not even how most people search when they have an actual problem.

What works is the specific job in the specific place, given a real page, written in the customer's words, and linked into the rest of the site properly. It takes more pages and more thought up front. It also starts working within weeks instead of years.

That is the same approach behind every contractor site I build.

Your turn

Want to know what your trade site is missing?

Run the free visibility check. It reads your live site the way a search engine does and tells you, in plain English, what is holding it back — no account, no mock data.

Request a free audit

Preferred way to reach you
Run a Visibility CheckCall