# Local keywords appear in page titles and meta descriptions

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

## Why it matters

Page titles and meta descriptions with no city, region, or service-area name produce no geographic relevance signal for local search. A title like `Best Plumbing Services` competes nationally for a keyword you can't win; `Plumbing Services in Springfield, OH` targets the exact query your customers type. This is the cheapest, highest-return local SEO change available — missing it means every page is competing in a broader market than the business actually serves, while leaving schema-org LocalBusiness entity associations unanchored in the page's textual context.

## Severity rationale

Critical because geo-less titles and meta descriptions forfeit local keyword targeting on every page simultaneously, making the site structurally invisible to local search queries.

## Remediation

Update the metadata export in `app/page.tsx` (and any primary location landing pages) to include the city and service type.

```ts
// app/page.tsx
export const metadata = {
  title: "Reliable Plumbing Services in Springfield, OH | Springfield Plumbing",
  description:
    "Springfield's trusted plumber since 2010. Same-day service for leaks, drain clogs, and water heater repair. Call (555) 555-5555.",
};
```

For multi-location businesses, generate per-location metadata in `generateMetadata` using a city slug from the route params rather than hardcoding one city in the root layout.

## Detection

- **ID:** `local-keywords-meta`
- **Severity:** `critical`
- **What to look for:** Examine static metadata in page.tsx and layout.tsx files — specifically the `title` and `description` fields. Check whether any of these include the city name, region, neighborhood, or service area that the business serves. Look for patterns like "[Service] in [City]", "[City] [Business Type]", or "[Business Name] — [City]". For dynamic metadata (generateMetadata), check whether the city/location is incorporated into the template.
- **Pass criteria:** Count all page titles and meta descriptions across the site. At least the home page (or primary landing page) has the business's city or primary service area in at least 1 of these 2 fields: title tag or meta description.
- **Fail criteria:** No page titles or meta descriptions contain any city, region, or geographic identifier related to the business's service area.
- **Skip (N/A) when:** All page titles and meta descriptions are dynamically generated from a CMS or database and cannot be evaluated statically (note this in detail), or whole-audit N/A rule applies.
- **Detail on fail:** `"No city or service area found in any page title or meta description. Titles and descriptions appear generic with no geographic targeting."` or `"Home page title is 'Best Plumbing Services' with no location — should include city name for local targeting"`
- **Remediation:** Update your primary page metadata in `app/page.tsx` or `app/layout.tsx`:

  ```ts
  export const metadata = { title: "Reliable Plumbing Services in Springfield, OH", description: "Springfield's trusted plumber since 2010." }
  ```
- **Cross-reference:** For broader keyword strategy and meta tag optimization, the Advanced SEO audit covers these topics in depth.

## External references

- schema-org LocalBusiness

Taxons: findability

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