PeakKR

location pages SEO

Location Pages SEO: Rank Without Doorway Spam

Every agency that works with a multi-location client eventually faces the same request: "We serve 47 cities. Can we get a page for each one?" The honest answer is maybe 12 of them deserve a page, and only if you do the work.

The gap between location pages that rank for years and location pages that get deindexed in a core update isn't technical. It's whether the page has a reason to exist beyond ranking. This guide covers the location pages SEO process we use with agency teams — qualification, content ratios, templates, schema, QA, and when to kill pages that aren't earning their keep.

What Google actually penalizes

Two separate policies get conflated here, and knowing the difference changes how you build.

Doorway pages are pages created to rank for near-identical queries that then funnel every visitor to the same destination. The classic tell: a user lands on /plumber-fresno, finds no Fresno-specific information, and the only real action is a form that goes to the same central inbox as every other page. The page is a toll booth, not a destination.

Scaled content abuse (added to Google's spam policies in March 2024) is broader. It targets generating many pages primarily to manipulate rankings, regardless of whether a human or an AI wrote them. This is what catches the "spin 200 city pages from one template" approach — even when each page technically has unique sentences.

The practical implication: uniqueness at the sentence level is not the bar. Usefulness at the page level is. A page can be 100% unique text and still be spam if nobody would find it valuable without a search engine sending them there.

The qualification test: should this page exist?

Before you write anything, run each proposed location through three questions. If you can't answer at least two with specifics, don't build the page.

  1. Is there a real-world footprint? An address, a staffed office, a service van routed there weekly, a crew that's completed jobs there, a licensed practitioner. "We would accept a client from there" doesn't count.
  2. Is there enough search demand to justify the maintenance? We use a rough floor of 50 monthly searches across the location-modified keyword cluster for metro pages, and 20 for suburb pages inside a cluster you already dominate. Below that, fold the city into a regional page.
  3. Can you say three things about this location that aren't true of the others? Local pricing differences, permit requirements, climate-driven service nuances, neighborhoods served, a named project, a local partner, drive-time coverage. Three specifics is the minimum viable differentiation.

For a client with 47 service areas, this typically qualifies 10-15 for standalone pages. The rest belong on a single regional coverage page with a list — which, incidentally, ranks fine for long-tail "do you serve X" queries and costs you almost nothing to maintain.

Prioritize before you produce

Build in waves, not all at once. Launching 40 near-identical pages in a week is a pattern; launching 8 strong pages a month is a publishing schedule.

Rank candidate locations by: existing Google Business Profile presence (a verified listing with reviews dramatically raises the ceiling), revenue per job in that market, competitor page quality, and how much proof material the client can actually supply. That last one is the usual bottleneck — a page is only as good as the photos, job data, and staff quotes you can extract from the client.

If you're managing this across dozens of markets, our multi-location local SEO playbook covers the GBP, citation, and reporting side that location pages depend on.

The 70/30 rule for page content

Here's a working ratio that has held up well: at least 60-70% of the visible body content on a location page should be unique to that location. The remaining 30% can be shared — your process explanation, guarantees, FAQ about the service itself, trust badges.

Most failed location pages invert this: 85% shared boilerplate, 15% city name swaps. The fix isn't writing more generic filler. It's collecting better raw material.

Unique content blocks that actually carry weight

Blocks that add nothing

Cut these — they're the fingerprints of templated location pages: Wikipedia-sourced city history, population statistics, lists of local landmarks with no connection to the service, weather averages, embedded maps of the whole metro, and "Looking for [service] in [city]? You've come to the right place!" opening paragraphs.

Build a template with real variable slots

Templates are fine. Lazy templates are the problem. Design yours so the required inputs force specificity:

  1. H1: Service + City, matched to actual search language (check whether people search "roofing contractor Boulder" or "roofers in Boulder").
  2. Opening 2-3 sentences: must name a neighborhood, a local condition, or a year the business started serving that area.
  3. Proof block: 1-2 local projects with specifics. Required field — no page publishes without it.
  4. Services offered here, with any local deviations called out.
  5. Who serves this area: names, photos, coverage radius.
  6. Local reviews: minimum three, city-matched.
  7. Shared process/guarantee section. This is your 30%.
  8. FAQ: at least two questions genuinely specific to that market.
  9. Contact: local phone number if one exists, local address if one exists, clear next step.

Treat "required field" literally. The fastest way to prevent doorway drift is to make the production workflow refuse to ship a page with empty proof slots — the same way you'd gate any deliverable. Agencies running this in a phased project structure with proof requirements catch

Featured in this list? Grab your “Featured on PeakKR” badge and add it to your site — free.
Get your badge →

Frequently asked questions

How many words should a location page be?

There's no magic number, but 500-900 words of genuinely location-specific content tends to be the realistic floor for competitive service terms. What matters more is the ratio: if 80% of the page is identical boilerplate across every city, length won't save it. Write until you've said something true about that location, then stop.

Is it doorway spam to create a page for every city we serve?

It becomes doorway spam when the pages exist only to funnel searchers to a single destination and offer no unique value themselves. If you have a real address, staff, projects, or service nuance in that city, a page is legitimate. If you're swapping one city name into a template 200 times, Google's scaled content abuse policy applies.

Should we build location pages for cities where we have no physical address?

You can, but call them service area pages and set expectations accordingly. Without a Google Business Profile in that city you generally won't appear in the map pack, so target the organic results with genuinely useful content: local case studies, travel/coverage details, regional pricing, and local regulations. Expect slower, smaller wins.

How long do location pages take to rank?

In our experience, a well-built location page on a site with existing authority starts showing impressions in 3-6 weeks and meaningful clicks in 8-16 weeks. New domains or low-authority sites often need 4-6 months plus local links and citations. Set client expectations around impressions and query coverage first, not rankings.

Nick Quirk

Written by Nick Quirk

Founder of PeakKR

Nick Quirk is the founder of PeakKR, the agency workspace. He has spent decades running SEO and operations for marketing agencies, and writes about what holds up in real client work: technical audits, reporting, local campaigns, retainers and the systems behind them.

Run your agency on PeakKR

Client projects with phases, time tracking, technical SEO audits, client-ready reporting and AI briefs — the workspace this blog is written from.

Start free

Keep reading