AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Multi Location Seo

skill-mshahiddigital-agentic-local-seo-audit-multi-location-seo · by mshahiddigital

>

No reviews yet
0 installs
16 views
0.0% view→install

Install

$ agentstack add skill-mshahiddigital-agentic-local-seo-audit-multi-location-seo

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-mshahiddigital-agentic-local-seo-audit-multi-location-seo)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
4mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Multi Location Seo? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Multi-Location SEO Audit — Phase 21

Executive Summary

Multi-location SEO is exponentially more complex than single-location — each additional location adds citation management, content differentiation, schema isolation, and cannibalization risk. In 2025, proximity weight for mobile local search increased to ~35% of local pack ranking (up from ~25% in 2023), meaning geographic optimization at each location matters more than ever. AI Overviews appear for ~35% of local service queries (Q1 2025) and pull directly from GBP data + location landing pages. Businesses with template-cloned location pages face active suppression under Google's Helpful Content System (integrated into core algorithm March 2024). The 60% unique content threshold is now a hard floor — below it = Helpful Content System penalty risk.

2025 multi-location benchmarks per location: | Metric | Minimum Viable | Competitive | Market Leader | |--------|---------------|------------|---------------| | GBP review count | 25 reviews | 75–100 | 200+ | | GBP review rating | 4.0 stars | 4.5 stars | 4.7–5.0 stars | | Review velocity | 2/month | 5–8/month | 15+/month | | GBP photos | 10 photos | 25+ photos | 50+ photos | | Location page word count | 600 words | 1,000–1,500 words | 2,000+ words | | Unique content vs. other pages | 60% | 80%+ | 90%+ | | Citations per location | 40 | 75–100 | 150+ | | NAP consistency | 85% | 95% | 99–100% |

Numbered Action Plan:

