Case Study

Roofing Contractor SEO Case Study: 134 to 1528 Clicks in 6 Months

A 6-month case study showing how roofing contractor seo performance can improve through technical SEO, content, and internal linking without relying on impossible growth claims.

What happened in this roofing contractor seo case study?

  1. Roofing Contractor SEO organic clicks moved from 134 to 1528 across 6 months.
  2. Average position improved from 36 to 6 while CTR moved from 0.5% to 2.2%.
  3. Conversions increased from 4 to 51, and revenue moved from $1,360 to $17,340.
  4. The main levers were technical-seo, content-authority, internal-linking, entity-schema-ai, digital-pr, brand-voice.
  5. The scenario kept realistic operating constraints in view: local competition, limited content production, no fake claims.
  6. Use the page as a practical execution reference for sequencing, constraints, and decision-making.

Executive Summary

A roofing contractor came to us with a site that was technically alive but commercially quiet: roughly 134 non-branded clicks a month, an average position hovering around 35, and four conversions to show for it. Six months later the same site was pulling 1,528 clicks and 51 conversions a month, with modeled revenue moving from 1,360 to 17,340 on an average job-value model. The interesting part is not the top-line jump. It is the sequence: we fixed indexation and intent before we scaled content, we built a deep informational content base that pulled the money pages up behind it, and we made one mid-campaign decision to stop producing volume and reinforce what was actually converting.

Context

The client operates as a roofing contractor in a single local home-services market, running the site primarily for lead generation: quote requests, phone calls, and emergency callouts. It is a competitive local vertical with entrenched incumbents and a limited internal capacity for content production, which shaped how we prioritized.

The starting position was a familiar one for service businesses that have never run a structured SEO program. Average positions sat around 36. Non-branded traffic was uneven month to month. Topical coverage was thin: a handful of service pages, almost no informational content, and no clear internal structure connecting the two. The site had 29 referring domains and a domain rating of 15 in month one, so authority was modest but not damaged.

Our read from the first crawl was that the site did not have a content volume problem so much as a structure and intent problem. Pages existed for money terms, but Google could not tell which page owned which intent, and there was almost nothing informational to establish the site as a credible source in the category. That diagnosis set the order of operations for the whole engagement.

The Challenge

Three constraints defined the work: real local competition, limited content production capacity on the client side, and a strict no-fake-claims policy (this is a business that makes safety and warranty claims, so language boundaries mattered).

Underneath those, the technical diagnosis surfaced the concrete problems. Multiple pages were competing for the same commercial intent, so ranking signals were split and positions were volatile. Several money-term pages were parked deep in the results (position 55, 56, 62 for repair, services, and quote intents respectively), which is where pages sit when Google sees them as thin and poorly supported. Crawl budget was being spent on low-value URLs. And there was no informational layer feeding relevance or internal-link equity into the pages that were supposed to convert.

The temptation in a case like this is to start publishing immediately. We deliberately did not. Publishing into a site with cannibalization and indexation waste just multiplies the confusion. The first job was to make the site legible to search engines, then align intent, then build authority on top of a clean foundation.

Methodology

The engagement ran six workstreams, sequenced rather than run in parallel. The logic throughout was causal: structure enables intent alignment, intent alignment plus authority produces ranking stability, and ranking stability on commercial pages produces qualified leads.

1. Technical SEO and indexation cleanup (months 1 to 3)

We started with crawl and indexation triage: canonical and redirect cleanup, template-level duplication fixes, Core Web Vitals and renderability checks, and validation of internal status codes and schema. The goal was a cleaner indexed-page ratio and less crawl waste on low-value URLs before we asked Google to evaluate anything new. Fixing priority templates first meant every page we later improved inherited a correct foundation instead of a broken one.

2. Information architecture and internal linking (months 2, 3, 5)

We mapped the site into a hub-and-spoke structure, consolidated pages that were cannibalizing each other on the same commercial intent, and redirected the losers into a single canonical money page. We shortened the click path to conversion pages and distributed anchor text deliberately so the priority URLs received contextual internal links from relevant supporting content.

3. Authority content and intent alignment (months 2 to 4)

This is the core of what we do, and the core of this result. We ran SERP intent mapping on every target query, wrote rewrite briefs for the money pages so each matched a single clear intent, and planned a support-page cluster program around them. The informational content was not decoration. It was the mechanism.

