Roofing Company Local SEO Case Study: The First Clicks That Count
A roofer without rankings is invisible at the exact moment a homeowner needs one.
This is the story of a local roofing contractor whose brand-new website had zero organic presence, and what its first three months of local SEO produced: 79 clicks at a 4.5% click-through rate, with impressions and clicks still accelerating when the window closed. The numbers are small on purpose. This is what the honest beginning of a local campaign looks like, recorded day by day in Google Search Console.
79
Organic clicks
first 3 months
1.77K
Impressions
first 3 months
4.5%
CTR
high local intent
The starting problem
A New Roofing Site With Zero Search Presence
Roofing is a feast-or-famine trade, and search is where the feast begins. When a storm rolls through, homeowners do not browse. They search, they call whoever shows up, and they book the first roofer who answers convincingly. If your website is not in those results, the job goes to a competitor before you ever knew it existed.
That was this contractor's reality. The crews were skilled and the work spoke for itself, but the business ran almost entirely on word of mouth and paid lead platforms, the kind that sell the same homeowner's phone number to several roofers at once and let them race each other to the door.
The website was brand new, which cut both ways. There was no penalty to undo and no bad history to outrun, but there was also nothing for Google to trust: no rankings, no impressions, no authority, no track record. Every one of those had to be earned from zero.
What the business was living with
- Effectively invisible for every roofing search in its service area
- Lead platforms selling the same homeowner to multiple competing roofers
- Revenue swinging with referrals instead of a steady inbound channel
- A fresh domain with no authority or ranking history to build on
- No visibility data, so no way to know if anything was improving
What we found
The Diagnostic: Six Gaps Between the Crews and the Customers
Our audit of a new local contractor site looks for the gaps that keep good businesses out of local results. These were the focus areas the campaign was built around.
No query eligibility
As a new domain, the site simply did not exist for the searches homeowners type when a roof leaks. Google had nothing to rank, so competitors and lead-selling directories took every impression.
No service-area signals
The site did not tell Google which towns and neighborhoods the crews actually serve. Without that, even a perfect roofing page cannot compete in the local results where roofing decisions are made.
Thin service coverage
Repairs, replacements, storm damage, and inspections each answer a different search. Bundling them onto one generic page meant competing for everything and ranking for nothing.
Technical groundwork missing
Indexing directives, structured data for a local business, internal linking, and page-speed fundamentals all needed to be set correctly before any content work could pay off.
No proof of trust
Roofing is a trust purchase. The site lacked the licensing details, project evidence, and consistent business information that both Google and a skeptical homeowner look for.
No measurement in place
Search Console and analytics were not configured, so nobody could say what the site ranked for or whether anything was improving. We never run a campaign we cannot measure.
What we did
Four Phases From Invisible to Climbing
We sequenced the work so each phase made the next one stronger. Foundations first, then structure, then content, then the compounding monthly cycle.
Foundation and local signals
We started where every local campaign should: making the business unambiguous to Google. That meant clean local business structured data, consistent name, address, and phone details across the web, and alignment between the website and the business profile Google shows in the map results. This is the core of our local SEO service, and for a contractor it is non-negotiable.
A site built to rank
Because the site was new, we could shape it for search instead of patching it. Our website development work focused on fast-loading pages, a logical structure that separates each roofing service, and dedicated pages for the areas the crews serve, so a homeowner searching in their own town lands on a page written for them.
Content homeowners actually search
We mapped the questions people ask before hiring a roofer, from storm damage and insurance concerns to repair-versus-replace decisions, and built pages that answer them plainly. Every page targets real search demand and ends with a clear next step: call or request an estimate.
Compounding monthly work
From there the campaign ran as an ongoing cycle: watch what Google rewards, push the pages that are close to page one, widen coverage, and keep building authority. That cycle is exactly what our Complete Monthly SEO service exists to do, and it is why the graph bends upward at the end instead of flattening.
This same sequence starts with a free audit of your website. No obligation, just the plan.
Get Free AuditThe results
What Google Search Console Recorded

Read the graph left to right and you can watch a website being born in search. The first weeks sit near zero: Google is indexing, evaluating, and deciding whether this new roofing site deserves to appear at all. Then impressions begin to lift through July and accelerate through August, reaching peaks of around 38 a day. Clicks follow the same curve, from a near-zero start to as many as 9 in a single day by the end of the window.
The totals for the three months: 79 clicks and 1,770 impressions at a 4.5% click-through rate. For a national brand those would be rounding errors. For a local roofing contractor, 79 clicks are 79 visits from people in its service area searching for roofing help, a channel that did not exist ninety days earlier and that the business owns outright.
One number deserves an honest reading: the average position of 29.6. That is page three, and taken alone it sounds unimpressive. But an average position is diluted by every new query a site starts appearing for, and a young site enters most queries near the back. The 4.5% CTR is the tell. People cannot click what they cannot see, so those clicks are coming from the subset of local searches where the site already ranks prominently, while dozens of newer queries are still climbing from deep positions and pulling the average down.
That combination, rising impressions, rising clicks, strong CTR, and a diluted average position, is exactly the fingerprint of an early-stage local campaign that is working.
A 4.5% CTR on local roofing queries means these are not idle browsers. They are homeowners who need a roofer, and for a local contractor a handful of extra calls a week changes the month's revenue.
What this means for your business
Why Early Local SEO Wins Matter More Than They Look
Local service businesses win differently than ecommerce stores. A store needs thousands of clicks to move revenue. A roofer, a plumber, or a dentist needs a steady trickle of the right clicks, because each one can be worth thousands of dollars in booked work. That is why we published this case study alongside our million-impression campaigns: the scale is smaller, but the economics are just as real.
The other lesson is about trajectory. For a brand-new domain, expect the first meaningful movement within two to four months: a new site has no history for Google to trust, so the early weeks are spent earning eligibility before impressions accelerate the way they did here through months two and three. This graph does not flatten at the end, it steepens. Local SEO compounds: the service-area pages that just entered page three keep climbing, the authority signals keep accumulating, and the clicks in month six are built on the groundwork you can see happening here. The contractors who benefit most are the ones who start before the storm season, not during it.
If your trade business is invisible in local search, or renting its leads from platforms that sell them to your competitors too, the first step is knowing exactly where you stand. That is what the free audit is for.
Services behind this result
The Disciplines That Did the Work
Your turn
Find Out What Your Site Is Missing
We will audit your website the same way we audited this roofing contractor's: where you stand today, which gaps are costing you customers, and what the first ninety days of fixing them should look like. Free, specific, and yours to keep whether we work together or not.
Prefer to talk it through? Call us at +1 (737) 326-6378.
More case studiesFree SEO audit & custom plan
Get your monthly SEO plan and price
Tell us your website. We review it and send a recommended scope with an actual price. No obligation.
We reply within 24 hours, usually much sooner.
Ready to Make a Real Change?
Book a free strategy call and get a no-obligation proposal tailored to your business.