Field notes 11 min read

Why We Build a Page for Every Service in Every Town

We tried the one-mega-page approach. It cost a client six months of rankings. Here's what we do now.

Josh Tulip
Josh Tulip
Founder, Built Local
Published 16 May 2026

Transforming how businesses generate revenue from their online presence for the last 15 years.

The first proper site we ever built had a single "Areas We Cover" page listing 22 towns across the North East. Six months later it ranked for nothing. Not the trade name. Not any of the towns. Not even the company name on the second page.

We rebuilt it as one page per service per town. Three months after that, the same business was ranking top three on Google for "boiler repair sunderland", "boiler repair whitley bay", "boiler service north shields" and a long tail of similar phrases. Same trade. Same writer. Same backlinks. Different architecture.

This is what we learned, why it works, and how we keep it from becoming spam.

The problem with the mega page

A page titled "Boiler Repair Across The North East" with 22 town names listed underneath looks tidy to a human and meaningless to Google. It can't rank for "boiler repair sunderland" because the phrase appears once, with no surrounding context, no local landmarks, no local pricing, no Sunderland-specific reviews.

Worse: it's competing with itself for every related term. Google has to guess which of the 22 towns the page is "about". Its answer, sensibly, is "none of them in particular".

The mega page also fails the human test. A homeowner in Whitley Bay searching for "boiler repair whitley bay" lands on a page that mentions Whitley Bay in a list of 22. There's no proof you actually work there. No photo of a job in their town. No Whitley Bay-specific phone number or service area. They bounce to a competitor whose page is about Whitley Bay.

The Sunderland vs Whitley Bay test

For one client (a heating engineer covering Tyneside), we ran a clean test. Two service+area pages went live the same week:

  • Boiler Repair Sunderland - 800 words, mentions Penshaw Monument, references the typical Victorian terrace boiler placement common in Roker, includes a quote from a real Sunderland customer, lists three completed jobs in SR1-SR6 postcodes with photos.
  • Boiler Repair Whitley Bay - 750 words, mentions the seafront, references coastal salt-air corrosion as a recurring issue, includes a Whitley Bay customer quote, lists three completed jobs in NE25-NE26 with photos.

Both pages used the same H1 template, the same FAQ block, the same schema markup, the same internal links. Both ranked top 5 within ten weeks. The mega page they replaced had ranked nowhere in eight months.

Same trade. Same brand. Same backlinks. The only variable was: does the page actually say something specific about this place?

The line between useful and spam

Google's doorway-page guidance is clear: pages that exist only to capture search traffic, with thin or duplicated content, will be filtered or penalised. The line we use:

If you removed the place name from the URL, title and H1, would the body of the page still contain at least 300 words that only make sense in that town?

If yes, you have a real local page. If no, you have a doorway. The 300 words can be: local landmarks, local pricing nuance, local building stock peculiarities, local reviews, local case studies, local emergency response times, local parking notes for tradespeople. There's always something - it just takes a 30-minute call to find it.

Our internal-linking pattern

Every service+area page links to:

  1. The parent service hub (e.g. /boiler-repair) - the umbrella page for that service across all areas.
  2. Two or three neighbouring area pages (e.g. Whitley Bay links to Tynemouth and North Shields). Always real geographic neighbours, not random.
  3. The main contact page with a localised anchor ("Book a Whitley Bay engineer").

Every service hub links down to all area variants. The homepage links to the top three service hubs only. This keeps the site's link equity flowing toward the deepest pages without flooding the nav.

What we deliberately don't do

  • Auto-generate pages from a list. The "spin" approach - one template, one variable, one page per row in a CSV - is exactly what Google's spam filters were built for. Every page gets a human pass.
  • Duplicate the FAQ section verbatim. Each area's FAQ swaps in at least one location-specific question ("Do you charge a call-out fee in Whitley Bay?" with a real, location-specific answer).
  • Use the same hero photo on every page. Even if it's the same van, vary the angle and background. Google's image search ranks unique photos.
  • Pretend to cover places we don't. If the engineer won't drive to Berwick, no Berwick page. Google figures out fake service areas through user behaviour signals (high bounce, no clicks-to-call) faster than people think.

How we sequence the build

For a new client we don't launch with all 30 pages on day one. We launch with:

  1. One service hub per main service (usually 3-5 pages).
  2. One area page for the top 3-5 towns, only for the highest-margin service.

That's typically 8-15 pages at launch. We then add 2-4 new area pages a month based on what's actually getting impressions in Search Console. This avoids the "huge site, no signals" problem of dropping 60 pages on Google overnight, and it lets us double down on areas that show early traction.

The shortcut

If you're sitting on a one-mega-page site and wondering why Google ignores it, this is almost certainly the issue. Built Local handles the architecture and the writing for you - £99 setup, £49/month, live in 72 hours. We typically launch with 10-12 pages and add more as the data tells us where to push.

Related guides

Get Started - £99