Why Local SEO Matters
Immigration enforcement varies drastically by location:
- Sanctuary cities vs 287(g) counties
- State-specific protections (CA, IL, NY vs TX, FL)
- Local legal aid organizations
- Immigration court locations
- ICE field office jurisdictions
Users search with local intent: "immigration lawyer near me," "legal aid [city]," "287(g) [county]."
Hub and Spoke Architecture
Structure
┌─────────────────────────────────────────┐
│ NATIONAL HUB │
│ /resources/legal-documents/ │
│ (All states, overview) │
└─────────────────────┬───────────────────┘
│
┌─────────────────┼─────────────────┐
│ │ │
▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌─────────┐
│ State │ │ State │ │ State │
│ Hub │ │ Hub │ │ Hub │
│ /CA/ │ │ /TX/ │ │ /NY/ │
└────┬────┘ └────┬────┘ └────┬────┘
│ │ │
▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌─────────┐
│ County/ │ │ County/ │ │ County/ │
│ City │ │ City │ │ City │
│ Pages │ │ Pages │ │ Pages │
└─────────┘ └─────────┘ └─────────┘
State Hub Content
Each state page should include:
| Section | Content | SEO Value |
|---|---|---|
| Sanctuary status | State law summary | Primary keyword |
| 287(g) counties | Local cooperation list | Long-tail capture |
| Legal aid | State-specific organizations | "Near me" queries |
| Court locations | Immigration court addresses | Navigational queries |
| State-specific rights | Additional protections | Unique content |
County/City Spoke Content
Focus on hyper-local details:
- Local legal aid organizations
- County 287(g) or sanctuary status
- ICE field office locations
- Local rapid response networks
- Community organization contacts
Dynamic Page Generation
11ty Data Cascade
Generate state pages automatically from data:
_data/states.json:
[
{
"name": "California",
"abbr": "CA",
"status": "sanctuary",
"law": "SB 54 California Values Act",
"court_cities": ["San Francisco", "Los Angeles", "San Diego"],
"latitude": 36.7783,
"longitude": -119.4179
},
{
"name": "Texas",
"abbr": "TX",
"status": "cooperation",
"law": "SB 4 Anti-Sanctuary Law",
"court_cities": ["Houston", "Dallas", "San Antonio"],
"latitude": 31.9686,
"longitude": -99.9018
}
]
state.njk template:
---
pagination:
data: states
size: 1
alias: state
permalink: "/state/{{ state.name | slugify }}/"
layout: "layouts/state.njk"
---
Frontmatter for State Pages
---
title: "Immigration Rights in {{ state.name }}"
description: "Know your rights, legal aid resources, and immigration information for {{ state.name }}."
schema_type: "GovernmentService"
geo:
region: "US-{{ state.abbr }}"
placename: "{{ state.name }}"
latitude: {{ state.latitude }}
longitude: {{ state.longitude }}
---
Google Business Profile
Service Area Business Setup
For organizations without physical offices in every state:
- Create GBP listing as Service Area Business (SAB)
- Hide physical address (show only service area)
- Define service areas by state/region
- Select category: "Non-profit organization" or "Legal services"
Compliance Requirements
| Do | Don't |
|---|---|
| Use real organization address | Create fake offices |
| Define service areas by geography | List locations you don't serve |
| Use consistent NAP everywhere | Have conflicting business info |
| Respond to reviews | Ignore engagement |
NAP Consistency
Name, Address, Phone must be identical across:
- Google Business Profile
- Website contact page
- Legal aid directories
- Social media profiles
- Local citation sites
Local Schema Markup
State Page Schema
{
"@context": "https://schema.org",
"@type": "GovernmentService",
"name": "Immigration Rights Information - California",
"description": "Know your rights and legal resources for California.",
"url": "https://example.org/state/california/",
"serviceType": "Immigration Information",
"areaServed": {
"@type": "State",
"name": "California",
"containedInPlace": {
"@type": "Country",
"name": "United States"
}
},
"provider": {
"@type": "Organization",
"name": "ICE Advocacy"
}
}
Local Business Schema (for legal aid listings)
{
"@context": "https://schema.org",
"@type": "LegalService",
"name": "CARECEN - Los Angeles",
"address": {
"@type": "PostalAddress",
"streetAddress": "2845 W 7th Street",
"addressLocality": "Los Angeles",
"addressRegion": "CA",
"postalCode": "90005"
},
"telephone": "+1-213-385-7800",
"areaServed": "Los Angeles County"
}
"Near Me" Query Optimization
Targeting Strategies
| Query Type | Content Strategy | Schema |
|---|---|---|
| "immigration lawyer near me" | Legal aid directory with location filters | LegalService + geo |
| "ICE office near me" | ICE field office locator page | GovernmentOffice |
| "immigration court near me" | Court location guide | GovernmentBuilding |
| "legal aid [city]" | City-specific spoke pages | LegalService |
Location Pages
Each major metro should have:
---
title: "Immigration Legal Aid in Los Angeles"
permalink: "/resources/legal-documents/los-angeles/"
geo:
region: "US-CA"
placename: "Los Angeles"
latitude: 34.0522
longitude: -118.2437
schema_type: "LegalService"
---
Content Differentiation
Avoid thin content penalties by making each location page unique:
- Local organization details
- County-specific policies
- Local court information
- Community resource contacts
- Regional rapid response networks
Citation Building
Priority Directories
| Directory | Category | Priority |
|---|---|---|
| Google Business Profile | Primary | Critical |
| Yelp | Business listing | High |
| Bing Places | Search engine | High |
| Apple Maps | Mobile users | Medium |
| Legal aid directories | Industry-specific | High |
| Non-profit directories | Organizational | Medium |
Citation Audit
Verify consistency across all listings:
- [ ] Organization name exact match
- [ ] Address format identical
- [ ] Phone number same format
- [ ] Website URL consistent
- [ ] Service areas aligned
Geo-Targeting in Search Console
Setup
- Go to Search Console > Settings
- International Targeting > Country (select United States)
- This confirms US-focused content
Performance Analysis
Filter by query + page to find local opportunities:
Queries containing: "california"
Pages: /state/california/
Impressions high, CTR low = Optimization opportunity
Local SEO Checklist
Technical
- [ ] State pages with geo schema
- [ ] City/county spoke pages for major metros
- [ ] Google Business Profile configured
- [ ] NAP consistent across all citations
- [ ] Local schema on relevant pages
Content
- [ ] State-specific legal information
- [ ] County 287(g)/sanctuary status
- [ ] Local legal aid organizations listed
- [ ] Court locations documented
- [ ] Unique content per location
Monitoring
- [ ] Search Console geographic filter
- [ ] Local query tracking
- [ ] Citation audit quarterly
- [ ] GBP review monitoring
Next Steps
- Configure technical SEO - Core Web Vitals, sitemaps
- Set up analytics - Track local performance
- Review schema markup - Local schema implementation