The Darkroom — Issue #29

One page per city — without generating 60 pages of filler

August 17, 2026 · 12 min read

The unit is right. The factory is not. Here is how a multi-location brand publishes city pages that survive Google's spam policies and still give AI engines something unique to lift.

We have photographed Coral Gables, Miami Beach, Fort Lauderdale, Key West, Boca Raton, the Hudson Valley, and Milan. On paper that looks like a location-page gold mine. More than once I have sat across from an owner — and more than once I have sat with our own site map — and felt the pull: just spin a page for every city we touch.

We did not do that on acromatico.com. We built pages for places we actually stood in. Venue pages. Real parks, real clubs, real streets. In the last 28 days, our Coral Gables Entrance Park post drew 76 impressions and 2 clicks in Search Console. That is a small number. It is also a real page about a real place. Sixty empty city URLs would have given us a bigger sitemap and a worse site.

This is the argument I keep having with well-meaning agencies and with the part of my own brain that likes tidy URL grids: one page per city is the right unit only when that city has something only that city can say.

The short answer

Publish a city page for every staffed location and every market you can write from first-hand work. Do not publish a city page for every city a van can drive through. Google treats large sets of near-identical city pages as scaled content abuse and, when they only exist to rank and funnel, as doorway abuse. One honest service-area page beats sixty clones.

Two Google policies, one city-page farm

People talk about "thin location pages" as a vibe. Google wrote it as two named policies, both still live on the Search Central spam policies page (last updated 15 May 2026).

Scaled content abuse is "when many pages are generated for the primary purpose of manipulating search rankings and not helping users," no matter whether a person, a script, or a model wrote them. The examples include generating many pages with generative tools without adding value, stitching content from other pages, and creating many pages whose text "makes little or no sense to a reader but contains search keywords."

Doorway abuse is when pages are built to rank for specific, similar queries and then dump the visitor onto an intermediate or generic destination. Google's own examples include "having multiple domain names or pages targeted at specific regions or cities that funnel users to one page" and "creating substantially similar pages that are closer to search results than a clearly defined, browseable hierarchy."

That second sentence is the city-page factory in one line. /plumber-miami, /plumber-hialeah, /plumber-homestead, all pointing at the same phone number and the same three paragraphs, is not a location strategy. It is a doorway grid. The March 2024 core update made the intent explicit: the policy is about the behavior — producing low-value pages at scale to manipulate ranking — not about whether a human typed them (Google Search Central Blog, March 2024). We already drew the daily-publishing line in publishing daily without becoming scaled-content spam. This is the location-page version of that line, and it belongs with the rest of The Darkroom.

The swap-the-city test

Print two of your city pages. Cover the city name. If a person from that city cannot tell which page is theirs, you do not have two pages. You have one page with a find-and-replace.

Google's people-first guidance asks a question that lands harder on location pages than on blog posts: does the content "clearly demonstrate first-hand expertise and a depth of knowledge (for example, expertise that comes from having actually used a product or service, or visiting a place)?" That line is on the Creating helpful, reliable, people-first content page. "Visiting a place" is not a metaphor. If nobody on your team has been to that city for the work, you do not have first-hand expertise to publish.

A shared layout is not the problem. Shared substance is. Keep the template. Change the facts that only that market can own.

Three honest footprints — pick one

Most "we need 60 city pages" arguments collapse when you name the actual business. There are three common shapes. Mixing them is what produces the farm.

1. Real offices (usually 2 to 12 pages)

A dental group with three clinics. A photography studio with a Miami base and a Hudson Valley associate. A franchise with staffed stores. Each location has a door, a phone, hours, a person who answers, and work that happened there. One page per location is the right architecture. This is the world we described in AI visibility for franchises and multi-location brands: one source of truth for name, address, and phone, then a locally detailed page per market.

2. One shop, a real service radius (usually 1 page, not 60)