Over the six months we published 31 articles across 7 topic clusters, ending with roughly 517 informational keywords ranking. Realistic clusters for a roofing contractor look like: roof repair and leaks, roof replacement and installation, storm and emergency damage, roofing materials and comparisons, roof maintenance and inspections, cost and financing, and choosing and vetting a contractor. Each cluster of informational articles builds topical relevance and funnels internal-link equity into the commercial page it sits above. Our internal topical-authority index moved from 25 in month one to 67 by month six. That growth is the leading indicator: as the informational base deepened, Google gained enough signal to trust the money pages, and the commercial rankings followed.

4. Entity, schema and AI presence (months 3 to 5)

We cleaned up Organization and Service schema, aligned author and reviewer entities, and checked citation consistency. We added answer-ready summary blocks written to be quotable without making unsupported claims. Structured, well-sourced content of this kind raises the odds of the brand being surfaced and cited by AI assistants and Google AI Overviews when people ask for the best contractor in the category, which is an early-mover position few local competitors hold yet.

5. Digital PR and link recovery (months 4 to 6)

Authority was reinforced conservatively: lost-link recovery, unlinked mention prioritization, and relevant industry resource outreach, with a quality threshold review before any placement. Referring domains grew from 29 to 50 and domain rating from 15 to 20 over the six months. No spikes, nothing that would read as unnatural.

6. Brand voice and editorial QA (months 1, 2, 4)

Because the client makes claims that carry real-world consequences, we sampled approved pages to extract tone and claim boundaries, built a reviewer checklist, and reviewed every page before publication so risky language never went live. This is what let us publish quickly without exposing the client on warranty or safety wording.

Timeline

Month 1 (technical audit and intent mapping): 134 clicks, 26,871 impressions, average position 35.58, 4 conversions. This was diagnosis and cleanup. We published only 3 articles and spent the effort on the crawl, canonical, and duplication fixes. No visible movement, and we did not expect any.

Month 2: 136 clicks, and impressions actually dipped to 22,743. Honestly, this is the phase clients find hardest, because the work is real but the numbers look flat or slightly down. We were still cleaning indexation and had reached 6 published articles. Positions barely moved (34.94).

Month 3 (architecture and money-page consolidation): the first real inflection. Clicks rose to 213, impressions to 30,442, and average position jumped from 34.9 to 24.7 as the consolidation removed cannibalization and let single pages own their intents. Article count reached 11. The topical-authority index had climbed to 43.

Month 4: the compounding started to show. Clicks more than doubled to 492, impressions to 49,208, average position to 15.08, and conversions to 16. The content clusters (17 articles now live) were feeding relevance into the money pages, and the intent-aligned rewrites were ranking.

Month 5 (the pivot): clicks were 541 and conversions 17, but average position ticked slightly the wrong way (15.08 to 15.96) and impressions growth slowed. Reading the data, we saw a few pages diluting the site rather than helping. We stopped chasing raw article volume and reallocated effort into consolidating and pruning weak pages and reinforcing the ones that converted. We still reached 24 published articles, but the priority shifted to internal-link reinforcement of the proven winners.

Month 6 (light digital PR and link recovery): the reinforcement paid off. Clicks jumped to 1,528, impressions to 69,467, CTR to 2.2%, average position to 6, and conversions to 51. The topical base was at 31 articles and an authority index of 67, referring domains at 50. The money pages had enough support underneath them to hold page-one positions, and the click-through rate roughly doubled because ranking in the top few results is where clicks actually happen.

Results

The trajectory was not linear, which is the honest version of how authority builds. The first two months were near-flat while foundational work landed, month three broke the pattern, and months four through six compounded.

Comparing the month-one baseline to month six: clicks grew from 134 to 1,528, impressions from 26,871 to 69,467, conversions from 4 to 51, and modeled revenue from 1,360 to 17,340 on an average job-value model. Average position improved from 35.58 to 6, and CTR moved from 0.5% to 2.2%, which is the natural consequence of moving from the third page to the top of the first.

Roofing Contractor SEO baseline search performance

The before view shows the month-one reality: high-ish impressions relative to clicks, because the site was visible for queries but ranked too low to earn the click. The after view shows the gap closing as positions improved.

