Case study · Built by Lightly Coded

Over $40,000 in quoted work, eight weeks after launch.

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. Eight weeks in, it has produced more than $40,000 in quoted work — including five leads in a single week, every one of them from organic search and the site's own form. It gets there by ranking 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.

Eight weeks after launch

  • $40,000+in quoted work since launch
  • 5leads in one week, all from organic search
  • 11clicks in the week, up from 1 six weeks earlier
  • 517search impressions in the week

Two sources, deliberately kept separate. Search figures are from trueflowhvac.ca's Google Search Console for the export window August 23–29, 2026 — its best week on impressions, clicks and average position, and a window that does not overlap the previous one. Leads and value come from the owner's own lead ledger as of August 31, 2026: that is quoted and booked work, not closed revenue, and it covers everything since launch rather than a single week. Five of the leads are confirmed as organic search through the site's own form; two earlier ones pre-date source tracking. I am not claiming the week's 11 clicks produced the five leads — that arithmetic doesn't close, and some of those enquiries reached him by routes Search Console never sees.

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

The number that matters isn't an impression count.

Eight weeks after launch the site has produced more than $40,000 in quoted work. Five of those leads arrived in a single week — August 23rd to 29th — and the owner confirmed every one of them came through organic search and the site's own form. Four had been out to walk the job within days. That is the whole point of the exercise, and no impression count carries a fraction of that weight.

The search numbers underneath it are the best the site has had: 517 impressions and 11 clicks in that same week, at a weighted average position of 23.5 — an improvement on every measure at once, which is unusual. The weekly click count went 1, 2, 3, 5, 7, 11. That is compounding, not a spike. It was also the first week the money pages out-earned the guides, and the first service-page clicks in the project's history.

The queries are why it works. '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', 'hvac sackville'. Every one is a homeowner with a specific job in a specific town.

Two things I won't dress up. The $40,000 is quoted and booked work, not money in the bank — quotes don't all close. And I can't tell you that the week's 11 clicks produced the five leads, because that arithmetic doesn't close: eleven clicks converting to five jobs isn't a credible rate, so some of those people reached him by routes Search Console simply doesn't record. The leads are real and the owner confirmed they came through the site. I just can't draw you a clean line from a click to each one, and I'd rather say so than sell you a funnel diagram I can't back.

Search impressions per week
477
Clicks per week
6

Complete Mon–Sun calendar weeks from trueflowhvac.ca's Search Console, de-duplicated by date because the export windows overlap. These are not the same seven days as the export windows quoted above, so this series is not directly comparable to the 517 of August 23–29 — and it stops earlier, because the weeks of August 17th and 24th are part-weeks in the exports. 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