Here's a pattern we see constantly: a business serves 15 cities, does great work in all of them, and ranks in exactly one. The one with the office. Everywhere else, they're invisible, not because competitors are better, but because nothing on their site tells Google (or the searcher) they cover that area at all. Service area pages fix this. Built wrong, they also get you flagged as doorway spam. Here's how to do it right in 2026.
Why one homepage isn't enough
If your business serves a region instead of a single storefront, one homepage that says "serving the greater metro area" is nearly worthless for search. Search is specific. A person in Aurora searches "roofer in Aurora," not "roofer in the greater metro area," and Google matches specific queries with specific, relevant pages. Without a page built around that exact city, you're competing against businesses that have one, using a page that doesn't even mention the place.
This gap shows up most for home and property services, construction, and other trades that cover a real geographic radius from one base. If you already work in 12 towns, the demand is proven; you're just not capturing the search traffic that matches it.
The line between a real page and a doorway page
This is where most attempts fail, and it's worth understanding exactly why, because the wrong version is worse than having no service area pages at all.
Doorway page vs. real service area page
Same goal (rank in every city you serve), completely different outcome.
Gets flagged as doorway spam
One template, city name swapped
The same 200 words with 'Naperville' replaced by 'Aurora' replaced by 'Joliet.' Google's classifiers are built specifically to catch this pattern.
50 pages published in one day
A sudden burst of near-identical location pages reads as manufactured, not organic. It's one of the clearest doorway signals there is.
No local specifics
No neighborhoods, no local landmarks, no service nuances for that area. Just a city name pasted into a generic paragraph.
Thin content under 300 words
Not enough substance to earn its own ranking. It exists to catch a search term, not to help anyone.
Ranks and converts
Real local detail per page
Neighborhoods covered, response times for that area, jobs you've actually done there. Content only that city's page could contain.
Published in small batches
Five to ten pages a week with real work behind each one, not fifty overnight. Slower, but it survives review.
Proof specific to that area
A review, a photo, or a project from that exact city or region. Borrowed trust doesn't transfer between locations; local proof does.
600+ words of genuine substance
Enough to actually answer what a local searcher needs: what you do there, how fast, and why to pick you over the next listing.
Google's scaled content abuse policy exists specifically to catch the left column: pages that exist to rank for a keyword rather than to help a person. A folder of fifty pages with one city name changed per page has almost no unique value across the set, and search engines are built to detect exactly that pattern. Getting caught doesn't just mean those pages get filtered; it can drag down trust across your whole domain.
The fix isn't fewer keywords. It's real content behind every keyword you target.
What actually belongs on the page
A service area page earns its ranking the same way any page does: by being genuinely useful to the person who lands on it. At minimum, include:
- Coverage clarity. State exactly which city, neighborhoods, or boundary you cover from this page. Vague ("nearby areas") doesn't rank; specific does.
- The services relevant there. Not necessarily your full list if it doesn't all apply; note anything specific to that area (permit knowledge, HOA rules, local building codes).
- Local proof. A review from a customer in that city, a photo from a job there, or a specific number ("14 roofs replaced in Aurora this year"). Proof that could only belong to that page.
- Response time or availability for that area, if it varies by distance from your base.
- One clear next step. A phone number, a quote form, or a booking link, not three competing calls to action.
Six hundred words of real substance is a reasonable floor. Under that, you're usually thin; well over a thousand and you're often padding.
How many pages, and how fast
Resist the urge to list every town within an hour's drive. Start with the cities where you already have proof: past jobs, existing customers, real search volume. For most service businesses, that's somewhere between 15 and 30 cities, not 100. A smaller set of pages with real depth outranks a huge set of thin ones, every time, because ranking is relative to what else is competing for that query, and thin pages simply lose.
Publish in small batches, roughly five to ten pages a week, rather than launching all of them on the same day. A sudden spike of near-identical new pages is one of the clearest signals of manufactured content, even when each individual page is decent. Slower and steady reads as organic growth; a mass launch reads as a doorway scheme, fairly or not.
If your CRM or invoicing software can pull job counts by city, use it. A business that can say "22 completed jobs in Naperville over the past year" has an instant, honest, unique data point for that page, something no competitor can copy no matter how good their writer is. This kind of real operational detail is exactly what separates a page that ranks from one that gets filtered out.
Writing pages that don't sound templated
The fastest way to end up with doorway pages by accident is writing all of them from one master outline and swapping the city name. Even with good intentions, that pattern produces pages that read identically to a search engine's content-similarity checks. A few habits keep pages genuinely distinct:
- Write the proof section first, not last. Start each page with what actually happened in that specific city (a job, a review, a call-out) rather than starting with generic service copy and bolting the city name on at the end.
- Vary the structure slightly per page. Not every city needs the same six headings in the same order. A city with a unique zoning issue or a specific neighborhood cluster deserves a section the others don't have.
- Use AI for the first draft, not the final page, the same rule that applies to any AI-assisted content. A model can produce a clean skeleton fast; a person who has actually worked in that city needs to add the details a generic draft can't invent.
- Read each page next to its neighbor before publishing. If you can swap two cities' pages and nothing reads wrong, they're too similar and need more local specificity.
Structure and internal linking
Keep the URL pattern simple and readable, something like /service-areas/city-name/ rather than a parameter-heavy path. Link your service area pages from a central hub page (a "where we work" or "areas served" page) and from your main service pages, so both users and search engines can find the full list. Cross-link nearby service area pages to each other where it's genuinely useful, like mentioning a neighboring city you also cover, but don't force links that don't help the reader.
This works the same way local content feeds your map pack ranking: your Google Business Profile and your website reinforce each other, and localized service pages are one of the clearest signals you can add on the website side.
A realistic build order
- Week 1: List every city that has actually sent you a job or a lead in the past two years. Rank them by volume.
- Week 2: Build the top 5 to 10 with real proof, specific services, and unique local detail for each.
- Weeks 3-6: Add 5 to 10 more per week, never skipping the proof step to save time.
- Ongoing: Update pages with fresh reviews and recent jobs from that city instead of leaving them static once published.
Structured data around your service area (schema markup like areaServed) can also reinforce these pages for both search engines and AI answer engines, which we cover in our guide to structured data.
Measuring whether it's working
Track rankings and traffic per page, not just as a lump sum, so you can see which cities are actually converting and which need more work. Watch three things over the first few months:
- Impressions and rankings by page, using Google Search Console filtered to the
/service-areas/folder. A new page typically needs 4 to 8 weeks before rankings settle. - Calls or form submissions attributed to each page, using call tracking or UTM-tagged phone numbers where possible, so a page that ranks but doesn't convert gets flagged for a copy fix, not just left alone.
- Whether pages get indexed at all. If Google isn't indexing a chunk of your service area pages within a few weeks, that's usually a signal they're too thin or too similar to each other, worth revisiting before adding more.
A page that ranks for its city but never converts is nearly as useless as one that never ranks. Both are worth fixing before you move on to the next batch of cities.
Service area pages are one of the highest-leverage things a multi-city service business can build, precisely because so many competitors either skip them entirely or build the thin, penalized version. Want help mapping and building yours the right way? Our local SEO service covers exactly this, from the coverage strategy to the pages themselves, or start with an SEO kickstart to see where your current coverage gaps are.
The businesses winning search in every city they serve aren't the ones with the most pages. They're the ones where every page actually earns its spot.
FAQ
Questions, answered.
What service businesses ask us before building out their coverage area.
A service area page is a dedicated page on your website targeting one specific city, suburb, or region you serve, built for businesses that don't have a storefront in every location, like a roofer covering 12 towns from one office. It's different from a location page for a physical branch; it's about search intent and coverage, not a street address. The goal is to show up when someone in that specific city searches for your service, even though your only office is 20 miles away.
Fewer than you think, and better than you think. Most service businesses do better with 15 to 30 well-built pages covering their real, actively-served cities than with 100 thin ones covering every town within an hour's drive. Start with the cities that already send you jobs or calls, build those first with real depth, then expand. Coverage without substance is the exact pattern that gets these pages filtered out or manually reviewed.
Only if you build them wrong. The risk isn't having multiple location pages; it's having near-duplicate ones with a swapped city name and nothing else different. Google's scaled content abuse policy specifically targets mass-produced pages with little unique value, and a folder of templated city pages is a textbook example. Build each page with real local detail, publish in small batches instead of dumping fifty at once, and the risk drops close to zero.
Four things, minimum: clear coverage (exactly which area and any boundaries), which services you offer there, proof specific to that location (a review, a project, a response time), and one obvious next step, like a call button or a quote form. Beyond that, mention real neighborhoods or landmarks, note anything unique about serving that area, and link to your other relevant pages. Treat it like a mini landing page for that city, not a copy-paste of your homepage.
No, and Google doesn't let you fake that anyway; you can only have one Google Business Profile per real physical location, so you can't create a fake profile for every city you serve. Service area pages are how you earn visibility in cities where you don't have a profile. They work alongside your actual profile, not instead of it. The map pack in your home city and organic service area pages in your surrounding cities are two different, complementary channels.


