- We built 116 city pages from one template for our own site. Over 58 days they earned zero clicks. In the most recent 20 days, 85 of the 102 still on the template got no impressions at all.
- We rewrote 14 of them as individual pages. Same URLs, same design. Over matched 20-day windows, impressions went from 452 to 864 and average position from 56.7 to 51.7. Still no clicks. Still moving.
- Google’s spam policy names the pattern directly: “multiple domain names or pages targeted at specific regions or cities that funnel users to one page” is doorway abuse.
- For a service-area business, the map pack is not available outside the city you are physically in. Google allows one profile, hides the address, and caps the service area at about two hours’ drive. Every other city is organic only.
- A location page is real when most of its sentences could not be moved to another city. Ours now share about a quarter of their sentences with each other; the template pages shared all of them.
- The right number of location pages is the number you can write properly. We went from 116 to 14, with the rest queued, and would do it again.
Location pages work when each one says something true about that city that the others do not. Pages that differ only by the city name are treated as doorway pages, earn impressions but no clicks, and hold the whole site back. Write fewer, real pages, use Service schema with areaServed, and expect the map pack only where you have staff.
Every agency that sells local SEO for multiple locations eventually faces the same temptation. You have a service, you have a list of cities, and you have a page builder that can multiply one page by fifty. The maths is irresistible. So we did it, on our own site, and then measured what happened. This is that measurement, and the rules we now follow because of it.
It sits inside our wider work on how search changed this year. The GEO vs AEO vs SEO guide covers the landscape; our AI Overviews test found something about city queries that matters here too.
What Does Google Say About City Pages?
Two policies and one self-assessment question cover it, and none of them are vague.
Doorway abuse. Google’s spam policies define it as “when sites or pages are created to rank for specific, similar search queries,” and the first example given is “having multiple domain names or pages targeted at specific regions or cities that funnel users to one page.” That is a description of a city-page template with the city name swapped in and the same contact form at the bottom.
Scaled content abuse. Defined as “when many pages are generated for the primary purpose of manipulating search rankings and not helping users,” with the example of “using generative AI tools or other similar tools to generate many pages without adding value for users.” A page generator is one of those similar tools.
The helpful content question. Google’s own checklist asks: “Are you producing lots of content on many different topics in hopes that some of it might perform well in search results?” Swap “topics” for “cities” and it is the whole strategy.
None of this says location pages are banned. Google’s Business Profile rules assume you serve customers in many places. What is banned is the shortcut: pages that exist to catch a query, not to tell someone in Durham something about Durham.
What We Built and What We Measured
In mid 2026 we used a multi-page generator on digitalrhodium.com to publish two page sets: SEO services and PPC management, each for 58 US cities. One template per service, one CSV of cities, 116 URLs. Each page ran to about 1,800 words with the city and state substituted from the dataset. Diffed against each other, two pages in the same set were identical apart from the city token.
They indexed fine. Search Console showed impressions within weeks, mostly on PPC queries like “ppc management orem” and “baton rouge ppc management.” What they never showed was a click. Over 58 days, across all 116 pages, the click count was zero.
On 21 August we replaced 14 of them with individually written pages: six PPC cities and eight SEO cities, chosen because Search Console showed real demand there. Same URLs, same design system, same length. The difference was the content: a market introduction for that city, the industries that actually advertise there, what a realistic budget looks like in that auction, and FAQs a buyer in that city would ask. Measured by shared sentences, the Orem and Richmond PPC pages now overlap by about 26%. Before, they overlapped by 100%.
Then we watched two 20-day windows in Search Console: 1 to 20 August, while the 14 URLs were still template pages, and 21 August to 9 September, after the rewrite.
| Page set | Window | Impressions | Avg. position | Clicks |
|---|---|---|---|---|
| 14 URLs, as template pages | 1 to 20 Aug | 452 | 56.7 | 0 |
| Same 14 URLs, rewritten | 21 Aug to 9 Sep | 864 | 51.7 | 0 |
| 102 URLs still on the template | 21 Aug to 9 Sep | 272 across 17 pages; 85 pages at zero | 75.0 | 0 |
The rewrite roughly doubled impressions and moved the average five positions. The two pages with the most demand moved the most: Orem PPC went from position 53.6 to 43.7, Richmond PPC from 56.9 to 46.7 with six times the impressions. Not every page improved; Baton Rouge slipped four places and Durham held flat. And there is a bigger caveat we owe you.
What this does not prove. In the same weeks we also fixed the H1 on every city page, added Service schema, published four articles and started linking the city pages from the services page. We cannot isolate the rewrite from those. What we can say is that the 102 pages that got every one of those fixes except the rewrite stayed at position 75, and most of them stayed invisible. And that on a domain with an authority score of 2 out of 100, position 52 still produces no clicks. This is a direction, not a destination.
Why Do Identical City Pages Fail?
Three reasons, and only one of them is about penalties.
There is nothing to rank. Modern retrieval works at the passage level, a point we made in the GEO guide and that applies to classic search too. For “ppc management durham,” Google needs a passage about PPC in Durham. A template page has a passage about PPC that mentions Durham once in the heading. Every competitor who wrote even two real paragraphs about the Research Triangle has a better passage.
Duplicate pages compete with each other and with your real pages. Our generic PPC services page picked up 360 impressions for city queries at position 88, because Google could not tell which of the 59 near-identical pages was the answer. Once we gave the six real PPC pages a “by city” block on the services page, with exact-match anchors, that confusion had somewhere to resolve.
Thin pages set the site’s quality baseline. A site that is 116 template pages and 4 articles is, to Google, mostly template pages. Google’s helpful content guidance is explicit that site-wide signals exist. Every real article we publish is diluted by the 102 pages that are not.
A test we now apply before any page goes live: what would you write for this city that you would not write for the last one? If the honest answer is “the name,” the page should not exist yet.
Can a Service-Area Business Rank in Every City’s Map Pack?
No, and it is worth being precise about why, because a lot of multi-location SEO advice quietly assumes you have an office in every city.
Google’s Business Profile guidelines say service-area businesses “should have one profile for the central office or location with a designated service area,” that you “should hide your business address from customers,” and that the service area “shouldn’t extend farther than about 2 hours of driving time from where your business is based.” A rented mailing address does not help: “a virtual office” is “not eligible for a Business Profile,” and a co-working desk only counts if it has signage, receives customers and is staffed by your people during business hours.
For us that means one profile, in Houston. For the other 57 cities, the map pack does not exist as an option, and any agency promising it is promising a profile Google will suspend.
That reframes what a remote city page is for. It is not supporting a map listing. It is the entire presence. And our AI Overviews test found that on city-plus-service queries Google shows the map pack and skips the AI summary, so the organic results under the pack are where a remote business lives. A template page competing there against local agencies with real profiles is bringing nothing to the fight.
What Makes a Location Page Real?
Here is the checklist our 14 pages were rebuilt against. It is the practical version of “would you write this for another city.”
- A market paragraph that could only be about this city. For Baton Rouge PPC, that meant the petrochemical corridor, the legal auction, and an LSU calendar that moves consumer demand every semester. For Orem, it meant bidding against funded software companies twenty minutes up the road in Lehi.
- Industries chosen for the city, not pasted from the last one. Providence gets marine and coastal trades. Durham gets life sciences services. If the list is the same eight industries everywhere, it is decoration.
- Numbers that differ by city. Budget ranges, auction competitiveness, where the demand concentrates. Our ChatGPT citation test found specific numbers were what got small sites cited; the same detail is what makes a city page credible to a person.
- FAQs a buyer in that city would actually ask. “Should a Baton Rouge industrial firm run search or social” is a real question. “What is PPC” repeated 58 times is not.
- Honest schema. Service markup with areaServed naming the city, provider pointing to your organization. Not LocalBusiness with an address you do not have; our schema guide explains why that ends in a suspension.
- A path in and a path out. The services page links to each real city page by name. The city page links back to the service and to the relevant guides. A city page nobody links to is an orphan whatever its quality.
- A uniqueness floor you can measure. We diff each new page against its nearest sibling and want at most a third of sentences shared. Shared boilerplate (the process, the CTA) is fine; shared substance is not.
Two things we deliberately did not do. We did not invent local statistics; a made-up figure is worse than none, and we removed one that had crept into the old template. And we did not use client results, because our clients did not agree to be marketing material.
Have a set of city pages and no idea which ones are earning their place?
We run the same Search Console analysis on your location pages, show you which are doorway pages by Google’s definition, and give you a rewrite order based on where the demand actually is.
Request a location page auditHow Many Location Pages Should a Website Have?
As many as you can write to the standard above, and no more. That number is usually far smaller than the number of cities you would like to rank in.
Our own order of operations, which we would recommend to any service-area business:
- Start from demand, not from a map. Search Console told us which cities were already producing impressions. Orem, Baton Rouge, Richmond, Durham, Providence and Raleigh were the PPC cities with real queries; that is why they were first.
- Write the city you are physically in properly, first. It is the only one where a page and a profile can work together. Ours is Houston.
- Rewrite in batches of six to eight, then wait a month and measure before the next batch. It took us about a working day per page to do it honestly.
- Decide what to do with the remainder. The candid options are to noindex template pages until they are rewritten, or to leave them indexed and accept the drag on the site while you work through them. We are currently doing the second and re-evaluating monthly; the impressions they earn are close to worthless, but they map where demand exists.
When Does Programmatic Local SEO Actually Work?
It works when the data behind each page is genuinely different per city, and the page is a presentation of that data rather than a pretext for a keyword. Property listings, weather, event calendars, store inventory, pricing that varies by market, regulations that differ by state. In those cases the template is honest: the reader in Durham really is getting different information from the reader in Orem, because the underlying record is different.
Service businesses rarely have that data. What they have is the same service delivered in different places, and the only thing that varies is the market context, which has to be written by a person who has looked at that market. That is why our template failed and our rewrite did not: the generator was being asked to invent differences that did not exist in the dataset.
The honest use of a page generator for a service business is scaffolding: it builds the URL, the layout, the schema and the navigation, and a person supplies the paragraphs that make the page about somewhere. That is how our 14 pages are built now, and how the next batch will be.
Frequently Asked Questions
Are city landing pages doorway pages?
They are if they exist to catch a query and funnel everyone to the same form. Google’s example of doorway abuse is “pages targeted at specific regions or cities that funnel users to one page.” A city page that tells a reader something true and specific about that market, and has its own reason to exist, is not.
How many location pages should a business have?
One for each city you can write properly, starting with the cities where Search Console already shows demand and the city where you are physically based. We cut from 116 to 14 real pages and are adding six to eight a month. Volume without substance earned us zero clicks in 58 days.
Can I rank in the local map pack for a city without an office there?
No. A service-area business gets one Business Profile at its base with a service area of roughly two hours’ drive. Virtual offices are not eligible. For any city beyond that radius, the organic results under the map pack are the only place you can appear.
Is programmatic SEO against Google’s guidelines?
Not in itself. Google’s scaled content abuse policy targets pages generated “for the primary purpose of manipulating search rankings and not helping users.” If each generated page presents data that genuinely differs, it is fine. If the only difference is a substituted city name, it is the pattern the policy describes.
Should I noindex duplicate city pages while I rewrite them?
It is a defensible choice. Noindexing removes the thin pages from the site’s quality footprint immediately, at the cost of the impressions they earn, which in our case produced no clicks anyway. Keeping them indexed preserves the demand data in Search Console. Either way, rewrite in order of demand and re-index each page as it becomes real.
How much of a location page should be unique?
Most of it. We aim for no more than a third of sentences shared with the nearest sibling page, and our rewritten pages sit at about a quarter. Shared process steps and calls to action are fine. The market description, industries, numbers and FAQs should not be movable to another city.
The Verdict
Local SEO at scale is real, but the scale has to be in the writing, not in the generator. Our 116 template pages were indexed, impressed and ignored. The 14 we wrote as if the city mattered are the only ones moving, and they are still a long way from a click, because the domain behind them is young and the competitors in those cities are local and established.
The rules we would hand anyone starting this: write the city you are in first, because it is the only one where the map pack is available to you. Then write the cities where demand already exists, one honest page at a time, and diff each one against the last. Everything else is a doorway, and Google has already published the definition.
- Google Search Central, Spam policies for Google web search — doorway abuse and scaled content abuse
- Google Search Central, Creating helpful, reliable, people-first content — self-assessment questions
- Google Business Profile Help, Guidelines for representing your business on Google — service-area businesses, virtual offices
- Digital Rhodium, How to Rank in AI Overviews — 24-SERP panel including city-plus-service queries
Page performance figures are from Google Search Console for digitalrhodium.com, pages in the two sets compared over 1 to 20 August and 21 August to 9 September 2026. Sentence overlap was measured by comparing sentences of six or more words between page pairs. Current as of 12 September 2026.