An HVAC company in Kendall with four trucks that cover Miami-Dade. They do get called to Homestead after a storm and to Aventura for a condo tower. That does not make Homestead and Aventura into offices. It makes them part of a service area. The honest page says where you are based, how far you drive, which jobs you take in which neighborhoods, and how storm season changes the calendar. One page. A store locator that lists cities you "serve" as if they were branches is the doorway pattern Google named.

3. The hybrid (a hub plus a short list of real markets)

You have one office and three cities where you actually keep a book of work — not a hope. Publish the office. Publish those three markets with first-hand detail. Keep a service-area paragraph for everywhere else. Do not pre-build the other 57 URLs "for later." Later is when you have something true to say.

Three location-page footprints A doorway farm of sixty identical pages collapses. Three real office pages stand. One honest service-area page covers the rest. DOORWAY FARM 60 identical URLs city name swapped spam-policy risk REAL OFFICES Miami studio hours · staff · work Hudson Valley associate · venues Key West book first-hand shoots 3 unique pages each would fail the swap test citable + local SERVICE AREA One hub page radius · season · jobs 1 honest page covers the drive, not fake offices no doorway grid
Figure 1: Three footprints. The farm is a policy problem. Real offices and one honest service-area page are the two shapes that survive.

What a city page has to carry that a template cannot invent

If you pass the swap test, the page usually has most of this. If you fail it, you are missing almost all of it.

That list is also what Gemini leans on for local answers — Business Profile, reviews, consistent name/address/phone, then a crawlable page with a quotable first paragraph. We walked that sequence in how to get cited by Gemini for local businesses.

A before / after you can steal this afternoon

Here is the pattern I keep seeing. I am not naming a client. I am naming the sentences.

Before — the city-name swap:

"Looking for a photographer in Fort Lauderdale? Our talented team is proud to serve Fort Lauderdale and the surrounding areas. We capture your special moments with creativity and care. Contact us today to book your Fort Lauderdale session."

Cover "Fort Lauderdale." The paragraph still works for Boca, Naples, or a city you have never visited. That is the tell. It is also keyword stuffing adjacent: Google's spam policy still lists "blocks of text that list cities and regions that a web page is trying to rank for" as an example.

After — a page that could only be Fort Lauderdale:

"We photograph Fort Lauderdale from the beach hotels north of Las Olas to the inland clubs off 595. Summer afternoons go gold later here than they do in Coral Gables, so we hold ceremony portraits until the west light clears the high-rises. Parking at the beach properties is a valet conversation, not a lot — we put that in the timeline so nobody loses twenty minutes looking for a garage. If you are deciding between a Fort Lauderdale beach hotel and a Coral Gables club, the light, the wind, and the guest-shuttle problem are different jobs."

Same service. Same brand voice. A person who is actually booking a Fort Lauderdale hotel in August can use that. A model cannot invent it without having been on those sidewalks. That is the whole craft, and it is the same extractable-passage work we tore down in the content that gets quoted and rewriting a page for citation instead of ranking.

The situational page AI actually retrieves

Head queries still matter — "wedding photographer Fort Lauderdale," "HVAC Homestead," "dentist Coral Gables." Those are what Google ranks. What a person types into ChatGPT is a situation:

"We have 140 guests at a beach hotel in Fort Lauderdale in late August, ceremony outside at 5:30, half the guests flying in, and I need a photographer who has actually worked that hotel's valet and wind."

A trades version sounds like: a four-ton system in a 2004 Kendall house, after a storm, HOA trucks only on weekdays, someone who already knows that permit desk. Those prompts are not "city + service." They are venue type, month, guest count, weather, access, and constraint. A city-name swap has nothing for the model to match. A page that names the hotel, the August light, the valet, or the HOA window does. That is why one Fort Lauderdale page with that paragraph beats five clones for Hollywood, Dania, Hallandale, and Aventura. Local SEO after AI is the same idea from the map-pack side: attributes and trust now sit next to proximity.

What we did instead of 60 city URLs

