Local SEO Case Study — One HVAC Listing, Thirty Towns: Covering Greater London on the Map
This heating and cooling company had engineers driving across Greater London every day. On Google they existed in one borough. We rebuilt the listing and the site around the territory they actually served, and the map filled in.
Heating & Cooling Company
Client
Multi-Town Campaign
Timeline
HVAC
Industry
Meet the Business
An established heating and cooling company running a fleet of vans across Greater London. Boiler installs and servicing, air conditioning, heat pumps, commercial maintenance contracts. Engineers were already travelling thirty and forty minutes to jobs. The catchment was genuinely large.
Their Google presence did not reflect any of that. They had one office, one listing, and a website that mentioned a single borough. To a search engine, this looked like a business that served one small area — because that is all they had ever told it.
The Challenge: The Radius Problem
This is the single most common and most expensive problem in local SEO for trades, and almost nobody realises they have it.
We ran a visibility grid across the region: dozens of search points spread over the towns the company served, each one checked for where the listing appeared in the map pack. The starting picture was stark.
- Strong around the office, nothing beyond it. The listing held top-three positions in the immediate area and fell off a cliff past roughly two miles.
- No pages for any town except the head office. Dozens of towns the company worked in daily had no page on the site at all.
- The service area in the Business Profile was a default radius rather than a named list of the boroughs and towns actually covered.
- Emergency intent was unaddressed. No page targeted “no heating”, “boiler not firing” or “emergency heating engineer” — the highest-value searches in the trade.
- Commercial and domestic were mixed together on a single services page, so neither audience found what it was looking for and neither search matched cleanly.
The obvious fix — generate fifty near-identical town pages by swapping a place name into a template — is the fastest way to get the whole set ignored or demoted. Google has been filtering doorway pages for years. Scale without substance does not work, and it costs you the pages that would have worked.
What We Actually Did
1. Told Google the Real Territory
- The service area was rebuilt as a named list of every borough and town the engineers genuinely cover, replacing the default radius. This is the first thing Google reads when deciding whether to show you to someone outside your immediate area.
- Categories were split correctly across HVAC Contractor, Heating Contractor, Air Conditioning Contractor, Boiler Supplier and Furnace Repair Service — each one opening a different set of searches.
- Every service was entered individually with its own description, including the emergency and out-of-hours work that had never been listed.
- Job photos were uploaded from across the region rather than only from the yard — installs, plant rooms, external units, on site in the towns that mattered.
- Google Posts ran weekly on seasonal themes: pre-winter boiler checks, air conditioning servicing before summer, heat pump grant information.
2. Built Town Pages That Deserved to Exist
Every town page had to earn its place. Our rule was simple: if a page could not say something true and specific about that town, it did not get written.
- Real local detail on every page — the housing stock in that area, the boiler types commonly found there, typical response time from the nearest engineer, the neighbouring areas covered from the same route.
- Genuine local proof: jobs completed in that town, reviews from customers in that town, photographs taken there.
- Service schema with a named area served, not LocalBusiness markup. A town page is not a second premises, and marking it up as one is a misrepresentation that search engines increasingly catch.
- Internal linking between neighbouring towns so the cluster read as one coherent territory rather than fifty orphan pages.
- Domestic and commercial separated into their own tracks, each with its own service pages and its own language.
3. Captured Emergency Intent
A household with no heating in February is not comparison shopping. They search, they call the first credible result, and they book. We built dedicated pages for that moment — no heating, no hot water, boiler lockout, emergency callout — each one loading fast, leading with a tappable phone number, and stating response times and out-of-hours availability in the first screen.
The Results
The clearest way to show this is the coverage grid. Each point on the map is a real search location; the colour shows where the listing ranked in the map pack when someone searched from that spot.

Each pin is a separate search run from that exact location. A business that ranks brilliantly at its own address and nowhere else produces a single bright dot on an empty map. What matters is how far the colour reaches — that is the size of the area where you can actually be found.
Search Console Confirms It
Map coverage is one half of the picture. The other half is what happens on the website, and Search Console reports that independently.

Before and After
| Measure | At the start | After the campaign |
| Map pack reach | Roughly two miles from the office | Across the Greater London service area |
| Town pages on the site | 1 (head office only) | A researched page per covered town |
| Service area in Google Business Profile | Default radius | Named boroughs and towns |
| Emergency intent pages | None | Dedicated pages for each emergency scenario |
| Domestic vs commercial | Combined on one page | Separate tracks, separate pages |
| Clicks from search | Negligible | 564 in the reported period |
Services Provided
- Multi-location Local SEO
- Google Business Profile rebuild and service area definition
- Researched town and service page content
- Technical SEO and schema implementation
- Emergency and high-intent landing pages
- Rank grid tracking and monthly reporting
What the Client Said
Key Takeaways
Your service area is a claim you have to substantiate
Telling Google you cover thirty towns means nothing on its own. Coverage is earned town by town, with a real page, real local proof and correct markup for each one. That is slower than generating fifty templates — and it is the only version that holds.
Ranking at your own address tells you nothing
Every business ranks well when searched from its own car park. The only measurement that matters is what happens at the edges of your territory, and you cannot see that from your own phone.
Emergency searches convert differently
Someone with no heating does not read your About page. Load fast, put the number first, state your response time. Everything else can wait for the return visit.
Split domestic and commercial
They are different buyers with different language, different timescales and different searches. One combined page serves neither of them well.
How far does your coverage actually reach?
We will run the same grid across your service area and send you the map. It usually takes one look for the gap to become obvious.
- A coverage grid across every town you want work from
- Where your visibility stops, and why
- Which towns are winnable first, in priority order
- No contract, no obligation
Ready to Achieve Similar Results?
Every business is unique, but success follows proven strategies. Let’s discuss how we can create a custom solution for your specific goals and challenges.

