# Location-specific landing pages exist for service areas

- **Pattern:** `ab-001775` (`marketing-local-seo.local-content.location-landing-pages`)
- **Severity:** medium
- **Lifecycle:** active
- **Last modified:** 2026-04-18
- **Canonical URL:** https://auditbuffet.com/patterns/ab-001775
- **License:** CC-BY-4.0 — attribute to AuditBuffet Pattern Catalog (https://auditbuffet.com/patterns/ab-001775)

## Why it matters

A multi-area business served by a single homepage competes for every `[service] in [city]` query with one generic page, which loses to competitors who operate a dedicated page per service area. Google's local ranking weighs on-page geographic relevance; without per-city content it has nothing to match against long-tail local queries. The findability taxon applies directly — the pages that do not exist cannot rank, and the homepage cannot rank for cities it never mentions.

## Severity rationale

Medium because the business still ranks for its primary city but forfeits organic traffic from every surrounding service area.

## Remediation

Create a dynamic route at `app/locations/[city]/page.tsx` that generates a unique page per service area from a data source. Each page needs genuinely local content — neighborhood names, local projects, area-specific pricing — not a templated page with only the city name swapped. Thin duplicates are treated as doorway pages and demoted.

```tsx
export async function generateStaticParams() {
  return cities.map((city) => ({ city: city.slug }))
}
```

## Detection

- **ID:** `location-landing-pages`
- **Severity:** `medium`
- **What to look for:** Check the routing structure for location-specific pages. Look for route patterns like `/[city]`, `/locations/[city]`, `/service-areas/[region]`, or static pages like `/austin`, `/dallas`, `/chicago`. Also check for a dynamic route that generates location pages from a data source. Count how many distinct location routes or location-specific pages exist.
- **Pass criteria:** Count all location-specific pages or routes found. The project must have at least 1 dedicated location-specific page (beyond the homepage) that targets a specific city or service area, OR it serves only 1 location and the homepage is itself location-specific.
- **Fail criteria:** The project serves multiple locations or service areas (inferable from content or config data) but has no dedicated location-specific pages — all areas are handled by a single generic page.
- **Skip (N/A) when:** The business has only one location and the homepage is already location-specific (passes the `local-keywords-meta` check), or whole-audit N/A rule applies.
- **Detail on fail:** `"Site content references multiple service areas but no dedicated location pages found. All areas share a single generic page with no location-specific content or metadata."` or `"No location-specific routing found — consider /locations/[city] for each service area"`
- **Remediation:** Dedicated location pages allow you to rank for "[service] in [specific city]" queries for each city you serve. A single homepage targeting your primary city will not rank well for surrounding areas. Create individual pages for each major service area using a dynamic route (e.g., `app/locations/[city]/page.tsx`). Each location page needs unique content — do not create thin pages that only swap the city name. Include local details that make each page genuinely useful to someone in that area.

Taxons: findability

HTML version: https://auditbuffet.com/patterns/ab-001775
