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.

IndustryRoofing & exteriors
Location[City, State]
ServiceLocal SEO, full build
WindowJan–Jun 2026
Google Business Profile overview showing 630 total interactions over six months for a roofing contractor
630 total Business Profile interactions over six months \u2014 the combined result of optimised local visibility.
2,260
Business Profile views
630
Total customer actions
153
Phone calls generated
~28%
Profile interaction rate

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.

~44%
of local-search clicks go to the Local Pack
~32%
of Local Pack ranking weight is Google Business Profile signals
88%
of mobile local searchers call or visit within 24 hours

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.

STEP 1

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.

STEP 2

Keyword research

Identified the exact high-intent searches [City] homeowners use, separating emergency "roof repair near me" intent from replacement and inspection intent.

STEP 3

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.

STEP 4

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.

STEP 5

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.

STEP 6

Reviews and trust signals

Strengthened the review profile that directly influences Local Pack placement, prioritising recent, service-specific, location-rich reviews.

The Results

Metric6-Month ResultWhat it means
Profile views2,260Local searchers who found the business on Google
Total interactions630Real actions taken after finding the profile
Phone calls153Direct inbound leads, around 25 per month
Direction requests260Customers navigating to the business
Website clicks217Qualified 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.

Google Business Profile performance showing 153 calls generated from January to June 2026
153 calls generated directly from the Business Profile (Jan\u2013Jun 2026).

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.

Google Business Profile performance showing 260 direction requests over six months
260 direction requests over the period.

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.

Google Business Profile performance showing 217 website clicks over six months
217 clicks from the profile through to the website.

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.

How searchers found the profile
Google Search – desktop89139%
Google Search – mobile63828%
Google Maps – desktop42219%
Google Maps – mobile30914%
Google Business Profile showing 2,260 profile views with a platform and device breakdown across Search and Maps
2,260 profile views, balanced across Google Search (67%) and Google Maps (33%).

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

Google Business Profile optimisationLocal keyword researchCompetitor Local Pack analysisCitation building + NAP cleanupService-area page contentReview generation strategy

Roofing Local SEO FAQs

How many leads can a Google Business Profile generate for a roofing company?+
In this engagement the profile produced 630 customer actions in six months — 153 phone calls, 260 direction requests and 217 website clicks — from 2,260 profile views. A fully optimised profile routinely earns several times the interactions of an incomplete or dormant one, because Google rewards completeness, reviews and activity in the Local Pack.
How long does local SEO take to generate leads for a roofing contractor?+
Most roofing companies see early ranking movement within the first few months, with stronger, compounding results around months four to six as Google Business Profile optimisation, reviews, citations and location content mature. This build followed exactly that curve, reaching a steady ~25 calls a month.
What is the most important local SEO ranking factor for roofers?+
Google Business Profile signals carry the single largest share of Local Pack ranking weight (around a third), followed by review signals and on-page or location content. Google scores local results on relevance, proximity and prominence, so a complete profile, genuine reviews and locally-aligned pages all matter together.
Is local SEO better than paid ads for roofing leads?+
Paid ads stop the moment the budget does; local SEO builds an asset that keeps producing calls. Many roofers run both, but every call, direction request and click in this case study came from organic local visibility, not ad spend, which makes the cost-per-lead fall over time rather than rise.
How much does roofing local SEO cost?+
Roofing local SEO programs commonly run from roughly $1,000 to $5,000 per month, depending on how competitive the market is, how many services you offer and how many areas you want to rank in. The return is measured in booked jobs, not rankings alone.

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 →