Every trade business gets the same cold calls promising "page one of Google." Home services lead generation is less mysterious than those calls suggest. Here’s what actually generates leads for contractors, HVAC companies, plumbers, roofers, and every other home-service trade: the full system, in build order. Nothing here requires an agency; all of it rewards doing things properly.
Homeowners don’t hire the best contractor in town. They hire the best contractor they can find, and finding happens online.

Layer 1: Google Business Profile, where local leads actually start
The map pack (the three businesses shown with the map) captures the biggest share of "near me" searches, and it runs on your Google Business Profile, not your website. Claim it, then treat it like a storefront: every service listed, real job photos added monthly, hours accurate, and every field completed. Profiles that post photos regularly and answer their Q&A section consistently outperform bare listings, Google rewards signs of life.
Layer 2: Reviews, the engine behind everything
Reviews decide both your map ranking and whether the homeowner who found you actually calls. The businesses that win aren’t lucky; they have a system: ask every satisfied customer, the same day the job finishes, with a direct link texted to their phone. Make it a closing step on every job like collecting payment. Reply to every review, including the bad ones, calmly and professionally, because future customers read your replies as a preview of hiring you.
Layer 3: A website built to convert, not just exist
The profile and reviews get you found; the website closes the lead, or leaks it. The difference between a site that books jobs and a brochure:
One thumb to contact
Tap-to-call visible immediately on mobile, and a short estimate form: name, phone, what they need. Every extra form field costs leads.
Test that form and the call button every week. Forms break silently after updates and hosting changes, which is why form testing is part of my website maintenance service. If the site gets visits but the phone stays quiet, my piece on why contractors’ websites don’t get the phone ringing goes through the usual causes.
Proof they can see
Real job photos beat stock photography every time. Before/after galleries, license and insurance up front, and your best reviews on the page doing the selling.
A page per service
"Water heater replacement," "panel upgrades," and "roof repair" are separate searches by people with money ready. One "Services" list can’t rank for all of them; individual pages can. This is the structure behind every trade site I build, contractor, HVAC, plumber, and the rest of the home-services lineup.
Speed on real phones
Trade searches happen on mobile, often urgently. A site loading in five seconds loses the emergency call to whoever loads in two.
Layer 4: Service-area pages, done honestly
You serve fifteen towns but your site only mentions one. A page per genuine service area (with real local detail, real jobs done there, not one paragraph copied fifteen times), is how trades rank beyond their home city. The copy-paste version gets ignored by Google; the honest version is a lead machine for the surrounding towns competitors ignore.
Layer 5: Paid ads: the accelerator, not the foundation
Google Local Services Ads (the "Google Guaranteed" badge) charge per lead, not per click, and sit above everything, for most trades they’re the best paid dollar available. Standard Google Ads work for high-ticket services like roofs and remodels, but only pointed at dedicated landing pages, never the homepage. Run ads after layers 1 to 4 exist; ads pointed at a weak website just buy expensive bounces.

Where the leads actually come from, and how fast
Every channel gets sold to trades as “the one that works”. They do different jobs on different timescales, and the order you build them in matters more than any single one of them.
| Channel | First lead in | What it costs | Honest verdict |
|---|---|---|---|
| Google Business Profile | Days | Free, plus the effort of reviews | Do this first, always. The map pack is where “near me” ends up |
| Reviews | Weeks | Free, plus asking every customer | The single biggest lever on map-pack position and on whether anyone rings |
| A site that converts | Immediately, on traffic you already have | One build | Pointless to send traffic anywhere else until this is right |
| Service-area pages | 2 to 4 months | Content time | Compounds. One page per real service in one real town |
| Google Ads | Hours | Per click, forever | Buys you time while the free channels mature. Not a foundation |
| Lead-gen platforms | Hours | Per lead, shared with 3 to 5 rivals | Fine as a floor, never as the plan. You are renting someone else’s customer list |
What a service-area page needs to be worth publishing
Thin city pages are the most common wasted effort in this trade. Twelve copies of the same page with the town name swapped carry no weight and can drag the rest of the site down with them. A page earns its place when it has:
- One service and one place in the title, in the words people type, “emergency boiler repair in Watford”, not “our services”
- Something true that is only true there: a job you did, a street or estate you know, a callout time from your actual base, a local regulation or building type
- Prices, or at least a band. Nobody rings a page that will not say
- A photo of your own work, not stock. Stock photography on a trade site reads as “not local” faster than anything else
- Click-to-call in the thumb’s reach, not a form at the bottom
If you cannot write something genuinely local about a town, do not publish the page. Two strong ones beat twelve thin ones.
Knowing which calls came from where
The reason most trades cannot tell what is working is that the phone rings and nobody asks. Three things fix it, and none of them need a CRM:
- A separate tracked number on the Google Business Profile from the one on the website. Two numbers, two columns in a spreadsheet, and the argument is over.
- Click-to-call tracked as a conversion in analytics, not just a page view. A “visit” is not a lead.
- One question in the booking script: “how did you find us?” Thirty seconds, and it beats every attribution tool for a business this size.
Once you know, the budget decision makes itself. Before that, you are guessing, and the channel that shouts loudest usually wins the budget rather than the one that brings the work. If the website is the part letting you down, a build made for the trades starts at $999, and I will tell you first if the site is not actually your problem.
The order matters in home services lead generation
Profile first (free, fast), review system second (compounds forever), website third (converts everything the first two generate), service-area pages fourth (expands the map), ads last (accelerates a machine that already works). Most trades do it backwards, ads first into a weak site, and conclude "online doesn’t work." It works; it’s just a system, not a lottery ticket.
The principle reaches well beyond the trades: catch people while they are ready, and remove every step between interest and contact. Gyms lose members to the same friction, as I cover in why gym websites fail to turn visitors into members. Online shops lose orders the same way, which is why my WooCommerce guide for the Pakistani market spends so much time on a checkout that works one-handed.
If the website layer is your gap, that’s my lane: trade sites built for exactly this playbook, from $499 with the estimate-request flow and per-service structure already in place.




