6eff12e8ac
SmartCrawl plugin reference (11 docs): - Overview, configuration, titles & meta, schema, sitemaps, social/OG, redirects, breadcrumbs, content analysis, hooks/filters, known issues SEO strategy playbook (6 docs): - Keyword research, per-page-type selection, on-page optimization, local SEO, technical SEO, content strategy Reusable templates (3): - Site audit checklist, keyword research worksheet, page optimization checklist Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
202 lines
6.4 KiB
Markdown
202 lines
6.4 KiB
Markdown
# Local SEO
|
|
|
|
For small businesses with physical locations or defined service areas, local SEO often has the highest ROI of any optimization effort. This is critical for Alaska, Nashville, and other location-specific client sites.
|
|
|
|
## Google Business Profile (GBP)
|
|
|
|
The single most important local ranking factor.
|
|
|
|
### Setup Checklist
|
|
|
|
- [ ] **Business name:** Exact legal name (no keyword stuffing)
|
|
- [ ] **Address:** Full street address (or service area if no storefront)
|
|
- [ ] **Phone:** Local number (not toll-free if possible)
|
|
- [ ] **Hours:** Complete and accurate, including holidays
|
|
- [ ] **Website URL:** Link to homepage
|
|
- [ ] **Business description:** 750 characters max, include primary keywords naturally
|
|
- [ ] **Primary category:** Choose carefully — strongest ranking signal
|
|
- [ ] **Secondary categories:** Add all that apply (less weight but still help)
|
|
- [ ] **Services/Products:** List all offerings with descriptions
|
|
- [ ] **Attributes:** Check all applicable attributes (wheelchair accessible, etc.)
|
|
- [ ] **Photos:** Add 10+ photos at setup, then monthly updates
|
|
|
|
### Ongoing GBP Activities
|
|
|
|
| Activity | Frequency | Impact |
|
|
|----------|-----------|--------|
|
|
| Google Posts | Weekly | Shows activity, appears in knowledge panel |
|
|
| Photos | Monthly | 100+ photos = 520% more calls (BrightLocal data) |
|
|
| Review responses | Within 24-48 hours | Directly impacts ranking + trust |
|
|
| Q&A | Seed with common questions | Prevents random/incorrect answers |
|
|
| Hours updates | As needed | Especially holidays and seasonal changes |
|
|
|
|
### Getting Reviews
|
|
|
|
- Ask satisfied customers directly (in person or follow-up email)
|
|
- Share a direct review link: `search.google.com/local/writereview?placeid=[YOUR_PLACE_ID]`
|
|
- Respond to **every** review (positive and negative) professionally
|
|
- Never buy or incentivize reviews — Google penalizes this
|
|
|
|
## NAP Consistency
|
|
|
|
**NAP = Name, Address, Phone number.** Must be identical everywhere.
|
|
|
|
### The Rule
|
|
|
|
Pick ONE format and use it everywhere:
|
|
- "123 Main Street" vs "123 Main St." vs "123 Main St" — choose one
|
|
- Include or exclude suite numbers consistently
|
|
- Phone format: `(907) 555-0123` or `907-555-0123` — pick one
|
|
|
|
### Where NAP Must Appear
|
|
|
|
- Website (header, footer, contact page)
|
|
- Google Business Profile
|
|
- Yelp, Facebook, Instagram
|
|
- Industry-specific directories
|
|
- Chamber of Commerce, BBB
|
|
- Apple Maps, Bing Places
|
|
- Any citation or directory listing
|
|
|
|
### Auditing Citations
|
|
|
|
- Search your business name and manually check the top 20 results
|
|
- Use Moz Local checker (free) for a broader scan
|
|
- Fix inconsistencies immediately — they confuse Google
|
|
|
|
## Local Schema Markup
|
|
|
|
Add `LocalBusiness` schema to your website. See [Schema Markup](../smartcrawl/schema-markup.md) for SmartCrawl-specific implementation.
|
|
|
|
### Minimum Required
|
|
|
|
```json
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@type": "LocalBusiness",
|
|
"name": "Business Name",
|
|
"address": {
|
|
"@type": "PostalAddress",
|
|
"streetAddress": "123 Main St",
|
|
"addressLocality": "Anchorage",
|
|
"addressRegion": "AK",
|
|
"postalCode": "99501",
|
|
"addressCountry": "US"
|
|
},
|
|
"telephone": "+1-907-555-0123",
|
|
"url": "https://example.com"
|
|
}
|
|
```
|
|
|
|
### Recommended Additional
|
|
|
|
- `openingHoursSpecification`
|
|
- `geo` (latitude/longitude)
|
|
- `areaServed`
|
|
- `priceRange`
|
|
- `image` (logo)
|
|
- `sameAs` (social profiles, directory listings)
|
|
|
|
Choose the most specific `@type` subtype that applies (e.g., `EducationalOrganization`, `ProfessionalService`).
|
|
|
|
## Location-Based Keywords
|
|
|
|
### Keyword Patterns
|
|
|
|
| Pattern | Example |
|
|
|---------|---------|
|
|
| `[service] + [city]` | "motorcycle course Anchorage" |
|
|
| `[service] + [state]` | "motorcycle safety training Alaska" |
|
|
| `[service] + near me` | Handled by Google via GBP/location signals |
|
|
| `[service] + [neighborhood]` | "riding lessons Eagle River" |
|
|
| `[service] + [qualifier] + [location]` | "affordable motorcycle course Anchorage AK" |
|
|
|
|
### Keyword Matrix
|
|
|
|
List all services down one side and all locations across the top. Each intersection is a potential target:
|
|
|
|
| | Anchorage | Fairbanks | Wasilla |
|
|
|---|-----------|-----------|---------|
|
|
| Basic Rider Course | Primary | Secondary | Assess |
|
|
| Advanced Course | Primary | -- | -- |
|
|
| Safety Clinic | Primary | Secondary | -- |
|
|
|
|
### "Near Me" Optimization
|
|
|
|
You do **NOT** optimize for "near me" by putting "near me" on your page. Google determines "near me" results based on:
|
|
- Searcher's physical location
|
|
- Your GBP location
|
|
- Local relevance signals (NAP, citations, reviews, local content)
|
|
|
|
**Optimize for `[service] + [city/state]` instead** — this covers both explicit geo-queries and implicit "near me" intent.
|
|
|
|
## Location Pages
|
|
|
|
### When to Create Them
|
|
|
|
Only if you have genuinely unique content for each location:
|
|
- Local landmarks, directions
|
|
- Area-specific service details
|
|
- Local testimonials
|
|
- Unique offerings per location
|
|
|
|
### When NOT to Create Them
|
|
|
|
**Do not create thin location pages** that only swap city names. Google penalizes doorway pages. A page that says the same thing as another page but with "Fairbanks" instead of "Anchorage" is a doorway page.
|
|
|
|
### Template for Good Location Pages
|
|
|
|
```
|
|
# [Service] in [City], [State]
|
|
|
|
[2-3 paragraphs about the service specific to this location]
|
|
|
|
## What to Expect
|
|
[Location-specific details]
|
|
|
|
## Getting Here
|
|
[Directions, parking, landmarks]
|
|
|
|
## Local Testimonials
|
|
[Reviews from customers in this area]
|
|
|
|
## Schedule & Pricing
|
|
[Location-specific schedule if different]
|
|
|
|
[CTA to register/contact]
|
|
```
|
|
|
|
## Local Content Ideas
|
|
|
|
Content that signals local relevance to Google:
|
|
|
|
- Event coverage (local events you participate in or sponsor)
|
|
- Local partnerships and community involvement
|
|
- Area guides related to your industry
|
|
- Seasonal content specific to your region
|
|
- Local news or industry updates
|
|
- Customer success stories from the area
|
|
|
|
## Mobile Optimization
|
|
|
|
Most "near me" and local searches happen on mobile:
|
|
|
|
- Font size minimum 16px
|
|
- Tap targets minimum 48x48px
|
|
- Click-to-call phone numbers
|
|
- Embedded Google Map on contact page
|
|
- Fast load times (especially on mobile networks)
|
|
|
|
## Local SEO Checklist
|
|
|
|
- [ ] Google Business Profile fully completed and verified
|
|
- [ ] NAP consistent across all platforms
|
|
- [ ] LocalBusiness schema on website (validated)
|
|
- [ ] Location keywords in title tags and meta descriptions of key pages
|
|
- [ ] Contact page has full NAP + Google Map
|
|
- [ ] Collecting and responding to reviews
|
|
- [ ] Listed in relevant local directories
|
|
- [ ] Mobile-friendly and fast-loading
|
|
- [ ] Google Posts published weekly
|
|
- [ ] Photos updated monthly on GBP
|