The proposal lands on a Tuesday. Sixty city pages, one for every town in the county, two hundred dollars each. There's a chart in the deck and the chart goes up. Twelve thousand dollars, and by month four you're supposedly everywhere.

It sounds like a shortcut you'd be an idiot to pass up. Sixty pages, sixty towns, sixty more chances to be the roofer who shows up when somebody types "roof repair near me" from a driveway in a town you've driven through maybe twice.

And then your gut taps you on the shoulder.

"Hang on. Sixty nearly identical pages? Isn't that the thing people get in trouble for?"

Your gut's right, and here's the interesting part. It's reading a real policy document it has never seen. Google publishes, in plain English, two separately named policies that match the pattern in that proposal, complete with written examples. Nearly every article you'll find on whether city pages are doorway pages paraphrases those policies instead of quoting them, and the paraphrase is where all your confusion comes from.

So we're going to quote them. Then look at what's actually happened to contractors on both sides of the line, which is stranger than a penalty and worse than it sounds. Then you get a five-question test you can run on any page you own in about ninety seconds.


The short version (for the impatient)

  • City pages are allowed. Google has said so in public, more than once.
  • Google names your failure mode twice. "Doorway abuse" and "scaled content abuse" are both published policies.
  • "No matter how it's created" is in the policy text. That clause covers AI and hand-written pages alike.
  • The usual outcome is silence, not a penalty. Google mostly declines to index thin city pages.
  • The test is intent and usefulness. Which is why Google keeps declining to name a number.

That's basically the whole article. The rest is your receipts, because on this topic receipts are the only thing that'll settle an argument with the vendor who sent that deck.


Google has a name for it, and the name is worse than "city pages"

Start with the document itself, which you can open right now. Google's Search spam policies carry a heading called doorway abuse. Here's the definition, word for word:

"Doorway abuse is when sites or pages are created to rank for specific, similar search queries. They lead users to intermediate pages that are not as useful as the final destination."

Read the second sentence twice, because it's the whole thing. The question is what your page is. An intermediate page. A turnstile.

Then Google gives examples. Two describe the contractor city page situation so precisely you could staple them to the proposal:

"Having multiple domain names or pages targeted at specific regions or cities that funnel users to one page"
"Creating substantially similar pages that are closer to search results than a clearly defined, browseable hierarchy"

Now hold the proposal up against that. Sixty pages, each aimed at one town, each cut from the same template, each ending at the same contact form. Every visitor funnels to one page, zero hierarchy to browse.

That difference matters when you're arguing with the person who sent the deck. "Google frowns on thin content" is arguable. Matching a pattern Google named and wrote examples for is a much shorter conversation, and the same document says violating sites "may rank lower in results or not appear in results at all."

None of which makes a page about a town a liability. It means the page has to be the destination, rather than the turnstile in front of one. And if the question underneath all this is really where the towns you cover belong on a normal five-page contractor site, we went spot by spot through that in our guide to where to list the areas you service without looking spammy.


The newer policy that catches the AI shortcut

Doorway abuse has been on Google's books for years. The second policy is newer, sits further down the same page, and is the one almost everybody skips right past. It's called scaled content abuse, and here it is verbatim:

"Scaled content abuse is when many pages are generated for the primary purpose of manipulating search rankings and not helping users. This abusive practice is typically focused on creating large amounts of unoriginal content that provides little to no value to users, no matter how it's created."

Five words at the end of that do more work than everything before them. No matter how it's created.

Think about what that clause takes away. There are two standard defenses when somebody questions a batch of city pages, and they point in opposite directions. "These are AI-assisted, but a human reviewed every one, so they're original." Or: "we didn't use AI at all, a writer produced these by hand." Google's wording preempts both. How you made them is explicitly beside the point. The test is whether many pages were generated primarily to move rankings rather than to help somebody.

