Writing · essay
City pages that aren't thin
How to build city and local pages that actually help people, stay clear of Google's doorway page rules, and fit into a site structure that makes sense.
City pages are one of the oldest tactics in local SEO, and one of the most abused. The pattern is familiar: take one page, swap the city name, publish it fifty times. "Best service in Springfield." "Best service in Shelbyville." Same text, different nouns.
It used to work well enough that people kept doing it. It doesn't age well. Google has a name for this in its spam policies, and even when these pages aren't penalized, they rarely help anyone. A person who lands on one learns nothing they couldn't have learned from the homepage.
I've done a lot of local and city-specific search work, and I still think city pages can be valuable. They just have to be real. Here's how I think about the difference.
What Google actually says about doorway pages
Google's spam policies describe doorway pages as sites or pages created to rank for specific, similar search queries, which lead users to intermediate pages that aren't as useful as the final destination. The examples they give include having multiple pages that target specific regions or cities and funnel users to one page, and substantially similar pages that are closer to search results than a clearly defined, browseable hierarchy.
That's a pretty clear description of the template-and-swap approach. It's worth reading the policy directly on Google's Search Central documentation rather than relying on anyone's summary, including mine.
The key idea: the problem isn't having a page per city. It's having pages that exist only to catch a search and offer nothing specific to that place.
The test: would this page be useful if search didn't exist?
The question I ask about every location page is whether someone in that city would find it genuinely useful if they got there by any route, not just from a search result.
A useful city page answers questions a person in that place actually has. A thin one answers "do you serve this city?" and nothing else. That's a sentence, not a page.
Signs a city page is thin:
- The only differences from other city pages are the city name and maybe a stock photo.
- It would still be accurate if you swapped in any other city.
- It lists nearby neighborhoods or zip codes as filler.
- It has no information a local resident couldn't have guessed.
- Nobody on your team could say what makes that page different from its siblings.
What makes a city page genuinely useful
The content has to be true and specific. That's the hard constraint, and it's what makes good city pages expensive to create. You can't fake local knowledge, and you shouldn't try.
Things that can make a city page real, where they genuinely apply:
- Local process information. How things actually work in that place. For legal services, that might be which courts handle certain matters, local filing procedures, or relevant jurisdiction rules. For home services, it might be permits, inspections or local codes. Only include what's accurate and verifiable.
- Real service details. What you actually offer there, how you deliver it, whether you have an office or travel, what the response time realistically is, and who handles it.
- Physical presence, if you have one. Address, hours, parking, directions, photos of the actual location. If you don't have an office there, say so clearly and explain how service works.
- Local considerations. Conditions, regulations or common situations specific to that area that affect the customer. Again, only if true.
- Answers to questions people in that city actually ask. Your sales or intake team knows these. Ask them.
- The people. If specific people serve that area, show them.
If you can't come up with meaningful, true, place-specific content for a city, that's your answer. You probably don't need a page for it. A service-area section on a broader page might serve people better.
Structure: a hierarchy, not a pile
How city pages fit into the site matters almost as much as what's on them. Google's own language contrasts doorway pages with "a clearly defined, browseable hierarchy," which is a useful hint.
A structure I like:
- A locations hub that lists the places you serve, with a sentence or two about each, linking to individual location pages.
- Location pages that link back to the hub and to the core service pages they relate to.
- Service pages that stay the main resource for each service, linking to location pages where local details genuinely matter.
- Breadcrumbs that reflect this hierarchy, with matching
BreadcrumbListstructured data.
This is the same pillar-and-cluster thinking I described in content architecture beats content volume. The hub is a kind of pillar. Each location page has a specific job. Nothing is orphaned, and nothing exists only to rank.
A few structural mistakes to avoid:
- City-by-service combinations. Multiplying every service by every city creates hundreds of near-identical pages. Build them only where both the service and the place need distinct content.
- Hiding city pages from navigation. If a page is only reachable from a footer list of fifty cities, that's a signal about how much you think it matters.
- Cannibalizing your service pages. A city page shouldn't duplicate your main service page with a city name added. Link to the service page for the general information and keep the city page about the city.
Align with your Google Business Profile
For businesses with physical locations, the location page and the Google Business Profile should agree with each other completely.
- Name, address and phone match exactly between the page, the profile and your structured data.
- The profile's website link points to the specific location page, not the homepage, when you have multiple locations.
- Hours, services and categories match what the page says.
LocalBusinessstructured data (or a relevant subtype) on the location page reflects the same details, including the specific address and geo coordinates for that location.
Google's guidelines for Business Profiles are strict about representing real locations. Don't create profiles for places where you don't have a genuine presence that meets their rules. A location page can describe a service area; a Business Profile has requirements of its own.
Measure whether they're working
City pages are easy to create and easy to forget. I want to know whether each one earns its place.
- Search Console by page: impressions, clicks and the queries each page shows up for. If a city page only appears for its own name and nothing local, it's probably not adding much.
- Conversions by landing page, with the lead source captured properly, so you can see whether visitors from a city page actually become customers.
- Engagement. Do people who land on a city page continue to the service pages or contact you, or do they leave immediately?
Pages that don't earn their place are candidates for merging or pruning.
Fewer, better, true
The best local strategies I've worked on weren't the ones with the most city pages. They were the ones where every location page could hold up to a simple question from someone who lives there: is this actually about my city?
Build fewer pages. Make each one true, specific and useful. Put them in a structure that makes sense. That's not just how to avoid a spam policy. It's how you become the obvious local answer.