Local SEO • Roofing & Exterior Contractor
Roofing Local SEO Case Study: 153 Calls & 630 Customer Actions in 6 Months
How we built a roofing contractor's local presence from scratch and turned a dormant Google Business Profile into a dependable source of phone calls, direction requests and website visits.

A ~28% interaction rate is well above what a dormant profile produces. Most of the views converted into a real buying-intent signal.
The Project
When this roofing contractor came to Focal Frog, there was no local SEO foundation to build on. No keyword strategy, no competitor positioning, and a Google Business Profile that simply was not working as a lead source. In roofing, customers search with urgent, high-intent queries like “roof repair near me” or “roofing contractor in [City]”. Being invisible in the Local Pack means handing every one of those jobs to a competitor.
The brief was simple to state and hard to do: turn a dead local presence into a consistent, measurable source of phone calls and qualified leads through local SEO alone, with no paid ad spend.
⚠️ The Challenge
- • A dormant Google Business Profile generating almost no calls
- • No keyword or competitor strategy to anchor the work
- • Inconsistent NAP and citations fragmenting Google's trust
- • Website pages not aligned with how local homeowners actually search
- • Established competitors already holding the Local Pack positions
Why Local Search Decides Who Wins Roofing Jobs
Roofing is an inherently local, high-ticket, urgent purchase, and the search behaviour reflects that. Around 46% of all Google searches now carry local intent, and the Local Pack (the three map listings above the organic results) captures roughly 44% of clicks on a local results page. Listings inside that top three see materially more engagement than businesses just outside it.
That is why the profile was treated as the primary lead asset, not a checkbox. Google scores local results on relevance, proximity and prominence, and the levers inside a roofer's control, a complete profile, recent reviews, accurate categories, consistent citations and locally-aligned content, are exactly the ones this build focused on.
The Strategy, Built A to Z
Every part of this was built from the ground up over the engagement. No single quick fix moved the needle; the result came from stacking the local ranking factors that compound on each other.
Competitor research
Mapped the roofers already ranking in the [City] Local Pack and reverse-engineered the categories, review velocity and service coverage earning them placement.
Keyword research
Identified the exact high-intent searches [City] homeowners use, separating emergency "roof repair near me" intent from replacement and inspection intent.
Google Business Profile rebuild
Rebuilt categories, services, service areas, photos and a weekly posting cadence so the profile matched what Google rewards for local roofing queries.
Citations and NAP consistency
Corrected and built consistent name, address and phone listings across directories so Google could trust the business data and stop fragmenting the entity.
Local content and on-page
Aligned the website’s roofing and service-area pages with the local signals found in research, so the profile and the site reinforced the same keywords.
Reviews and trust signals
Strengthened the review profile that directly influences Local Pack placement, prioritising recent, service-specific, location-rich reviews.
The Results
| Metric | 6-Month Result | What it means |
|---|---|---|
| Profile views | 2,260 | Local searchers who found the business on Google |
| Total interactions | 630 | Real actions taken after finding the profile |
| Phone calls | 153 | Direct inbound leads, around 25 per month |
| Direction requests | 260 | Customers navigating to the business |
| Website clicks | 217 | Qualified traffic pushed to the site |
| Interaction rate | ~28% | Nearly 1 in 4 viewers took an action |
153 real inbound calls
For a roofing business a phone call is a job opportunity, not a vanity metric. The profile produced an average of around 25 calls every month, steady through the period rather than a single spike.

260 direction requests
People asking Google for directions to the business is one of the strongest real-world prominence signals there is, and a clear sign of customers ready to show up or confirm a local provider.

217 website clicks
Qualified local traffic pushed from the profile straight to the site, where click-to-call and service-area pages do the rest of the converting.

2,260 views, balanced across Search and Maps
Visibility was not dependent on a single surface. Roughly 67% of discovery came from Google Search and 33% from Google Maps, and the split between desktop (58%) and mobile (42%) was close to even, a useful reminder that roofing research often starts on a desktop before the call is made.

Why This Matters
This was not a quick optimisation on an already-established profile. It was a full local SEO build, strategy, research and execution from scratch, that turned an unused Google Business Profile into a dependable lead channel for a service business that lives and dies by inbound calls. With nearly 1 in 4 viewers taking an action, the profile is no longer a listing; it is a sales channel.
If you run a roofing or home-services business and your Google Business Profile is not producing calls like this, the gap is almost always strategy and execution, not budget.
What Went Into It
Roofing Local SEO FAQs
How many leads can a Google Business Profile generate for a roofing company?+
How long does local SEO take to generate leads for a roofing contractor?+
What is the most important local SEO ranking factor for roofers?+
Is local SEO better than paid ads for roofing leads?+
How much does roofing local SEO cost?+
Ready to turn your Google Business Profile into a lead source?
We build the same from-scratch local SEO foundation for roofers and home-services businesses: optimised profile, clean citations, service-area content and a review engine that keeps the calls coming. Get a free local SEO audit and we'll show you exactly where the gap is.
Get Your Free Local SEO Audit →