Immediate (Week 1, Per-Location Wins)

  1. Run NAP consistency audit — BrightLocal or Whitespark → check all active citations for each location → identify and flag inconsistencies (wrong address, old phone, variant business names). Effort: 30 min/location. Priority: 25 (5×5).
  2. Verify all GBPs are claimed and verified — each location must have its own GBP with verified address. Unclaimed GBP = competitor can claim it. Effort: 30 min/location.
  3. Audit location page unique content — Screaming Frog → compare content similarity across location pages. Any page ` tag + footer
  • LocalBusiness schema with this location's unique data and @id
  • FAQPage schema with 3–5 location-specific FAQs (AIO optimization — 35% of local queries trigger AIO)
  • ✅ Location-specific reviews/testimonials from real customers in that area
  • ✅ Staff photos/bios specific to that location (E-E-A-T signal)
  • ✅ Location-specific CTAs (click-to-call this location's number)

Content Differentiation Test

Run each location page pair through a diff tool (use Siteliner free up to 250 pages or Copyscape):

| Location Pair | Unique Content % | Pass/Fail | Action | |--------------|----------------|----------|--------| | [Loc 1 vs. Loc 2] | [X%] | ✅/❌ | | | [Loc 1 vs. Loc 3] | [X%] | ✅/❌ | | | [Loc 2 vs. Loc 3] | [X%] | ✅/❌ | |

Thresholds: Locations > [City] on all location pages?

  • Footer: list all locations (if ≤ 10) or link to location hub?
  • Service pages link to all relevant location pages?
  • Crawl depth to location pages: ≤ 3 clicks from homepage?

Run Screaming Frog → Crawl Analysis → identify orphaned location pages (pages with 0 inlinks).


Step 6: Local Citation Strategy Per Location

For each location, citations must use THAT location's exact NAP. Use BrightLocal or Yext to audit:

Tier 1 — Data Aggregators (Fix First — Feed Hundreds of Directories)

| Aggregator | Location 1 Status | Location 2 Status | Fix Priority | |-----------|------------------|------------------|-------------| | Data Axle (infoUSA) | | | Critical | | Neustar/Localeze | | | Critical | | Acxiom | | | Critical | | Foursquare (feeds Apple Maps) | | | Critical |

Tier 2 — Core Platforms

| Platform | Loc 1 | Loc 2 | NAP Correct? | |---------|-------|-------|-------------| | Google Business Profile | | | | | Apple Maps | | | | | Bing Places | | | | | Yelp | | | | | Facebook | | | | | BBB | | | |

Common multi-location NAP errors:

  • All locations using same 1800/toll-free number (kills local relevance — each location needs unique local number)
  • Citations showing old address for relocated branch
  • Duplicate GBP listings for same location
  • HQ address appearing on branch location citations
  • NAP consistency rate target: ≥95% across all tracked citations

Step 7: Cannibalization Prevention Framework

Location pages cannibalize when they compete for identical keywords without geographic separation.

Keyword-to-URL Mapping Matrix

Build this matrix for all location × service combinations:

| Keyword | Assigned URL | Location Owner | No Other Page Targets This? | |---------|------------|--------------|---------------------------| | plumber chicago il | /locations/chicago-il/ | Chicago | ✅/❌ | | plumber chicago north side | /locations/chicago-il/north-side/ | Chicago | ✅/❌ | | plumber evanston il | /locations/evanston-il/ | Evanston | ✅/❌ |

Detection: Run Ahrefs → Site Explorer → Organic Keywords → filter for keywords where 2+ URLs rank on same page. Each keyword should have exactly one canonical page targeting it.

Prevention rules:

  • Each location page targets geographically distinct primary keyword
  • Use areaServed in schema to isolate geographic scope per location
  • Consolidate overlapping pages with 301 redirect to the stronger location page
  • Use Local Falcon geographic grid to identify where locations compete within same service area

Step 8: Service × Location Matrix Pages

For businesses with multiple services and locations, deep service+location pages drive the most traffic:

domain.com/locations/chicago-il/                    ← Location hub
domain.com/locations/chicago-il/drain-cleaning/    ← Service × Location
domain.com/locations/chicago-il/water-heater/      ← Service × Location
domain.com/locations/evanston-il/drain-cleaning/   ← Service × Location

Matrix Gap Analysis

| Service | Chicago | Evanston | Oak Park | % Complete | |---------|---------|---------|---------|-----------| | Drain Cleaning | ✅/❌ | ✅/❌ | ✅/❌ | | | Water Heater | ✅/❌ | ✅/❌ | ✅/❌ | | | Emergency Plumbing | ✅/❌ | ✅/❌ | ✅/❌ | |

Priority: High-traffic service × high-competition location combinations first. Use Ahrefs Keyword Explorer to validate search volume for each combination.


Step 9: AIO Optimization Per Location

AI Overviews appear for ~35% of local service queries (Q1 2025). Each location page needs:

  1. FAQPage schema with 3–5 location-specific questions (direct AIO citation trigger)
  2. Structured content: Use H2/H3 headers that match common "near me" query patterns
  3. Review mentions: AIO typically features businesses with ≥4.3 stars and ≥20 reviews per location
  4. Proximity data: Precise latitude/longitude in GeoCoordinates schema
  5. Unique expertise signals: Location-specific staff credentials, certifications, licenses displayed on page

AIO test per location: Search best [service] in [city] in Google → does this location appear in AIO? Document status for each location.


Step 10: Competitor Comparison

| Signal | Client (All Locs) | Comp 1 | Comp 2 | Gap | |--------|-----------------|--------|--------|-----| | Total locations | | | | | | GBP completeness avg (%) | | | | | | Avg review count per location | | | | | | Avg rating per location | | | | | | Location page unique content % | | | | | | Service × location pages (count) | | | | | | Local pack appearances (all locs) | | | | |


Scoring

| Category | Weight | Score | |----------|--------|-------| | GBP per-location completeness (12-point checklist) | 30% | /30 | | Location page uniqueness ≥80% (vs. 60% floor) | 25% | /25 | | URL structure & architecture (subdirectory preferred) | 15% | /15 | | Citation accuracy per location (Tier 1 aggregators first) | 15% | /15 | | Cannibalization prevention (mapping matrix in place) | 10% | /10 | | Schema per location (parentOrganization, unique @id, FAQPage) | 5% | /5 |

Priority Matrix: | Action | Impact (1–5) | Feasibility (1–5) | Priority Score | Effort | |--------|-------------|-------------------|----------------|--------| | Fix branchOf → parentOrganization schema | 4 | 5 | 20 | 30 min/location | | Add unique local phone per location | 5 | 4 | 20 | 1–2 hrs | | Rewrite thin location pages (>80% unique) | 5 | 3 | 15 | 3–5 hrs/page | | Submit Tier 1 aggregators per location | 4 | 4 | 16 | 2–4 hrs | | Add FAQPage schema to all location pages | 4 | 5 | 20 | 30 min/page | | Build service × location matrix pages | 5 | 3 | 15 | 4–8 hrs/page | | Fix cannibalization via keyword mapping | 4 | 4 | 16 | 2–3 hrs |

If single location: mark as N/A — award 100/100.


Output

Write to {AUDIT_DIR}/multi-location-findings.md with YAML frontmatter:

---
skill: local/multi-location-seo
phase: 21
date: [YYYY-MM-DD]
business: [Business Name]
url: [URL]
score: [X/100]
status: [healthy|needs-attention|critical|not-applicable]
locations_audited: [X]
avg_content_uniqueness_pct: [X%]
---

Include:

  • Score X/100 with per-location breakdown
  • Location-by-location GBP audit table (12-point checklist)
  • Location page quality assessment (content uniqueness %)
  • Schema audit (branchOf → parentOrganization correction status)
  • Cannibalization keyword mapping matrix
  • Service × location matrix gap analysis
  • Tier 1 citation status per location
  • AIO optimization status per location
  • Priority recommendations per location (Impact × Feasibility scored)
  • Competitor comparison table
  • 30/90-day multi-location improvement plan

Output files:

  • {AUDIT_DIR}/multi-location-findings.md — findings with per-location scores
  • {REPORTS_DIR}/phase-21-multi-location.pdf — auto-generated PDF after phase completes

Key consumers:

  • local/local-seo — single-location baseline for comparison
  • local/entity-audit — entity isolation per location
  • output/report-generation — master report section 21

Citation Tool Comparison (2025 Pricing)

| Tool | Best For | Locations | Price (2025) | Key Strength | |------|---------|----------|-------------|--------------| | Yext | Enterprise (50+ locations) | Unlimited | $500–$999/location/yr | Real-time sync to 200+ publishers | | BrightLocal | Agencies, SMBs (1–100 locations) | Up to 100 | $29–$79/location/mo | Best reporting + NAP audit quality | | Whitespark | Agencies needing manual quality | Any size | $30–$50/location/mo | Highest accuracy, best for niche dirs | | Data Axle (Localeze) | Chain businesses with data feeds | 10+ | Custom enterprise | Feeds GPS/navigation systems | | Semrush Listing Management | Existing Semrush users | Up to 50 | $20/location/mo (add-on) | Integrated SEO workflow; Yext backend | | Moz Local | Small chains (1–20 locations) | Up to 20 | $14–$33/location/mo | Simple Google/Facebook/Apple sync |

2025 recommendation by use case:

  • 50+ locations → Yext (only tool with real-time sync at scale)
  • Agency managing multiple clients (2–15 locations each) → BrightLocal + Whitespark combination
  • Single business with 2–10 locations → BrightLocal or Semrush Listing Management
  • Franchise system → Data Axle + Yext combination

SAB vs. Storefront — Critical 2025 Distinction

| Business Type | Address in GBP | Service Area Setting | |--------------|---------------|---------------------| | Storefront (customers visit) | Show address | Set service areas as supplemental | | Pure SAB (no walk-ins at all locations) | Hide address | Set service area only | | Mixed (some storefronts, some SABs) | Show on storefronts; hide on SABs | Per-location setting |

2025 GBP ruling (confirmed): SABs must NOT set service areas broader than 2-hour drive time from the business location. Google reconfirmed this via GBP Help Community Q1 2025. Violations result in Map Pack suppression.

Critical mistake: Hiding the address on a storefront location (where staff/customers are present) causes significant Map Pack ranking drop for proximity searches.


GBP Location Groups — Management Structure (10+ Locations)

For chains with 10+ locations, use proper account hierarchy:

Owner Account (1 account only)
  └── Location Group 1 (Region A)
      ├── Manager Account (Regional Manager)
      └── Individual GBP listings (locations in Region A)
  └── Location Group 2 (Region B)
      ├── Manager Account (Regional Manager)
      └── Individual GBP listings (locations in Region B)

Rules:

  • Maximum 20 manager accounts per location group (more triggers spam flags)
  • Bulk verification threshold: 10+ locations via GBP API accounts.locations.list
  • Never add more than 1 owner account — ownership conflicts cause verification suspension
  • Use updateMask in GBP API to bulk-update specific fields (hours, services, photos) without full listing resubmission

Common 2025 Multi-Location Mistakes (Top 10)

| # | Mistake | Impact | Fix | Effort | |---|---------|--------|-----|--------| | 1 | Template-cloned location pages (<60% unique) | HCS penalty, page 4+ rankings | Rewrite with location-specific content | 3–5 hrs/page | | 2 | Same phone number across all locations | Duplicate signal, local relevance loss | Assign unique local number per location | 1–2 hrs | | 3 | GBP links to homepage (not location page) | Map Pack click-through loss | Update GBP website URL to /locations/city-state/ | 5 min/location | | 4 | branchOf schema (deprecated 2025) | Entity graph confusion | Replace with parentOrganization | 30 min/location | | 5 | Same @id value across all location schemas | Google cannot distinguish locations | Use unique @id per location URL fragment | 30 min/location | | 6 | GBP Q&A left unmanaged | Misinformation damages conversion | Seed 5–10 Q&As + answer within 24hrs | 30 min/location | | 7 | Service areas overlap between locations | Cannibalization in entity model | Assign distinct areaServed per location schema | 30 min/location | | 8 | No UTM on GBP website URL | Cannot measure GBP traffic per location in GA4 | Add ?utm_source=gmb&utm_medium=organic&utm_campaign=[city]-gbp | 5 min/location | | 9 | Orphaned location pages (0 internal links) | Not crawled/indexed | Add to hub + sitemap + breadcrumb | 30 min/page | | 10 | Review gating (only asking happy customers) | FTC violation (2025) + GBP suspension risk | Send requests to all customers | Policy change |


GBP Website URL — UTM Parameter Template

For each location's GBP "Website" field, use:

https://domain.com/locations/[city-state]/?utm_source=gmb&utm_medium=organic&utm_campaign=[city]-gbp

This enables GA4 to measure GBP-specific traffic per location — essential for proving ROI at the location level.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.