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.

24 hoursTo launch
14 keywordsTop 3 local by month three
No adsAnd no separate SEO campaign
Seven small brass waypoint cairns spaced along a gently rising pale plaster ridge, each casting a long shadow down the slope.
In short

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.

The situation

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.

Industry context

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.

227score for the primary Google Business Profile category, the highest-rated factor
225score for proximity of the address to the point of search
223score for keywords in the Google Business Profile business title

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.

The diagnosis

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.

  1. 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.

  2. 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.

  3. 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 required2 more stepsHide the remaining steps: Assessing what the market required
  1. 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.

  2. 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.

The shift

SEO by construction rather than by campaign

ItemStruggling siteSite built correctly
Service pagesOne combined pageOne page per service
Towns servedImplied or on a map imageNamed in text on relevant pages
SpeedSlow on mobileBuilt to the published thresholds
Structured dataNoneBusiness, location and services described
Profile alignmentInconsistentMatched to the site exactly
Ongoing changesRequire a request and an invoiceManaged continuously
The work

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.

  1. 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.

  2. 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.

  3. 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 included2 more stepsHide the remaining steps: What the 24 hour build actually included
  1. 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.

  2. 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.

The mechanism

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 local map pack, before and afterA street map carrying three neutral competitor pins and one highlighted pin for your business, beside the three listings Google shows in the local pack. A curved arrow traces a listing climbing from a position far down the page into the top three.“NEAR ME” SEARCHTHE LOCAL PACKYOUR BUSINESSSERVICE NEAR ME1YOUR BUSINESSREVIEWS · HOURS · PHOTOS · SERVICES2COMPETITORANOTHER LISTING GOOGLE SHOWS3COMPETITORANOTHER LISTING GOOGLE SHOWSEVERYTHING BELOW THE PACK8YOUR BUSINESSWHERE THE SAME LISTING SAT BEFOREPOSITION GAINED
Three visible results, then a link to see more. Position three is on the page. Position four requires the searcher to take an extra step that most do not.

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.

The outcome

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.

Read this part

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.

Scope

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
What transfers

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.

Questions

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.

Sources

Where this comes from.

Primary documentation and published research behind the guidance on this page.

Next step

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.