Acromatico is a studio, not a franchise. We do not have a branch in every city we have photographed. So we did not build /wedding-photographer-miami-beach, /wedding-photographer-key-west, /wedding-photographer-boca as a set. We built venue pages and city-named journal posts for places we stood in — Coral Gables Entrance Park, Bill Baggs, Key West, the Hudson Valley barns. The search demand we can see is still local and specific: "coral gables entrance park" is in our last-28-day query list. "Photographer in [every suburb we have driven through]" is not something we tried to manufacture.

For a photography business that is the honest "one page per city": the city shows up because the venue is in it. Same physics as SEO for photographers — venue pages are the high-intent unit, not a city-doorway grid.

The 90-minute audit

Do this on your own site before you commission another city page.

  1. Inventory (15 min). List every URL whose title or H1 contains a city name. Note: address, unique phone, named person, work that could only have happened there.
  2. Swap test (20 min). Pick the three city pages you think are strongest. Cover the city name. If two of them become the same page, mark the weaker one for merge or noindex.
  3. Funnel check (10 min). Does the city page have a real destination — hours, map, booking for that location — or does every CTA dump onto the homepage? The second pattern is doorway abuse as Google defined it.
  4. Schema check (15 min). View source. Is there a LocalBusiness block whose address matches the city on the page, or one headquarters block copied 60 times? Validate with the schema markup habits we already use.
  5. Profile check (15 min). For each real location, open the Google Business Profile. Name, address, phone, category, and hours should match the page exactly. Google's own local ranking note is still relevance + distance + prominence, and a complete profile is how they read relevance (Tips to improve your local ranking).
  6. Decide (15 min). Keep, merge, or noindex. Do not "refresh" a clone by swapping adjectives. Either give it first-hand substance or take it out of the index so it stops competing with the pages that have some.
If the sheet shows 60 rows and three real addresses, you do not have a content problem. You have an architecture problem. Fix the architecture before you write another sentence.

What I would not do this quarter

I would not buy a package that promises a page for every ZIP code. I would not let a writer who has never been to the city draft it from a directory scrape. I would not build service-in-city URLs until the city page itself is strong enough to link to — that is how a 12-page site becomes a 200-page farm in a month.

I would write the two or five pages I can stand behind, put a locations hub above them, and let the service-area paragraph tell the truth about the rest of the map. Slower to publish. The only version that still works after Google's 2024–2026 spam enforcement, and the only version an AI engine has a reason to quote.

The position

One page per city is a quality rule, not a volume target. If you cannot write a paragraph that would fail the swap test, you do not have a city page yet. You have a doorway with a nicer font.

Want a second pair of eyes on the location grid?

We run an AI visibility audit that includes the location-page and Business Profile check — what to keep, what to merge, and what a 90-day sprint should actually publish.

Get Your Audit

Questions people ask

Should every city I serve get its own page?

Only if that city has a real, unique reason to exist as a page: a physical office, a staffed location, first-hand work you can describe, or a market-specific offer. A van that drives through 60 cities from one shop should have one honest service-area page, not 60 city clones.

Is a templated location page automatically spam?

No. A shared layout is fine. Identical substance is not. Google's scaled content abuse policy targets many pages generated to manipulate rankings, not to help users, no matter how they were created. If you can swap the city name and nothing else changes, the page is not helping anyone in that city.

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

A location page is the destination: hours, address, who works there, what that market actually books, how to get there. A doorway page exists to rank for a city query and then dump the visitor onto a generic homepage or a form. Google lists multiple city-targeted pages that funnel users to one page as doorway abuse.

Do AI engines cite thin city pages?

Almost never. Engines collapse near-identical pages into one story, then pick a source that already has unique local detail — a Google Business Profile, a review, a venue page, or a competitor who wrote about that market specifically. Sixty copies of the same paragraph do not become sixty citations.

How many location pages should I publish this month?

As many as you can write with first-hand substance this month — usually two to five, not sixty. Publish the real offices and the cities you actually work first. Leave the rest on a service-area page until you have something true to say about them.