Dallas Roofing Case Study: 31 Leads, 8 Booked Inspections, 58 Days
From 6 Calls a Month to 31 Qualified Leads in 58 Days — Roofing Contractor in Dallas, TX
How a Google Business Profile rebuild, six city/service pages, citation cleanup, and missed-call text-back moved a residential roofer from Google Maps #9 into the Local 3-Pack — at $0 ad spend.
Results Snapshot
- 31 qualified exclusive leads in 58 days
- #9 → Local 3-Pack on Google Maps
- 8 booked inspections
- $0 ad spend (SEO & GBP only)
Attribution disclaimer: Results depend on the client’s call-answer rate, response time, pricing, and sales process — these are outside agency control.
Client Snapshot
- Trade: Residential roofing
- Location: Dallas, TX
- Company: [PLACEHOLDER: client name/logo — pending naming permission] — shown anonymized as “Residential Roofing Contractor, Dallas, TX”
- Company size: [PLACEHOLDER: number of crews]
- Years in business: [PLACEHOLDER: years]
- Services offered: Roof repair, roof replacement, storm/hail damage, inspections
- Engagement tier used: [PLACEHOLDER: confirm tier — Starter / Growth Engine / Dominator]
The Challenge
Before working with Rank Social, this Dallas roofing contractor had a good crew and a bad pipeline. The phone rang about six times a month from organic search — barely enough to keep estimators busy, and nowhere near enough to grow. On Google Maps, the business sat at position #9: on the map, technically, but well below the three-result pack where the overwhelming majority of homeowners actually click and call. For a roofer, being #9 in Dallas is functionally the same as being invisible.
They ran no paid advertising, so there was no second channel picking up the slack — every lead depended on an organic presence that Google had effectively buried. Worse, the leads that did come in were fragile: with crews on roofs all day, calls went to voicemail, and in roofing a missed call is usually a lost job, because the homeowner simply dials the next result. The owner was not short on skill or capacity. They were short on visibility and on any system to catch the demand that visibility would create. The result was a business capped well below what its service quality could support.
Before: ~6 organic inbound calls/month · Google Maps #9 (below the 3-Pack) · $0 paid spend — no paid pipeline at all.
The Approach
We did not “do SEO.” We built the three-part system in sequence, starting with the highest-leverage fix — visibility — and layering capture and recovery on top.
- Google Business Profile rebuild — Full GBP overhaul: correct primary and secondary categories, complete service and service-area definitions, geo-tagged project photos, and an active posting cadence. The single biggest lever for the Maps 3-Pack. (Local SEO)
- Six city/service landing pages — A structured set of pages targeting the specific Dallas-area cities and roofing services homeowners actually search, each built to Google’s post-2024 quality standard. (Local SEO)
- Citation cleanup — Audited and corrected business citations (name, address, phone) across directories so Google could trust and verify the business, lifting the ranking ceiling the inconsistencies had capped. (Local SEO)
- Missed-call text-back — Automated 30-second text response to every unanswered call, so leads reached a live conversation instead of a voicemail box. (Business Automation)
Timeline — Week 1–2 (Foundation): GBP rebuild, full technical and citation audit, citation cleanup begun, missed-call text-back configured. Week 3–5 (Build): six city/service pages published, citations corrected across directories, review-request workflow switched on. Week 6–8 (Lift): Maps ranking climbs from #9 into the Local 3-Pack, lead volume compounds, and booked inspections begin landing.
The Results
Across the 58-day engagement, the business went from six organic calls a month to 31 qualified exclusive leads, moved from Google Maps #9 into the Local 3-Pack, and converted 8 booked inspections — all at $0 ad spend, from SEO and GBP work alone.
Read as a chain, the outcome separates cleanly into three layers:
- Marketing Activity (what we control): GBP authority rebuilt, six ranked city/service pages published, citations corrected, review velocity started, and missed-call recovery live. This is what moved the business into the 3-Pack and generated the 31 leads.
- Operational Result (shared): 8 inspections booked from those 31 leads — a function of both the lead quality we delivered and the client’s own speed to respond and schedule.
- Commercial Result (the client’s): Revenue from any inspections that closed into jobs — dependent on the client’s pricing, sales process, and close rate, and outside agency control. We report the pipeline we produced, not a revenue figure we cannot verify.
Proof artifacts: [PLACEHOLDER: Google Maps rank-tracking screenshot (#9 → 3-Pack)] · [PLACEHOLDER: GBP Insights graph] · [PLACEHOLDER: call log / lead summary] · [PLACEHOLDER: weekly leads timeline chart].
This is one verified result, not a standard expectation. A different market, competitor set, or sales process would produce different numbers.
For context on what these numbers mean: 31 qualified exclusive leads from Local SEO and GBP work over 58 days is the direct result of moving into the 3-Pack in a competitive market. The distinction that matters is exclusive. These were not shared leads distributed to multiple contractors — they came from a homeowner searching, finding this contractor, and choosing to call. At shared-lead platform pricing of $150–$300 per lead, 31 exclusive inbound contacts would have cost $4,650–$9,300 in per-lead spend. These came from the GBP and SEO work instead.
The 8 booked inspections from 31 leads — a 26% booking rate — reflects a combination of lead quality and the client’s own response speed. The missed-call text-back system was the key operational change: unanswered calls now received an automated response within 30 seconds, keeping the lead in conversation rather than sending it to the next result on the map. The booking rate would have been lower without it.
What This Means for Your Business
If you are a roofing contractor doing $500K–$2M with 2–5 crews — especially if you are leaning on shared leads or an organic presence stuck below the 3-Pack — this is roughly what the system looks like applied to your market: fix the visibility first (GBP + ranked city/service pages), then make sure the demand it creates never leaks (missed-call text-back and follow-up), and only then scale with paid where it accelerates the pipeline.
The honest caveat: your numbers will not be these numbers. This was one contractor in one market over 58 days. Your results depend on your local competition, how saturated your Maps market already is, your pricing, and — critically — how fast and how well your team answers and closes the leads the system produces. What transfers is the mechanism, not the metrics. The audit below shows you what that mechanism would surface in your market before you commit to anything.
The three components that produced this result — GBP authority, ranked location pages, and missed-call recovery — work as a system, not as independent tactics. GBP work without ranked supporting pages stalls because the map ranking requires content signals behind it. Ranked pages without GBP work undersell the business in the moment of discovery. Both without missed-call recovery leak the demand they generate. If your market is similar — competitive Maps, no paid channel, crews in the field all day — the sequence is the same. The audit we offer shows which of the three components is the weakest in your specific market, so we fix the highest-leverage constraint first.
Related
Other case studies: [PLACEHOLDER: HVAC case study card — pending verified client data] · [PLACEHOLDER: Tree Service case study card — pending verified client data]
Services used in this engagement: Local SEO · Business Automation · Google Ads
Related industry page: Roofing Marketing
See What This Looks Like in Your Market
Get your free Growth Audit. We will show you where your Maps visibility, lead flow, and response speed are leaking booked inspections in your city — before you spend a dollar.
[PLACEHOLDER: Real US phone number]