City pages are location-specific landing pages that target a particular city's search queries — helping businesses rank for "[service] in [city]" keywords. Each city page must contain genuinely unique content: shared templates with only the city name swapped trigger Google's doorway-page penalty. A Moz study found city pages with 70%+ unique content rank 3 to 5 positions higher than template-only pages.

Target keyword
[service] in [city]
Category
Local SEO
Uniqueness target
60–70%+
Typical volume
5–20 pages

City pages are how a service-area business rank for cities it doesn't have offices in. They're also how a service-area business gets buried when Google decides those pages are doorways. The line between the two is genuinely unique content, not template gymnastics.

What are city pages?

A city page is a dedicated landing page optimized for the search intent of a single city where the business operates or provides services. A plumber serving the Dallas–Fort Worth metroplex might build pages for Dallas, Fort Worth, Arlington, Plano, Frisco, and McKinney — each uniquely optimized for its local keywords, testimonials, and service context.

Typical elements on a strong city page:

  • City-named H1 targeting the primary local keyword
  • Local team or crew assignment for that service area
  • Area-specific testimonials and case studies
  • Local pricing or service details where they differ
  • Neighborhood-level content — nearby areas served, well-known landmarks
  • LocalBusiness schema and an embedded map centered on the city
Google's rule on doorway pages

Google's search documentation explicitly warns against doorway pages — nearly identical pages differing only by geographic target. The practical test: if removing the city name from two pages makes them indistinguishable, Google treats them as doorways and can suppress or de-index the entire set.

Why city pages matter for SEO

Four reasons city pages remain the backbone of service-area SEO in 2026:

  1. Geographic keyword coverage. Ranking for "plumber Dallas" and "plumber Plano" requires separate URLs Google can attribute to each city — a single homepage can't rank for both.
  2. Service-area reach. Businesses without a physical office in every city still capture searches in those cities via city pages.
  3. Local pack support. While city pages rank in organic results, not the pack itself, the topical relevance signals reinforce Google Business Profile visibility for cities where you do have a listing.
  4. Traffic multiplication. 10 city pages, each ranking for their local variant, deliver an order-of-magnitude more organic traffic than a single generic homepage.

How city pages work in practice

Three pillars: unique content, local SEO optimization, and doorway avoidance.

# URL structure examples
/plumbing-dallas/ single-service-per-city
/service-areas/dallas/ multi-service-per-city hub
/dallas-tx/water-heater-repair/ city-then-service

# Uniqueness signals to include
· City-specific testimonials with real names + neighborhood
· Local team assignment with headshots
· Weather / seasonality relevant to the city
· Pricing variation by area (if applicable)
· Community involvement, sponsorships, local events

Content differentiation

Beyond the city name in a template, real differentiation includes area-specific testimonials, local team headshots, city-specific service details (Austin's summer AC failures vs Round Rock's insulation issues), and neighborhood mentions the customer would recognize.

SEO optimization

Target 2–3 primary local keywords per page. Include the city name in the title tag, H1, URL slug, and meta description. Add LocalBusiness or Service schema markup and embed a Google Map centered on the target city. Interlink to neighborhood pages where they exist.

Avoiding the doorway trap

Add local photos, area-specific pricing where it varies, genuine local knowledge, and testimonials tied to real customers in the city. The "remove the city name" test is the fastest self-check: if two pages become indistinguishable, they're doorways.

City page structures compared

StructureBest forSEO riskNotes
Single service × city hub Multi-service brands Low if content varies Highest ROI for 3+ services
Service-in-city URLSingle-service brandsLow if content variesSimple structure, easy to scale
Programmatic templateMarketplaces with real data per cityMedium — requires city-specific dataOnly works with a real data source
Copy-paste with city swapNothingHigh — doorway page filterAvoid at any scale
Homepage-onlySingle-city businessesNoneUnderperforms for multi-city coverage

Real city page examples

1. HVAC company with 12 city pages

