MAP Local-first strategy
For a roofing contractor, the money is within 30 miles of the shop. Homeowners who need a roof don't browse — they search "roofer near me," call the top three results, and book the one with the most reviews and the fastest answer. So this plan spends almost nothing on brand awareness and everything on showing up first when someone in Calvert County is ready to buy: a dominant Google Business Profile, a relentless review engine, pay-per-lead Local Services Ads, and the city-by-city SEO pages the audit already mapped out. Lean budget, high-intent only, every dollar traceable to a phone call.
Qualified inbound calls & form fills — not clicks or impressions.
Blended media + tools. Scales up once cost-per-lead is proven.
Cost per qualified lead across paid channels by month 3.
New Google reviews, every month, on autopilot.
What We're Buying
GoalsA marketing plan is a list of outcomes with prices on them. On a lean budget we resist the urge to "do everything" and instead chase four numbers that compound:
- Lead volume: 25–40 qualified inquiries/month by Q4, up from current baseline (to be set by call tracking in week 1).
- Cost per lead under $85 blended across LSA + Search, with the Google-Guaranteed badge doing the heavy lifting.
- Local-pack visibility in the top 3 map results for "roofer / roof repair / roof replacement" in Prince Frederick, Dunkirk, Huntingtown & Lusby.
- Reputation moat: 50+ Google reviews at a 4.7★+ average within 12 months — the single biggest driver of click-to-call.
- Seasonal readiness: a storm-response playbook that turns every Southern-MD wind event into same-week booked inspections.
- Database value: past customers and inspection no-sales reactivated into off-season revenue.
Positioning & Audience
FoundationBefore spend: who, where, and why-you. HomePro isn't competing nationally — it's competing with the other 6–8 roofers a Calvert County homeowner can name. The job is to be the obvious, lowest-risk choice for that local buyer.
| Segment | Trigger | What wins them |
|---|---|---|
| Storm / emergency | Wind, hail, a leak after a Bay storm | Speed + Google-Guaranteed badge + insurance-claim help |
| Planned replacement | Aging roof, selling the house, visible wear | Reviews, financing offer, clean before/after proof |
| Repair & maintenance | Missing shingles, gutter overflow, inspection | Easy booking, fair pricing, service-agreement upsell |
| Real estate / insurance | Pre-sale inspection, adjuster referral | Fast turnaround, documentation, the Eagle cross-referral |
The promise to lead with: "Southern Maryland's responsive, review-backed roofer — Google-Guaranteed, financing available, and we answer the phone." Three of those four are things competitors are bad at, which is exactly why they convert.
The Channel Stack
Priority orderListed in the order we'd turn them on. Everything above the paid lines is free or near-free and gets done first — paid spend amplifies a house that's already in order, it doesn't substitute for one.
Google Business Profile $0 media · highest ROI
The single most important local asset
For a service-area roofer, the GBP is the homepage most buyers see first. Fully complete it: correct categories (Roofing Contractor primary; Gutter, Siding, Damage Restoration secondary), the full NAP from the audit (5240 Cutter Ct Ste 103), service list with descriptions, financing attribute, and a weekly photo + Google Post cadence (real job sites, before/after, crew shots). Wire the booking/call button to a tracked number.
Audit & complete the profile week 1, then 1 post + 2 job photos every week. Respond to 100% of reviews within 48 hrs.
Review Engine ~$50/mo tool
Reputation — the conversion multiplier
Reviews are the highest-leverage thing a contractor can build, and HomePro is leaving them on the table. Install a simple after-job text-to-review flow: every completed job triggers an SMS with a one-tap Google review link. Target 4+ new reviews/month. Seed it by texting the last 20 happy customers. Reviews lift map rank and click-to-call rate simultaneously.
Stand up the text-back-for-review automation in week 2; make "send the review link" the last step of every job-close checklist.
Local Services Ads (LSA) $600–900/mo
Pay-per-lead · Google Guaranteed
The best lean-budget paid channel for roofing. You pay per lead, not per click, appear above the map pack, and earn the green Google Guaranteed badge that visibly de-risks the choice. Pass the license/insurance verification once, set a weekly budget, and dispute junk leads for credit. Expect $25–60 per qualified lead in this market.
Complete Google Guaranteed verification in month 1. Answer LSA calls fast — response speed directly drives ranking and lead flow.
Google Search Ads $400–600/mo
High-intent, tightly geo-fenced
A small, disciplined campaign for the highest-intent terms only — "roof replacement [city]," "emergency roof repair," "roof leak repair near me." Geo-target a ~20-mile radius around Prince Frederick, exclude tire-kicker terms (DIY, jobs, materials), and point every ad at a dedicated service or city landing page with one phone CTA. Layer in storm-response ads when weather hits.
Launch one tight Search campaign month 2 with call extensions + call tracking. Negative-keyword aggressively. Pause low-intent, double down on what calls.
Local SEO & Content Wattz retainer
Builds on the SEO audit — compounding
The audit already drew the map: fix the migration 404s, complete the schema, and build out the city × service matrix (a full "Roofing in {City}" page per town instead of one service each). Add the missing towns — Dunkirk, Huntingtown, Lusby, Owings, Chesapeake Beach. Publish 1–2 useful articles/month ("how to read a roofing estimate," "does insurance cover my roof in MD"). This is the channel that lowers paid CPL over time.
Clear the audit's critical/high items first (404 redirects, schema NAP, headings), then ship one rebuilt city page every 2 weeks.
Social Proof on Meta $150–250/mo
Facebook/Instagram — organic + light boost
Not for prospecting cold — for proof and remarketing. Post before/after reels and finished-job photos (the content you're already shooting for GBP), then run a small retargeting + local-awareness campaign to people who visited the site or live in-radius. Cheap reinforcement that keeps HomePro top-of-mind for the planned-replacement buyer who isn't ready today.
Repurpose job photos into 2–3 posts/week; boost the best performer for $15–25 to a tight local audience. Add the Meta Pixel retargeting audience (pixel is already installed).
Database & Referrals ~$0–25/mo
Email/SMS to existing customers
The cheapest leads are people who already know you. Reactivate the customer list with a seasonal maintenance/inspection email (spring + fall), promote the service-agreement program, and run a simple referral offer ("$100 to you, $100 off for them"). Capture every inspection no-sale into a nurture list for off-season follow-up.
Export the customer list, send a "pre-storm-season roof check" campaign each spring/fall, and add a referral ask to the post-job review text.
Where the Money Goes
~$2,000/moA representative $2,000/month allocation inside the lean band. The split is deliberately weighted toward pay-per-lead and owned assets — the channels where a dollar maps cleanly to a phone call.
| Line item | Type | Monthly | Why this much |
|---|---|---|---|
| Local Services Ads | Pay-per-lead | $750 | Highest-intent, Google-Guaranteed; the workhorse |
| Google Search Ads | Pay-per-click | $500 | Captures demand LSA misses; storm-responsive |
| SEO / content production | Owned | $450 | City pages + articles; lowers CPL over time |
| Meta social + boost | Awareness | $200 | Proof + retargeting, not cold prospecting |
| Reviews + call tracking tools | Software | $100 | Review automation + per-channel attribution |
| Total | $2,000 | Scale up once CPL & close rate are proven |
The math that justifies it: if $1,250 of paid media (LSA + Search) yields ~15 qualified leads at an $85 blended CPL, and HomePro closes 1 in 4 at even a modest $9,000 average roofing job, that's ~$33k in revenue against $2k spend. We instrument it so this isn't a hope — it's a tracked, monthly P&L per channel.
The First 90 Days
SprintOrder matters. Set the foundation and the measurement before the paid taps open, so every dollar after week 4 is accountable.
- Instrument everythingCall tracking numbers per channel, GA4 goals, baseline lead count. You can't improve what you can't see.Week 1
- Lock down the GBPCategories, full NAP, services, financing attribute, first batch of job photos + posts.Week 1–2
- Launch the review engineText-to-review automation live; seed with the last 20 happy customers.Week 2
- Clear the audit's critical fixes301 redirect map, schema NAP, homepage headings — the SEO base.Week 2–3
- Pass Google Guaranteed & turn on LSALicense/insurance verification, then open LSA at a controlled weekly budget.Week 3–4
- Launch the tight Search campaignHigh-intent geo terms, dedicated landing pages, call extensions, heavy negatives.Week 4–5
- Start the city-page build-outOne rebuilt "Roofing in {City}" page every two weeks, audit template.Week 5–12
- First monthly review & reallocateRead the per-channel CPL, kill the losers, feed the winners.Day 30 · 60 · 90
The 12-Month Arc
SeasonalRoofing demand is seasonal in Maryland. The plan front-loads foundation in winter/spring and leans into paid + storm response through the busy season.
Q1 · Foundation
Get measurable
- Tracking + GBP + reviews live
- SEO critical fixes
- LSA + Search launched
- Baseline CPL established
Q2 · Spring push
Capture peak demand
- Scale winning paid channels
- Spring maintenance email
- City pages shipping
- Storm-response ads ready
Q3 · Storm season
Win the events
- Rapid storm ad activation
- Insurance-claim content
- Review volume target hit
- Meta retargeting steady
Q4 · Optimize
Lower CPL, plan year 2
- SEO now offsetting paid
- Fall maintenance + referrals
- Service-agreement push
- Budget case to scale up
Storm-response is event-driven, not calendar-driven — the pre-built ad sets and landing page let HomePro flip them on within hours of a Southern-Maryland wind event.
How We Keep Score
DashboardOne page, reviewed monthly. If a number isn't on this list, we don't spend time on it.
| Metric | Why it matters | Cadence | Target |
|---|---|---|---|
| Qualified leads | The output that pays the bills | Monthly | 25–40 by Q4 |
| Cost per lead | Efficiency of paid spend | Monthly | < $85 blended |
| Close rate | Lead quality + sales follow-up | Monthly | ≥ 25% |
| New Google reviews | Map rank + conversion | Monthly | ≥ 4 / mo |
| Local-pack rank | Free lead visibility | Monthly | Top 3, core towns |
| GBP calls & direction taps | Owned-asset performance | Monthly | Trend up |
| Cost per acquisition | True marketing ROI | Quarterly | < 8% of job value |
To Start, We Need
- Go-ahead on the $2k/mo lean tier (or the $1.5k floor)
- Admin access to the Google Business Profile
- License & insurance docs for Google Guaranteed verification
- Access to Google Ads + the existing GA4 property
- The customer/past-job list for review seeding & reactivation
- 10–15 recent before/after job photos to prime GBP + social
Approve the foundation work and we can have tracking, the GBP, and the review engine live inside the first two weeks — measurable lead flow follows once LSA verification clears. The whole plan is built to prove itself in 90 days before asking for a bigger budget.