Which is fairer than the standard everybody assumed, because it means AI gets off the hook here. Using a model to help you write up a town where you've done nineteen jobs and can name the permit office is fine. Feeding it your list of sixty town names is the thing being described.

The policy's own example bullet makes the failure mode concrete:

"Creating many pages where the content makes little or no sense to a reader but contains search keywords"

"Makes little or no sense to a reader" sounds like a low bar, and city page templates fail it in a very specific way. You've read this sentence a hundred times: "When your Riverton home needs a reliable roofing contractor, our experienced Riverton roofing team delivers quality Riverton roof repair." A reader finishes it knowing exactly nothing about your company, your work, or Riverton. It parses, and that's all it does. That gap is what both policies are pointed at.


And yet Google also says localized content is not duplicate content

Here's where most of what you'll read on this falls apart, because the articles ranking for it each hold one half at a time. You get either the scary version ("city pages will get you banned") or the salesy version ("build one for every town"). Google's own statements support neither.

In June 2024, John Mueller was asked whether near-identical pages for different locations count as duplicate content. His answer, reported by Search Engine Journal, was about as short as Google answers get:

"Localized content is not considered duplicate content."

That's a real clearance, and it's the sentence every agency selling sixty pages will quote at you. Notice what it clears, though: the similarity. The intent question stays wide open.

Now the other half. Asked about targeting multiple locations with one website, Mueller drew the line by scale rather than by rule. State-level landing pages he cleared outright: "if you're talking about a handful of states, or maybe even all states, it's something where you have 50 different versions of the homepage with your local address with phone numbers, opening hours, kind of that additional local information on them. From our point of view that's generally fine." Then the other side of it, in the same answer: "If you had landing pages for every city in every state, then that would start looking a bit iffy for our web spam algorithms."

Fifty states, fine. Every city in every state, iffy. Google has never drawn the line in between, which will drive you crazy and is also, if you sit with it, consistent. Look at the reason Mueller gives for clearing the fifty: each of those pages carries its own address, its own phone number, its own opening hours. Somebody had to go and get that. A page for every city in every state could carry a town name and little else.


What actually happened to the people who did it

Policy language tells you what Google says. What Google actually does to sites is a separate record, and four published pieces of evidence carry it. One of them cuts against everything above, so we're including it.

Map of a roofing company service area with neighboring towns marked

Every town on this map is a real place with real roofs. Whether it deserves a page depends entirely on whether you know anything about it.

The 2022 wipeout. After the September and October 2022 spam and helpful content updates, an analysis published on Search Engine Land, drawing on Schieler Mew's review of over 200 service-area-business sites, found duplicate location pages deindexed en masse. The nuance: it hit lower-authority sites. Higher-authority sites, and sites with genuinely unique location pages, came through fine. Read that as a warning: the big established brands get away with thin pages because everything else about their site carries them. Yours has to earn it the normal way.

The 200-page AI experiment. Sterling Sky published a case study on AI-generated service area pages at a business that put up over 200 of them. The pages sat in Search Console under "Crawled - currently not indexed," which is Google's polite way of saying it looked and decided to skip them.

200+
AI-generated service area pages that barely moved traffic and didn't move rankings, per Sterling Sky's case study. Google didn't penalize them. It declined to index them.

The manual action. That same article documents a second business that did get hit, with a manual action for thin content on its service area pages. So the penalty you're worried about is real. It's just rare: for every business that gets the letter, plenty more get the silence.

And the evidence against us. Sterling Sky also published a case of 35 service area pages at 84% average content match that drive significant traffic and conversions. Eighty-four percent identical, working fine. If we left that out you'd find it eventually and rightly stop believing the rest of this. Which tells you something real: near-duplication alone is a survivable sin. The killer is near-duplication plus zero purpose plus zero authority.

Put the four together and the honest conclusion is quieter than the scary one. Buy sixty thin city pages and the likely outcome is silence. Google crawls them, shrugs, moves on, and you've spent twelve thousand dollars on URLs that sit there unread. A penalty at least announces itself. Silence just quietly bills you.

