Our internal 90-day framework for getting plumbers, HVAC contractors, and service businesses into the Google Map Pack. No fluff-just the process we use for clients.
Most local SEO guides are garbage.
They tell you to "optimize your Google Business Profile" and "get more reviews" without explaining how to actually execute. That's not a strategy-it's a to-do list written by someone who's never ranked a plumber in a competitive market.
This is different.
Below is the exact 90-day framework we use for service business clients. It's the same process that helped an HVAC contractor in Phoenix go from invisible to #1 in the Map Pack for "AC repair Phoenix" in 4 months.
We're giving this away because:
- You'll realize how much work this actually takes
- The businesses who try it themselves usually come back and hire us anyway
- The ones who execute it successfully deserve the results
Let's get into it.
The Foundation: Why Most Local SEO Fails
Before the playbook, you need to understand why service businesses struggle with local SEO.
The core problem: Google's local algorithm weighs three factors:
- Relevance (does your business match the search?)
- Distance (how close are you to the searcher?)
- Prominence (how well-known/trusted is your business?)
Most agencies obsess over relevance (keywords) and ignore prominence entirely. That's backwards.
Prominence is the lever you can actually pull. You can't move your business closer to every searcher. But you can systematically build the signals that make Google trust you more than competitors.
Phase 1: The Audit (Week 1-2)
We don't touch anything until we understand the current state. Here's our exact audit checklist:
Google Business Profile Audit
| Element | What We Check | Red Flags |
|---|---|---|
| Primary Category | Is it the most specific option? | "Contractor" instead of "Plumber" |
| Secondary Categories | Are all relevant services covered? | Missing obvious categories |
| Service Area | Matches actual service radius? | Too broad or too narrow |
| Attributes | All applicable ones checked? | Missing "emergency service", "free estimates" |
| Photos | Recent, high-quality, geotagged? | Stock photos, no team/truck photos |
| Posts | Active in last 7 days? | Last post 6+ months ago |
| Q&A | Pre-populated with common questions? | Empty or spam questions |
| Reviews | Response rate and velocity? | <4.5 stars, no responses |
Website Technical Audit
- NAP consistency - Name, Address, Phone must match GBP exactly
- Schema markup - LocalBusiness schema on every page
- Service area pages - Individual pages for each city/neighborhood served
- Mobile speed - Core Web Vitals passing on mobile
- SSL certificate - HTTPS required
Citation Audit
We use BrightLocal to pull the current citation profile. Looking for:
- Inconsistencies - Old addresses, wrong phone numbers
- Missing major directories - Yelp, BBB, industry-specific
- Duplicate listings - Same business, multiple profiles
Our benchmark: Clients need 40+ consistent citations on relevant directories before we focus on other signals.
Phase 2: Foundation Fixes (Week 2-4)
This is where most agencies stop. For us, it's just the beginning.
GBP Optimization (The Right Way)
Primary category selection matters more than you think.
Example: A drain cleaning company was categorized as "Plumber." We changed it to "Drain Cleaning Service" (more specific) and saw a 34% increase in Map Pack impressions within 3 weeks.
The photo strategy nobody talks about:
Google's AI analyzes your photos. We upload:
- Geotagged team photos (proves real local presence)
- Service truck with logo visible (brand recognition)
- Before/after project photos (relevance signals)
- Interior of office/warehouse (legitimacy signal)
Upload 5-10 photos per week for the first month. Then 2-3 per week ongoing.
Website Structure for Local SEO
Your homepage shouldn't target "plumber." It should target "plumber + primary city."
The service area page framework:
For a plumber serving 15 suburbs, we create 15 pages with this structure:
/plumbing-services-[city]/
├── H1: Plumbing Services in [City], [State]
├── Intro: 150 words about serving [City]
├── Services section (same as other pages)
├── [City]-specific content:
│ ├── Local landmarks/neighborhoods mentioned
│ ├── Distance from main office
│ └── Recent projects in area (if available)
├── Embedded Google Map (centered on city)
├── LocalBusiness schema with city address
└── CTA: Call for [City] service
Critical: These cannot be thin, duplicate pages. Each needs 300+ words of unique, city-specific content. Google penalizes doorway pages.
Citation Building Sprint
Week 2-3: Submit to the 50 most important directories manually.
Tier 1 (do first):
- Google Business Profile
- Apple Maps
- Bing Places
- Yelp
- BBB
Tier 2 (week 2):
- Industry directories (HomeAdvisor, Angi, Thumbtack)
- Local chambers of commerce
- City business directories
Tier 3 (week 3):
- Data aggregators (Neustar, Foursquare, Factual)
- Niche directories
- Local news site business listings
We track every submission in a spreadsheet with: Directory, URL, Date Submitted, Live Date, Status.
Phase 3: Authority Building (Week 4-8)
This is where we separate from agencies that just "do SEO."
Review Velocity Strategy
Reviews aren't just social proof-they're a ranking factor. Google's local algorithm considers:
- Total review count (more = better)
- Review velocity (consistent stream beats bursts)
- Review recency (recent reviews weighted higher)
- Review content (keywords in reviews help relevance)
Our system for generating reviews:
- Automate the ask - Text message sent 2 hours after job completion
- Make it frictionless - Direct link to Google review form
- Script the request - Techs trained to mention it during service
- Respond to every review - Within 24 hours, using keywords naturally
Target: 4+ new reviews per week for competitive markets.
Real example: A roofer went from 23 reviews to 89 reviews in 90 days. Map Pack ranking improved from #7 to #2 for "roofing contractor [city]."
Local Link Building
This is the hardest part. Most agencies skip it or do it wrong.
What works for service businesses:
| Tactic | Difficulty | Impact |
|---|---|---|
| Sponsoring local sports teams | Easy | Medium |
| Chamber of commerce membership | Easy | Low-Medium |
| Local news coverage (charity, events) | Medium | High |
| Guest posts on local blogs | Medium | Medium |
| Supplier/manufacturer links | Medium | Medium |
| Local business partnerships | Hard | High |
The partnership play we use:
Find complementary businesses (not competitors) and propose content swaps.
Example: An HVAC company partners with a home inspection company.
- HVAC writes "HVAC Questions to Ask During Home Inspection" → published on inspector's blog with link
- Inspector writes "What Home Inspectors Look for in HVAC Systems" → published on HVAC blog with link
Both get relevant local links. Both get referral traffic. Win-win.
Content That Actually Ranks Locally
Stop writing "5 Tips for Choosing a Plumber." That content doesn't rank or convert.
Content that works for local service businesses:
- "Cost of [Service] in [City]" - High intent, low competition
- "[Service] vs [Service]: Which Do You Need?" - Captures confused searchers
- "Emergency [Service] in [City]: What to Do" - Captures urgent searchers
- "[City] [Service] Regulations & Permits" - Hyper-local, builds authority
Each piece should:
- Target 1 primary keyword + 3-5 related terms
- Include LocalBusiness schema
- Have clear CTA (call, form, or chat)
- Link to relevant service pages
Phase 4: Optimization & Scale (Week 8-12)
By now, you should see movement. This phase is about compounding gains.
GBP Posting Strategy
Google Business posts aren't a ranking factor. But they:
- Keep your profile "active" (engagement signal)
- Give you more real estate in search results
- Drive direct conversions (offer posts)
Our posting cadence:
- 2x per week: Update posts (company news, tips)
- 1x per week: Offer post (seasonal promotion)
- Monthly: Event post (if applicable)
Tracking What Matters
Vanity metrics don't pay bills. Track these:
| Metric | Tool | Target |
|---|---|---|
| Map Pack ranking (primary keywords) | Local Falcon | Top 3 |
| GBP views & actions | GBP Insights | +20% MoM |
| Website traffic from local searches | GA4 | +30% over 90 days |
| Phone calls from GBP | Call tracking | Track every call |
| Form submissions | CRM | Track every lead |
| Revenue from local leads | CRM | The only metric that matters |
The reporting we do:
Monthly report showing:
- Ranking changes (with screenshots)
- Traffic changes (with source breakdown)
- Lead volume (calls + forms)
- Revenue attributed to SEO (when client shares data)
The 90-Day Results Benchmark
After executing this playbook, here's what we typically see:
Month 1: Foundation work, minimal ranking movement Month 2: Early ranking improvements, 20-40% increase in GBP impressions Month 3: Map Pack entry for secondary keywords, 50-100% increase in calls
Real client example (HVAC in Phoenix):
| Metric | Before | After 90 Days |
|---|---|---|
| Map Pack visibility | Not ranking | #1 for 3 keywords |
| GBP monthly views | 1,200 | 4,800 |
| Monthly calls from GBP | 12 | 47 |
| Monthly revenue from local leads | $8,000 | $34,000 |
That's a 4.25x increase in revenue from local SEO alone.
Why Most Businesses Won't Do This
This playbook works. But most business owners won't execute it because:
- It's time-intensive - 15-20 hours per week minimum in the first 90 days
- Results aren't instant - Month 1 feels like you're spinning wheels
- It requires consistency - Miss a week of reviews/posts and momentum stalls
- The technical stuff is hard - Schema markup and site structure require dev skills
If you have the time and technical ability, this framework will work.
If you don't, that's exactly why agencies like us exist.
Ready to Dominate Your Local Market?
We've used this exact playbook to help dozens of service businesses go from invisible to #1 in their local markets.
Here's what working with us looks like:
- We execute this entire playbook for you
- Monthly reporting with actual revenue metrics
- Direct access to the team doing the work (not account managers)
Get a free local SEO audit → We'll show you exactly where you stand and what it would take to rank #1.
Have questions about this playbook? Email me directly at ned@orkkid.com. I read every message.