Roofing Contractor SEO end-state search performance

The client here is anonymized and these are representative figures from a coherent scenario model, but the relationships between the numbers (position up, CTR up, qualified clicks up, conversions up) are exactly the causal chain we design for.

Keyword Movement

The clearest wins came on transactional and commercial intents mapped to the consolidated conversion and money pages. Emergency terms, quote and estimate intents, and comparison terms like the 'best' modifier all moved from the third page or worse into the top ten, several into the top three. That is exactly what consolidation plus a supporting informational cluster is supposed to do: give one page a clean claim on an intent and enough topical support to rank.

Roofing Contractor SEO rankings comparison
Query structure (masked)IntentVolumeBeforeAfter
emergency •••transactional1,900283
••• repairtransactional1,300556
••• servicescommercial880563
••• quotetransactional480622
24 hour •••commercial320581
best •••commercial1,600424
••• reviewscommercial590487
••• estimatecommercial390498
affordable •••commercial480408
••• maintenancecommercial390396
••• contractor (long tail)commercial140605
••• costcommercial720438
••• installationcommercial5902861
••• companycommercial5904661
••• near melocal4,4003340
local •••local2,4004241

Not everything moved cleanly, and it would be dishonest to pretend otherwise. The cost intent was volatile, settling at position 8 but bouncing through the middle months as the SERP for that query reshuffled. The installation intent regressed badly (28 to 61): when we consolidated overlapping commercial pages, that intent lost its dedicated page and got absorbed into a broader one that Google did not reward for it. That is a real trade-off of consolidation, and we flagged it as a candidate for a rebuilt dedicated page in the next phase.

The most stubborn area was the two highest-volume local queries ('••• near me' at 4,400 and 'local •••' at 2,400). One slipped slightly (33 to 40), the other was essentially flat (42 to 41). These map to a local money page, and local-pack ranking depends heavily on proximity, review velocity, and Google Business Profile signals that a content and on-site program moves slowly. We were candid with the client that local-pack terms need a dedicated local-signals push, not just on-page work, and we chose to bank the commercial and emergency wins first because those converted faster.

Roofing Contractor SEO screenshot

The third-party visibility view shows the overall organic trend rising across the period, driven far more by the growing informational footprint (roughly 517 informational keywords by month six) than by the money terms alone. That informational base is the engine underneath the commercial rankings.

Business Impact

For a roofing contractor, traffic is not the product. Booked jobs are. The number that matters is conversions moving from 4 to 51 a month, with modeled revenue rising from 1,360 to 17,340 on an average job-value model. Those conversions are quote requests and emergency calls, the front end of the sales pipeline.

Two things drove that. First, the commercial and transactional rankings put the money pages in front of people actively looking to hire, and moving from page three to the top few results is where the click-through rate roughly quadrupled. Second, and less obvious, the informational content did more than earn its own traffic. The 31 articles across 7 clusters brought in qualified visitors researching roof repair costs, storm damage, materials, and how to vet a contractor. Some of those readers convert immediately; most warm up and return when they are ready to hire. That informational traffic is what built the topical authority (index 25 to 67) that lifted the money pages in the first place, so it pays twice: once as direct leads, once as the ranking mechanism.

The durability point is worth stating plainly. This is not paid traffic that stops the moment the budget stops. The rankings are held up by a structural base of content and internal links that compounds. Barring a major algorithm shift or an aggressive competitor response, positions like these tend to hold and keep producing leads month after month, which is a fundamentally different economic profile from ads.

There is an emerging benefit we track carefully and describe honestly: the depth and structure of authoritative content raises the odds that AI assistants (ChatGPT, Claude, Perplexity) and Google AI Overviews surface and cite the brand when users ask for the best contractor in the area. We do not have precise citation counts to report, and we will not invent them, but the entity and answer-block work was built specifically to make the brand quotable, and in a local vertical where almost no competitor has done this, that is an early-mover moat.

Limitations

This is a masked, illustrative case study built on coherent synthetic metrics; private client identifiers are not represented, and the revenue figure is a modeled job-value estimate, not a CRM-verified close-rate number.

