Case study · Home and local services
Roofing Company · Willowbrook, IL
Fourteen keywords in the top three of local search by month three, with no separate SEO campaign and no advertising. The interesting question is why that is possible at all.

Can a roofing company rank locally without an SEO campaign or ads?
In a local market with limited competition, yes, if the website is built correctly from the start. A site that is fast, properly structured, genuinely local and marked up correctly is doing SEO by construction rather than by campaign.
This Willowbrook roofing company launched an SEO website within 24 hours and ranked in the top three of local search for 14 keywords by month three, with no separate SEO campaign and no advertising.
A roofer fighting their own website
A roofing company was struggling with its website.
Struggling covers a lot of ground and in roofing it usually means the same few things: a site that is slow, that does not say clearly where the company works, that has no individual pages for the services people actually search, and that nobody can update without paying somebody.
The competitive situation in a suburb like Willowbrook is also different from a major metro. There are roofers, but not hundreds of them, and the majority have websites with the same problems. That matters enormously, because it means the bar for ranking is set by what the local competitors have done rather than by some absolute standard.
This is the part of local SEO that is rarely said plainly. In a market where every competitor's site is weak, a well-built site ranks without a campaign. In a market where competitors are sophisticated, the same site would not. The technique does not change. The difficulty does.
What was actually being competed for
Google states that local ranking comes down to relevance, distance and prominence. Whitespark's 2026 Local Search Ranking Factors study asked 47 local search practitioners to score 187 individual factors, and the top of that list is unusually consistent.
SourceWhitespark, Local Search Ranking Factors, 2026, 47 practitioners scoring 187 factors
In a suburb where most competitors have never set their primary category deliberately or filled in their services, the top of that list is available to whoever does. That is the whole explanation for this case.
Assessing what the market required
Before promising anything about rankings we look at what winning would actually take, which is a question about the competitors rather than about the client.
Count the serious competitors, not all of them
How many local roofers have a properly configured profile, a fast site, individual service pages and a steady review flow. In many suburbs the answer is one or two, which changes what is achievable and how fast.
Identify the keywords worth having
Roof repair, roof replacement, storm damage, gutters, siding, flat roofing, emergency repair, each combined with the towns in the service area. A manageable, specific set rather than a broad regional ambition.
Check the profile situation
Claimed, categorised, service area configured, services listed, reviews flowing. For a roofer this is most of the local ranking battle and most companies have never touched it.
See the remaining steps: Assessing what the market requiredHide the remaining steps: Assessing what the market required
Assess what the existing site was doing wrong
Speed, structure, whether services had their own pages, whether the towns were named in text, whether structured data described the business correctly.
Decide honestly whether a campaign was needed
Sometimes it is. In this market the assessment was that a correctly built site would rank without one, and that assessment is the reason the engagement was scoped the way it was.
SEO by construction rather than by campaign
| Item | Struggling site | Site built correctly |
|---|---|---|
| Service pages | One combined page | One page per service |
| Towns served | Implied or on a map image | Named in text on relevant pages |
| Speed | Slow on mobile | Built to the published thresholds |
| Structured data | None | Business, location and services described |
| Profile alignment | Inconsistent | Matched to the site exactly |
| Ongoing changes | Require a request and an invoice | Managed continuously |
What the 24 hour build actually included
The speed is the least interesting part. What matters is that the things which produce local rankings were built in from the start rather than added later as a campaign.
A page for every service that gets searched separately
Roof repair and roof replacement are different searches with different intent and different value. One page covering both competes properly for neither. This single structural decision does more for a roofing site than most campaign activity.
The service area named in text
Every town the company genuinely works in, written on the page in words. Not on a map image, not in a dropdown, in text where it can be read by both a homeowner and a search engine.
Correct structured data from launch
The business, its location, its service area and its services described in markup, so search engines do not have to infer any of it.
See the remaining steps: What the 24 hour build actually includedHide the remaining steps: What the 24 hour build actually included
Speed treated as a requirement
Built to the published Core Web Vitals thresholds from the start, which is far easier than retrofitting speed onto a site that was built without thinking about it.
Ongoing management rather than a handover
The engagement included continuing website management, which is how the site stayed aligned with the profile, kept its content current and did not decay. This is the part that distinguishes a launched site from a maintained one.
What top three in local search means
Local results show three businesses before a searcher has to expand the list, which is why the third position is a meaningful boundary and the fourth is much less valuable.
The drop between the third and fourth local position is the steepest in local search, because it is the difference between being visible and requiring an action to be seen. That is why the top three is the target rather than the top ten.
It also varies by where the searcher is standing. A company in the top three across a whole service area is a much stronger position than one that holds it only at its own address, and this is why any honest local ranking report is a map rather than a number.
Fourteen keywords in that position across a service area is a real result. Whether it is a hard result depends entirely on the competition, which in a suburb of this kind is moderate.
What changed
The company ranked in the top three of local search for 14 keywords by month three, achieved with no separate SEO campaign and no ads, from an SEO website launched within 24 hours and then managed.
The claim we want to be careful about is the no campaign part, because it is easy to read as a promise that websites rank themselves. They do not. What happened here is that the SEO work was done during construction rather than afterwards: structure, individual service pages, local relevance, speed and markup. That is a campaign's worth of technical work, delivered as part of a build.
The second qualifier is the market. Willowbrook is a suburb with a moderate number of roofing competitors, most of whom have not done this work. The same site, built to the same standard, in a dense metro against sophisticated competitors, would not reach the top three for fourteen terms in three months, and we would not have scoped it that way.
About these results
The 14 keywords figure is a count of local search terms in the top three at month three. Local rankings vary by where the searcher is standing and change continuously, so this describes a position at a point in time.
The keywords were not published individually, so their search volume and difficulty are not knowable from this case. Fourteen low-volume variations of the same phrase would be a much weaker result than fourteen distinct terms.
No lead, enquiry or revenue figure was published. A ranking is an input. How much work it produced depends on the search volume behind those terms and on what happened when people called.
This result reflects a suburban market with moderate competition. It is not a benchmark for a dense metropolitan market.
Results are from a specific client engagement and vary by market, budget, competition and other factors. They are examples of past outcomes, not a guarantee of future results.
What was actually delivered
- An SEO website launched within 24 hours
- An individual page for every service that is searched separately
- Service area towns named in text on the relevant pages
- Structured data describing the business, its location and its services from launch
- Built to the published Core Web Vitals thresholds
- Ongoing website management rather than a build and handover
If you want local rankings without a campaign
Build the SEO in rather than adding it on. Individual service pages, towns named in text, correct markup and real speed are structural decisions that cost nothing extra at build time and are expensive to retrofit. Most agencies sell the retrofit.
Count your serious competitors before you set an expectation. Not all of them, the ones who have actually done the work. In many suburbs that number is one or two, and it tells you more about what is achievable than any keyword tool will.
Split your service pages. Roof repair and roof replacement are different searches from different people with different budgets. A combined page competes for neither, and separating them is the highest-return structural change available to most trade websites.
Insist on management, not a handover. A site that nobody maintains drifts out of alignment with the profile, ages visibly and loses ground. Launching is the start of the work, not the end of it.
Want rankings without a monthly campaign?
Sometimes that is realistic and sometimes it is not. We will tell you which, based on who you are actually competing with.
Straight answers.
Does a well-built website rank on its own?
In a market with weak competition, often yes, because the structural work is most of what local ranking requires and most competitors have not done it.
In a competitive market, no. The same site would be one of several well-built sites, and the difference would then come from content, reviews and links.
Why does splitting service pages matter so much?
Because a page can only compete properly for one intent. Someone with a leak and someone planning a full replacement want different information and represent very different jobs.
A combined page is a compromise that satisfies neither search and ranks for neither well. Splitting them is usually the single biggest structural improvement available to a trade website.
Is fourteen keywords a lot?
It depends entirely on which fourteen, and they were not published. Fourteen distinct, meaningful service and town combinations is a strong position. Fourteen close variations of one phrase is much less.
We have flagged this rather than implying the stronger reading, because the original case page does not distinguish between them.
How long does it take to reach the local top three?
Three months in this case, in a suburban market with moderate competition and a site built correctly from the start.
We do not give timelines, because the honest answer depends on how many competitors have done the same work. That is assessable before starting and it is the conversation worth having.
Do you need ads as well?
Not in this case, and frequently yes in others. Advertising is the right answer when you need work before organic visibility can arrive, or when the competition is strong enough that organic position is not attainable at a sensible cost.
For a roofer, the seasonal argument is also strong: advertising during a storm window captures demand that will not wait for rankings.
Where this comes from.
Primary documentation and published research behind the guidance on this page.
- Google Search Central: Local business structured data (opens in a new tab)The markup that tells search engines what a location is and where it is.
- Google Business Profile Help: Guidelines for representing your business on Google (opens in a new tab)The rules that decide whether a profile stays live, including name and category policy.
- Google Search Central: SEO Starter Guide (opens in a new tab)Google's own baseline for what a page needs before it can rank at all.
- Google Search Central: Understanding Core Web Vitals and Google search results (opens in a new tab)How loading, responsiveness and layout stability factor into search.
- National Roofing Contractors Association (opens in a new tab)The industry body for roofing standards and contractor practice.
Talk to the team
A short call, a look at how the business currently shows up, and a straight answer on what we would do first.
