Service-area pages: how to rank in cities you have no office in
They work, they are widely done badly, and Google has gotten much better at spotting the lazy version.
Why the template approach stopped working
The old play was one page per city, identical copy, city name swapped. Fifty pages in an afternoon. That approach now earns you a thin-content problem and, at scale, sitewide quality issues — you are asking Google to index fifty near-duplicate pages that help nobody.
The pages that still rank are the ones that could only have been written about that city.
What makes a service-area page real
Specifics only a local operator knows. The housing stock and its typical age. The neighborhoods you actually work in. The permit office and its turnaround. Seasonal issues particular to that area — hard water, clay soil, freeze depth, storm patterns.
Then proof from that market: jobs completed there, reviews from customers in that city, photos of local work. This is the part competitors cannot copy, and it is the part most pages skip entirely.
How many to build, and in what order
Fewer, better, in priority order. This is a core part of how we run roofing SEO and HVAC SEO programmes. Take your five highest-value markets and write five genuinely good pages before touching the sixth. One strong page beats twenty thin ones, and it gives you a template of substance to extend.
Combine with service intent where volume supports it — "roofing in Naples" and "roof repair in Naples" can be one page or two depending on search volume. Check the data rather than assuming.
The honest limitation
You will rank more easily where you have a verified physical address. Map pack results are geographically anchored, and no amount of on-page work fully substitutes for proximity. Service-area pages compete in organic results below the map, which is still meaningful traffic — but anyone promising map pack dominance in a city forty miles away is selling you something.
The short version
A free audit tells you where your leads are leaking. No deck.