Short answer: Avoid doorway-page penalties by giving every city page genuine local proof: real jobs you did there, the technicians who cover it, and problems specific to that market — never the same paragraph with the town name swapped. Structure pages hub-and-spoke so each one earns its existence, and delete or merge pages that cannot carry real substance.
Your plumbing company serves twelve towns. Right now you have twelve near-identical city pages, each one the same paragraph with the town name swapped, and a quiet suspicion you are one spam update away from losing all of them. That suspicion is well founded. Google's doorway-page policy exists precisely for pages like these.
Here is the good news: service area pages are not the problem. Thin ones are. A city page with genuine local substance, real jobs you did there, technicians who cover it, problems specific to that market, is not a doorway. It is exactly the page Google wants to rank and, increasingly, the page AI assistants cite when a homeowner asks who to call. This guide shows how to build them, one city at a time.
Google's spam policies define doorway abuse as pages created to rank for specific, similar search queries that lead users to intermediate pages instead of useful content. The examples name the exact scenario contractors worry about: "multiple pages targeted at specific regions or cities that funnel users to one page."
So the question was never "are city pages allowed." It is "is this page a destination, or a funnel?" If every city page on your site is the same 400 words with a swapped city name and a button that sends everyone to the same quote form, you have built the textbook example. Note what the policy contrasts doorways against: pages that sit inside "a clearly defined, browseable hierarchy." Structure and substance are the two escapes, and we will build both.
Run the blackout test on any city page. Cover every city name. Could a reader still tell which city the page describes? If yes, the page carries local substance. If no, no word count saves it.
This is where contractors waste money. They pay writers for "1,000 words per city page" and get back 1,000 words of interchangeable filler: the same generic paragraphs about "quality plumbing services" with different town names dropped in. A 2,000-word page with zero local facts is still a doorway. A 600-word page with three real jobs, a named tech, and the specific plumbing problems of that market is not. Google's systems, and AI assistants after them, look for distinguishing substance, not length. Everything below is about manufacturing that substance honestly, from work you actually did.
Each city page needs at least two or three of these. They are not decorations; they are the evidence that separates a destination page from a doorway:
Build one "Areas We Serve" hub page that lists every city with a one-paragraph summary and a link. Each city page hangs under it: /service-areas/plano-tx/ under /service-areas/. Every city page self-canonicals, links back to the hub, and links to two or three genuinely neighboring cities, the way a real service map works. Put the hub in your main nav or footer, and link to it from your core service pages. Add a breadcrumb on every page: Home > Service Areas > Plano.
This structure does double duty. First, it is the "clearly defined, browseable hierarchy" Google's doorway definition points to as the opposite of doorways. Second, it gives internal linking a job: orphaned city pages with nothing linking in are the ones that rot, stop getting crawled, and quietly fall out of the index. A hub-and-spoke layout makes every city page reachable within two clicks of the homepage.
Before any city page goes live, it must clear every item below:
areaServed set to that city, so machines know exactly where you work.Not every page deserves saving. Run your existing city pages through this decision framework:
When you merge or delete, point a 301 redirect at the hub page, update every internal link that referenced the old URL, and resubmit your sitemap. Clean removal beats a graveyard of noindexed pages that still sit in your navigation.
The practical range: 10 to 15 city pages with genuine local proof will beat 60 templated ones every time. Google's doorway policy punishes scale without substance, and AI assistants only cite pages that give them something quotable.
As many as you can give real local proof, and not one more. For most single-market trades, practitioner guidance consistently lands on 10 to 15 strong city pages rather than 50 thin ones. The constraint is not writing budget; it is honesty. If you cannot name two real jobs, a tech who covers the area, and one local-specific problem for a city, you should not have a page for that city yet.
Grow the set over time. Every new page should be built the way the strong ones were built, not cloned from them. Contractors who add five proof-backed city pages a year end up with a service area section that compounds; contractors who publish forty templated pages in a weekend end up with a cleanup project. For the long view on building location content the right way, our contractor SEO checklist covers the full program.
Here is the dimension the ranking guides skip. AI Overviews and assistants cite distinct, fact-rich pages. Templated city pages with swapped names give AI systems nothing quotable, so competitors with real local proof win the citation. First-party proof, job counts, technician names, local issue specifics, is exactly the content AI answers reference.
Two mechanics make it work. First, direct answers: a per-city FAQ written in plain questions gives AI an extractable answer when a homeowner asks how much a water heater install costs in their city. Second, entity data: consistent NAP plus LocalBusiness schema with areaServed tells AI assistants which cities you genuinely serve, which is how you get recommended when someone asks ChatGPT or Perplexity for a contractor near them. The professional version, testing real homeowner prompts across AI platforms, is what our AEO and LLM optimization service does. The foundation is the same: pages with something real to say. For the bigger picture, read how AI search is changing local SEO.
A doorway page is a thin page built to rank for a specific query that funnels visitors to another page instead of answering them. Google's spam policies call out the classic example: multiple pages targeted at specific regions or cities that funnel users to one page. If your city pages are destinations with real local substance, they are not doorways.
Build pages only for cities you genuinely serve, and only as many as you can give real local proof. For most trades that means 10 to 15 strong city pages, not 60 thin ones. One page with real jobs, named techs, and city-specific detail will outperform five templated pages and carries none of the doorway risk.
No. Pages with swapped city names are exactly what Google's doorway policy targets, and they give AI assistants nothing worth citing. Every page needs substance unique to that city: real jobs completed there, technicians who cover it, local problems like hard water or hail damage, and reviews from that city's customers.
Indirectly, yes. City pages do not change your profile's map-pack eligibility, but strong ones earn the backlinks, branded searches, and engagement that build prominence, one of Google's three local ranking pillars. Weak doorway-style pages do the opposite: they risk spam issues that can drag down the whole domain.
Expect 60 to 90 days for meaningful movement on new city pages, assuming they are indexed, internally linked, and carry real local substance. Pages in competitive metros take longer. If a page has not moved after six months, the issue is usually thin content or weak internal links, not time.
We check your service area pages against Google's doorway policy, benchmark them against the top 3 contractors in your market, and hand you a prioritized fix list, plus whether AI assistants can cite you. Free, no pitch.
Delivered within 48 hours. Yours to keep.