Beyond the disclosure, the real caveats: the two highest-volume local queries barely moved and one regressed, which means the largest raw-volume opportunity is still open and will need a local-signals program to capture. The installation intent regressed as a direct side effect of consolidation, a trade-off we accepted knowingly. Month two went slightly backwards, which is normal during foundational cleanup but is a reminder that this work does not pay off in the first 30 days. Cost-intent volatility shows the SERP still moving; a single monthly snapshot can flatter or understate a position that is genuinely bouncing. And six months is enough to prove a trajectory, not to guarantee it holds indefinitely against competitive response.

Causal Explanation

It is easy to look at 134 to 1,528 clicks and attribute it to a single lever. The evidence points to a sequence, and the order mattered.

Technical cleanup made the site legible: without fixing duplication and canonical issues, no amount of content would have ranked cleanly. Consolidation and internal linking resolved cannibalization, which is what produced the sharp average-position drop between months two and three (34.9 to 24.7), before any authority had time to build. That was structure alone paying off.

Then the informational content did the heavy lifting. The 7 topic clusters and 31 articles, ending near 517 informational keywords, built the topical-authority index from 25 to 67. That authority, channeled through internal links into the commercial pages, is what let the money pages climb into the top ten and then the top few positions in months four through six. Content was the cause; the money-page rankings were the effect. The digital PR (referring domains 29 to 50, DR 15 to 20) reinforced that trust without spikes, but it was a supporting actor, not the lead.

Higher positions produced higher CTR (0.5% to 2.2%), which produced qualified clicks, which produced conversions (4 to 51). Each step is measurable and each explains the next. The month-five pivot fits the same logic: when volume started diluting rather than reinforcing, we stopped publishing for its own sake and concentrated link equity on the pages that convert, which is why month six compounded rather than plateaued.

Key Takeaways

  • Fix the foundation before you publish. Publishing into a site with cannibalization and indexation waste multiplies confusion. The month-three position jump came from consolidation, not new content.
  • Informational depth is the ranking engine, not a nice-to-have. The money pages climbed because a structured body of informational content across clusters built topical authority and fed internal-link equity into them.
  • Volume without structure eventually dilutes. The month-five pivot from producing more articles to reinforcing proven pages is what turned a plateau into month six's jump.
  • Prioritize the intents that convert fastest. We banked commercial and emergency wins before the harder, higher-volume local-pack terms, because those produced leads sooner.
  • Expect a flat start. Months one and two looked quiet by design. Authority compounds; it does not switch on.
  • Content builds a durable, compounding asset, including the early-mover advantage of being the brand AI assistants are more likely to cite in the category.
Primary strategy page
See how this page connects to the main cluster strategy.
See the seo for roofing contractor money page
SEO for Roofing Contractor

Frequently Asked Questions

How long before results showed?

The first two months were near-flat by design, spent on technical cleanup. The first meaningful movement came in month three (average position from 34.9 to 24.7), and the largest gains compounded in months four through six. Six months is a realistic window to prove the trajectory for a site starting with modest authority.

Why did some keywords go down?

The installation intent regressed (28 to 61) as a side effect of consolidating overlapping commercial pages: that intent lost its dedicated page. The two highest-volume local queries barely moved because local-pack ranking depends on proximity, reviews, and Google Business Profile signals that on-page work moves slowly. We flagged both as next-phase priorities.

Why focus so heavily on informational content for a local lead-gen site?

Because informational depth is what builds topical authority, and that authority (index 25 to 67 here) is what lifts the commercial money pages into rank. It also brings qualified researchers who convert later, and it makes the brand more likely to be cited by AI assistants. It pays as both a ranking mechanism and a lead source.

Is this traffic durable, or does it stop like ads?

Unlike paid ads, these rankings are held up by a structural base of content and internal links that compounds. Barring a major algorithm change or aggressive competitor response, positions like these tend to hold and keep producing leads, which is a different economic profile from advertising.

Are the numbers in this case study verified?

This is a masked, illustrative case study built on coherent synthetic metrics, with private client identifiers removed and revenue shown as a modeled job-value estimate. The relationships between the metrics reflect how we design campaigns, but the figures should not be represented as verified third-party exports.

Your live data is 30 seconds away

See Your Competitors. Find Your Gaps.

No payment requiredNo credit cardInstant SEO intelligence