If you have pages that were supposed to be working and the traffic stayed at zero, the indexing side of that is a diagnostic of its own, and we walked through it step by step in why your contractor website isn't showing up on Google.


Cover the town name with your thumb

Here's the version you can actually use. Open one of your city pages and cover the town name with your thumb, everywhere it appears. Read what's left.

Is there anything left that a person in that town could only have gotten from this page? If the page goes generic the moment the name disappears, you have your service page wearing a name tag. That one move settles most cases before you reach the questions.

For the rest, five. Answer them honestly, because the entire value here is in refusing to flatter yourself.

1. Would you send this page to a customer? Not a lead, a customer. Someone in that town is on the phone asking what you've done around there. Would you say "here, take a look at this page"? If the thought makes you wince, Google will have the same reaction, minus the politeness.

2. Does it contain anything you had to actually find out? The subdivision where the 1998 builder used the same failing shingle across 400 homes. What the permit office charges and how long inspections take there. The storm date everyone in that town remembers. If writing it required zero phone calls, zero drives, and zero digging through your own job history, it carries zero originality in any sense Google cares about.

3. Does it link into a browsable structure, or dead-end at a form? Google's wording asks whether pages are "closer to search results than a clearly defined, browseable hierarchy." So: does anything link to this page besides a bulk footer list? Does it link out to specific jobs, specific services, the neighboring town? Or does every path out go to the same contact form? A page with exactly one exit is an intermediate page by definition.

4. Could you defend it to a human reviewer? Manual reviews are vanishingly rare, but the standard a reviewer would apply is the one worth borrowing, because it's what the algorithm is built to approximate. "It serves customers in Riverton" would get a polite shrug. "We've done 19 roofs there, four are on this page with photos, and the FAQ answers the hail claim question everyone in Riverton asks" would hold up. If you can only say the first kind of thing, hold the page until you can say the second.

5. Does it exist because a customer needed it, or because a spreadsheet had a row? This is the one that decides it, and you already know your answer.

If the separate question nagging at you is how many towns belong on your site at all, and how that should line up with your Google Business Profile, that one has its own answer in our piece on how many service areas to list and where they belong.


My honest take (after building a lot of these)

We've built city pages for contractors and we've talked contractors out of building them, sometimes in the same week. I have a side here, and it's the slow one.

Here's the admission. Early on we built a client a set of these that were technically unique. Different intros, different order, different phrasing, genuinely different word counts. A plagiarism checker would have cleared every one. They were also completely useless, because we'd written around the town instead of about it, and the difference between those two is invisible while you're doing it and obvious six months later. Google ignored them, the exact silence described above. The client had paid for that work and I'd told him it would help.

What I took from it is that "unique" and "original" are two different words, and everything in Google's policy language is aimed at the second one.

"Unique means the text matches nothing else. Original means somebody found something out. Only the second one has ever moved a ranking."

So what we do now is unglamorous. We ask the owner which towns actually produce work, which is usually four or five. We pull the real jobs from those towns, the real photos, the reviews from customers who live there. When the material from a town fills a page, we build it. When it runs out after two paragraphs, the town lives in your service area list instead, which is a perfectly respectable place for a town to live. That's the whole method. It's a hard thing to sell at two hundred dollars a page, which is probably why the deck in your inbox pitched something else.

And if that proposal is still sitting unsigned in your inbox: send it to us, along with the town list, before any money moves. We'll tell you which towns have enough real material behind them to earn a page and which are just rows in the spreadsheet. Better to hear it now than from Search Console in six months.


You already have sixty of them. Now what?

