A contractor who clones one page five times and swaps in Woodland Hills, Van Nuys, West Hollywood, Long Beach and Burbank is building exactly what Google's spam policies call doorway abuse: pages "created to rank for specific, similar search queries" that lead visitors toward a real destination instead of serving as one. Done right, service area pages for contractors work the opposite way: one real page per city, built around what actually happens there, not a template with the city name swapped in.
Key Takeaways
- Google's spam policies name doorway abuse as pages built to rank for near-duplicate search queries that funnel visitors toward another page, and city pages that only swap out the city name can read the same way.
- Google's Business Profile help page caps a service area at about 2 hours of driving time from where the business is based, so claiming to serve a city and having a real page about that city are two separate things.
- A city page earns its place with detail specific to that city: local permit or code notes, the neighborhoods or job types the crew has actually handled there, and proof like photos tied to that location.
- A service page and a city page answer different questions. The service page explains the work itself; the city page explains what that work looks like in one specific place.
- Linking service pages and city pages into a structure a visitor can browse, rather than scattering isolated landing pages, is part of what keeps the group from reading as a doorway funnel.
The one-paragraph shortcut that becomes a doorway page
Most contractor sites start with one honest intention: list every city served so the phone rings from all of them. The fastest way is a single "service areas" section, sometimes just a row of city names with no real content behind any of them.
The problem shows up once a set of near-identical pages built from one template starts competing with itself. Google's spam policies call out "having multiple domain names or pages targeted at specific regions or cities that funnel users to one page" as a named example of doorway abuse. A roofer with five city pages that differ only in a find-and-replaced city name fits that description closely enough to be a real risk.
The fix isn't to avoid city pages. It's to stop treating the city as a variable in a template and start treating it as the subject of the page.
What Google's doorway page policy actually restricts
The doorway abuse policy doesn't say a contractor can't have more than one location page, and it sets no page limit. It restricts a pattern: pages that exist to capture a search query and hand the visitor off elsewhere, rather than pages that stand on their own as a useful destination.
That distinction matters for how a city page gets built. A page that says "we proudly serve Van Nuys" and then repeats the same paragraphs of general company copy used on the West Hollywood page is the pattern Google is describing, even without any intent to game the algorithm. A page built around Van Nuys specifically, with details that wouldn't fit any other city's page, is not.
Google's Business Profile guidance adds a second boundary. For a business without a public storefront, it says to hide the business address and set a service area instead, capping that area at "about 2 hours of driving time from where your business is based." That's a limit on how far a service area can stretch, not on page count, but a city genuinely outside a realistic radius makes a poor candidate for its own page.
What makes a single city page worth keeping indexed
A city page justifies its own URL when it holds something a visitor there can't get from a general page:
- Local rules that apply there.Permit or code notes that differ by jurisdiction only make sense on one city's page.
- Real job history in that city.Naming the property type worked on there (a duplex retrofit in Van Nuys, a hillside drainage job in Woodland Hills) is specific in a way generic copy can't fake.
- Photos tied to that location, rather than a stock image reused across every page.
- A short note on drive time or coverage, framed around Google's own service-area guidance rather than a vague promise.
- A city-specific FAQ or two, answering a question that homeowner would actually type.
None of that needs a large team, just real information about that city, not a mail-merge of the homepage.
Our content marketing for contractors work runs on the same idea: each piece answers a question customers already search and uses real details from your jobs, and a city page is really a location-specific piece of content marketing.
Where service pages end and city pages begin
A service page (drain cleaning, panel upgrades, roof replacement) and a city page cover different ground, and the two shouldn't be merged into one page trying to do both jobs at once.
A service page explains the work itself: what it involves, how it's usually priced, what a homeowner should ask before hiring someone. It should hold up regardless of which city a visitor lands from. This is the territory covered by our on-page SEO service: a page structured with the headings and internal links that match how people actually search for that work.
A city page explains what that work looks like in one place: which neighborhoods, which permit office, and what the company has actually done nearby. It assumes the visitor already knows the service and wants to know if this contractor is right for their city.
Folding both into a single page usually weakens both halves. The service explanation goes thin because half the page is city detail, and the city detail goes thin because half the page explains the service. Two focused pages, cross-linked to each other, do the job neither one can alone.
Linking service area pages for contractors into one grid
A set of city pages and service pages only avoids the doorway pattern if a visitor, and Google's crawler, can move between them the way a person actually would. A city page for Van Nuys should link to the specific services offered there, and each service page should link to the cities where it's offered, forming a grid instead of a stack of disconnected pages.
This is where our SEO servicedoes the structural work: it builds one page per service and city search and links them with descriptive anchors ("roof replacement in Long Beach," not "click here").
A simple hub page, something like an areas overview linking to every city page, gives Google's spam policy language a clear answer to the question a doorway page can't answer: does this page connect to a "clearly defined, browseable hierarchy," or does it just funnel traffic to one destination? Our own areas page runs on that same logic.
A plan for your first five pages
Building an entire city and service grid at once is how these pages end up thin: several cities crossed with several services, written in a rush, starts to look like a template. A narrower start works better.
Pick the one service that brings in the most calls, and the cities where that service gets the most work done. Build those pages first, with real detail specific to each city rather than placeholder text meant to be filled in later. Link them to each other and to a hub page. Only once those pages hold up on their own does it make sense to add the next service or city.
That order also protects against the exact pattern the doorway policy targets. A handful of genuinely different pages, built one at a time, doesn't resemble "multiple domain names or pages targeted at specific regions or cities that funnel users to one page." A batch of templated pages built in an afternoon usually does.
If you're not sure whether your current service area pages read as useful pages or as a doorway pattern, we offer a free 15-minute audit that checks your existing city and service pages, how they're linked, and whether any of them read as duplicate or templated content.
You can request that audit here.
Frequently asked questions
Google doesn't publish a required page count for service area pages, and no agency can responsibly promise a specific number, so the right count depends on how many cities you can genuinely write something specific about. The number follows your real service area, not a formula.
City pages mainly risk trouble when they duplicate each other in substance, not merely in topic, since Google's spam policies target pages built to rank for near-identical queries without adding real value beyond funneling a visitor elsewhere. The risk sits in thin, templated pages, not in having several pages about similar work in different cities.
Reusing the same stock or job photos across every city page is technically allowed, but it removes one of the clearest signals telling a visitor, and Google, that the page describes a specific place rather than a copied template. Real photos from a real job in that city are worth more than a large photo library reused everywhere.
No, and trying to build that full grid at once, every service crossed with every city, is usually how these pages end up thin and templated in the first place. Start with the service and cities that matter most, build those pages with real detail, and add more only once the first set holds up on its own.
A service page explains the work itself, such as how a panel upgrade or a drain cleaning job usually goes, while a city page explains what that work looks like in one specific place. Keeping the two separate lets each page do its own job well instead of doing both halfway.
It should, since Google's own Business Profile guidance caps a service area at roughly 2 hours of driving time from where the business is based. A website listing cities well outside that radius creates a mismatch between the two, and that mismatch undermines the credibility of both.
Both, but the link to related service and city pages matters more for avoiding the doorway pattern than a link back to the homepage alone. A page that only points home looks like a funnel, while a page that also links sideways to a service page and nearby city pages looks like part of a real site.
Read the page the way Google's spam policy is written: ask whether it would still make sense if the city name were swapped for a different city you serve. If every sentence still reads true after that swap, the page is too generic to hold its own and is a candidate for splitting into real, distinct city pages.