The Austin page discusses extreme summer heat and AC failures typical in older East Austin homes. The Round Rock page covers newer-construction insulation challenges and different service call profiles. Each page reflects genuine local knowledge — same service, materially different content — and each ranks on page 1 for its city variant.

2. Legal firm aligned to jurisdictions

A DUI attorney builds pages aligned to court jurisdictions rather than arbitrary cities. Each page discusses the specific court process, judge preferences, DUI penalty ranges, and local resources for that jurisdiction. Because the content is jurisdiction-specific, the pages are inherently unique.

3. Plumbing multi-service hub

A plumber uses a hub-and-spoke pattern: /dallas-plumbing/ as the city hub, with linked service pages for water heater repair, drain cleaning, and re-piping specific to Dallas customers. Each hub-and-spoke set carries unique testimonials from that metro.

Both are location-targeted landing pages. The difference is scope and intent.

Use city pages when

  • Targeting metro-area searches ("plumber Dallas")
  • Serving a small number (5–20) of distinct cities
  • Building initial local SEO coverage
  • Establishing service-area presence for a new region
  • City is the primary geographic granularity searchers use

Use neighborhood pages when

  • Targeting hyper-local queries ("plumber Uptown Dallas")
  • Already ranking for the city and going deeper
  • City is too large to serve with one page
  • Neighborhoods have distinct service profiles
  • Long-tail expansion after city pages rank

7 best practices for city pages

  1. One page per city you actually serve. Do not build pages for cities you cannot service — Google detects deceptive geographic targeting.
  2. 60%+ unique content per page. Moz research shows 70%+ ranks 3–5 positions higher than template-only pages. Aim for 70%.
  3. Include real local proof. Testimonials with real names and neighborhoods, local team headshots, photos from actual jobs in that city.
  4. City name in title, H1, URL, meta. Consistent on-page signals across every crawlable element.
  5. Add LocalBusiness or Service schema. Structured data reinforces the location relevance for search engines.
  6. Interlink to neighborhood pages and back. Topical clustering strengthens the whole city hub's authority.
  7. Apply the "remove city name" test. If two pages become indistinguishable when you strip the city, rewrite before publishing.
Common mistake — scaling to 100 doorway pages

The moment scaling requires copy-paste city pages, the SEO gain flips negative. Google's doorway filter treats the set as manipulative and can suppress or de-index the whole cluster. Cap at the number of cities you can meaningfully differentiate.

Common city page mistakes to avoid

  • Template with only city name swapped — the classic doorway pattern
  • Pages for cities you don't serve — deceptive and detectable
  • No unique testimonials — every proof point becomes generic
  • Same photos across every city page — visual signals also count for uniqueness
  • Thin content padded to hit word count — Google reads padding as low quality
  • No internal linking to / from city pages — orphan pages don't accrue authority
  • Skipping schema — missing the local relevance signal

Frequently asked questions

Create one page per city you genuinely serve. Do not create pages for cities you cannot actually service — Google can detect deceptive geographic targeting. Most service businesses land between 5 and 20 city pages.

City pages rank in organic web results, not the local pack. They complement your Google Business Profile and often rank in cities where GBP cannot appear — particularly cities outside your physical location's local pack radius.

Aim for at least 60% unique content per page — with 70%+ being the target for competitive niches. A Moz study found city pages with 70%+ unique content rank 3 to 5 positions higher than template-only pages.

Google's rule of thumb: if removing the city name from two pages makes them indistinguishable, the pages are doorways. Add local photos, area-specific pricing, city-specific team assignments, and genuine local knowledge to stay outside the doorway definition.

No. GBP requires a real physical location or service-area business. City pages exist to rank in organic results for cities where you don't have a physical GBP presence — they are complementary, not a replacement.

Sources

Akshay VR

Akshay VR

Marketing Head · theStacc · ex-Sr Marketing Specialist, ARKA 360 · Malappuram, Kerala

Akshay leads editorial and content operations at theStacc. He writes about local SEO craft — including the city, neighborhood, and location page architecture that turns service-area businesses into local pack fixtures.