Maybe you're reading this a year late. Panic-deleting is its own mistake, so triage instead. Every page lands in one of four buckets, and three data points sort them: each page's impressions and clicks in Search Console over the last six months, whether it's indexed or sitting in "Crawled - currently not indexed," and whether anything on the site links to it beyond a bulk footer list.

  • Keep. Indexed, getting impressions, passes the five questions. Leave it alone, and add one more real detail while you're in there.
  • Merge. Six thin pages for six towns in the same county, zero links, zero visits. Combine the real material from all six into one good regional page, then redirect the six into it.
  • Noindex. The page has a job for your customers (someone might reach it from a menu or a map) but stands little chance of earning a search result. Let it live and take it out of the index.
  • Delete. Zero index history, zero links, zero visits, zero material you'd defend. Remove it, and the traffic you lose rounds to zero.

One rule on redirects, because this is where people undo the whole exercise: point each 301 somewhere relevant. Merged town pages go to the regional page that absorbed them. The trap is sending all sixty to your homepage: mass-redirecting a pile of city URLs into one page is itself the funnel pattern the doorway policy describes, so you'd be finishing the thing you set out to dismantle.

Expect your count to drop hard. Sixty becomes eight, or five, and your five outperform the sixty because they finally have something to say when a person arrives. If you'd rather someone ran the triage with you as part of a wider local search cleanup, that's most of what our local SEO work actually consists of.


Step back from the policy documents. This was never a question about page count, and the reason nobody can give you a number is that a number was never the thing being measured.

It's a question about who the page was made for. A person in that town, or a row in a spreadsheet. Every line quoted above is Google describing that distinction in language precise enough to enforce, and on this topic they've been unusually explicit. Doorway abuse. Scaled content abuse. Made to rank, not to help. No matter how it's created. That's practically a memo.

The useful part is that checking which side you're on takes ninety seconds and zero software. Your thumb over the town name, and some honesty about what's left.

Want to know which of your city pages are earning their place? Book a call and we'll go through the ones you have, page by page, and tell you which to keep, which to merge, and which never had to exist. Or skip the call and just send us the list of URLs, and we'll flag the obvious ones. Either way, take the verdict and run it yourself if you want, zero pitch attached.

Straight from the source

Fun Systems contractor marketing dashboard showing monthly revenue, lead pipeline, and missed-call text-back

Want city pages that Google actually indexes?

We build contractor sites where every location page has real local material behind it, plus the review feed, missed-call text-back, and follow-up that turn the traffic into booked jobs.

See How the System Works

Frequently Asked Questions

Are city pages against Google's guidelines?

No. Nothing in Google's spam policies bans a page about a town you serve, and John Mueller has said plainly that localized content is not considered duplicate content. What the policies name is a pattern: near-identical pages built to rank for similar queries and funnel every visitor to one destination. A template with the town name swapped in fifty times is that pattern.

Will Google penalize me for having multiple city pages?

A manual action is possible, and Sterling Sky documented a business that got one for thin service area pages. The far more common result is that Google simply declines to index the pages, leaving them in Search Console as "Crawled - currently not indexed." No penalty to recover from, no traffic to lose. You paid for pages that do nothing.

What is the difference between a city page and a doorway page?

The destination and the substance. Google describes doorway abuse as pages targeted at specific regions or cities that funnel users to one page. A doorway page is an intermediate step: it catches a query, then pushes everyone to the same contact form. A real city page is the destination: cover the town name and something should still apply only to that town.

Is it okay to use AI to write city pages?

AI isn't the deciding factor, and the policy says so in the text: the problem is unoriginal content that provides little to no value to users, "no matter how it's created." Using AI to help write up a town where you have real jobs and real local knowledge is fine. Generating sixty pages from a town list is the problem, hand-written or not.

Why are my city pages not getting indexed?

Usually because Google crawled them, compared them to each other and to your main service page, and decided they added nothing. Search Console reports that as "Crawled - currently not indexed," a judgment call rather than an error, and resubmitting won't change the verdict. Check whether anything links to the page and whether it says something your service page leaves out.