◀ All articles

Playbooks

AEO for local service businesses

July 13, 2026 · 4 min read

LocalBusiness schema, GBP, NAP, and service-area pages that do not spam. A weekend plan for a plumber, clinic, or shop.


A homeowner asks an assistant for an emergency plumber near them who works weekends. The model leans on Google Business Profile, local directories, and a few sites with clear LocalBusiness markup. Your shop does great work, but the website says "Serving the metro area!" with no city names, a NAP that disagrees with GBP, and a chatbot wall before any HTML. You never enter the shortlist.

AEO for local service businesses is a weekend project: LocalBusiness schema, GBP, NAP, and a few service-area pages that do not spam.

What local answer engines lean on

Local answers blend maps inventory, reviews, and web evidence. You do not control the ranker. You do control consistency.

AssetWhy it mattersMinimum bar
Google Business ProfileCategories, hours, website, reviewsExact name/NAP; correct primary category
Website NAPCorroborationMatch GBP character-for-character where possible
LocalBusiness schemaMachine identityname, address, telephone, url
Service pagesIntent matchReal services you offer; no fake cities
ReviewsTrustRespond; do not fake
Crawler accessRetrievalBots not 403’d on home and service URLs

Pew Research (March 2025) found AI Overviews on roughly 18% of searches; local queries vary, but zero-click behavior is common. SparkToro / Similarweb (Jan–Apr 2026) estimated ~68% of Google searches were zero-click. Being named inside the answer matters more than winning a blue link alone.

GBP still feeds Maps and often retrieval — treat Google Business Profile as an AEO signal, not only a Maps chore.

Weekend plan (plumber, clinic, shop)

Saturday morning — identity (2 hours)

  1. Open GBP: confirm business name, address, phone, website URL, categories, hours.
  2. Make the website footer and Contact page match that NAP exactly — follow the NAP consistency checklist.
  3. Add LocalBusiness (or a more specific subtype: Dentist, Plumber, etc.) JSON-LD on the homepage with the same fields.
  4. Link GBP and major profiles in sameAs only when URLs are correct.

Saturday afternoon — access (1–2 hours)

  1. Check robots.txt for accidental blocks on / and service pages.
  2. If you use Cloudflare Bot Fight or a strict WAF, allowlist answer crawlers so they are not 403’d.
  3. View source on mobile templates: ensure address and phone are in HTML, not only in an image or third-party widget.

Sunday — pages that help (2–3 hours)

  1. Create or tighten service pages for real offerings ("Water heater repair," "Pediatric cleaning") with plain descriptions.
  2. If you truly serve multiple cities, write honest service-area pages with unique proof (response times, landmarks, parking notes) — not spun duplicates.
  3. Add an FAQ only for questions you actually get on the phone.
  4. Claim primary directories worth your time; skip directory spam — see directories that still matter.
  5. Respond to two unanswered reviews on GBP.
  6. Re-scan the site after the weekend to confirm access and identity checks moved.

Service-area pages without spam

DoDo not
Pages for cities you regularly serve50 near-identical "[Service] in [Town]" doorways
Mention real constraints (stairs, permits, HOA)Fake testimonials per city
Embed matching NAP onceDifferent phone numbers per city page unless true
Unique photos when possibleStock photo rotation as "localization"

Schema sketch (illustrative)

{
  "@context": "https://schema.org",
  "@type": "PlumbingService",
  "name": "Riverbend Plumbing",
  "url": "https://example.com/",
  "telephone": "+1-555-0100",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "100 Main St",
    "addressLocality": "Springfield",
    "addressRegion": "IL",
    "postalCode": "62701",
    "addressCountry": "US"
  },
  "openingHoursSpecification": [{
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": ["Saturday", "Sunday"],
    "opens": "08:00",
    "closes": "18:00"
  }]
}

Use your real type and data. Match Organization vs LocalBusiness guidance: local service shops usually want LocalBusiness (or subtype), not a bare Organization with no address.

Multi-location shops

If you have three locations, give each a GBP and a location page with its own NAP and LocalBusiness (or LocalBusiness + department) markup. Do not dump every address into one paragraph and hope. Assistants resolving "near me" need clean per-location entities. Parent brand naming should stay consistent across locations — same company, different addresses.

What "good enough" looks like after one weekend

You should be able to open an assistant, ask for your category plus neighborhood, and see either your name or a competitor with messier NAP than yours. If you still do not appear, check access and GBP first — not another blog post. Hypothetical: say you run 20 local prompts across two cities you serve; use the misses as a punch list (wrong hours, missing service page, blocked fetch), not as proof that AEO is hopeless.

Clinics and other YMYL locals should prioritize named practitioners on service pages over city spam. A clear practitioner bio with credentials beats ten doorway pages that never mention who performs the work.

Mistakes

  • Call tracking numbers that never appear on GBP (split entity).
  • Embedding the only NAP inside a third-party widget blocked to bots.
  • Buying fake Google reviews.
  • Publishing medical or legal claims without a named professional — local YMYL still needs E-E-A-T and real author pages when clinicians byline content.
  • Chat widgets that replace the entire HTML body for first-time visitors, including crawlers.

Verify

Search your exact business name in Maps and in an assistant. Check that phone and hours match. Fetch your homepage as text; confirm schema and NAP. Re-scan the site after fixes.

BrandKnown’s free first scan takes about 60 seconds and surfaces crawler and clarity issues. Agency is $49/mo if you manage multiple locations as saved brands. A better readiness score means cleaner website checks — not a guaranteed Maps pack win.

See how your own site scores

One scan checks your homepage, robots.txt, llms.txt, About page and JSON-LD, then hands you the copy-paste fixes. Free, no account needed for the first run.

Keep reading