Roofing SEO Case Study | Map Rankings Turned Around in 23 Days
A roofing contractor needed visibility before storm season, not after it. Here is exactly what changed the map grid in 23 days and why speed was possible in this case.
Roofing Contractor
Client
23 Days
Timeline
Roofing
Industry
Meet the Business
A roofing contractor with a full crew, proper insurance, manufacturer accreditations and a long list of finished work. Re-roofs, flat roof replacement, storm damage, gutter and fascia work, insurance jobs.
They came to us in the weeks before their busiest period with a specific, time-boxed problem: leads were arriving almost entirely through one lead-generation platform that took a cut of every job and sent the same enquiry to four competitors at once. They wanted their own pipeline, and they wanted it working before the storms.
Twenty-three days is not typical and we do not promise it. Most local SEO work shows meaningful movement between six and twelve weeks, and competitive markets take longer. This account moved quickly because the fundamentals were broken rather than missing — the business had genuine authority that was being actively suppressed by fixable errors. Repairing a blockage is faster than building from nothing.
The Challenge
The opening grid showed a listing that was effectively switched off across most of its own territory. Our first job was to find out why, because the business itself looked strong on paper.
- A duplicate Google listing was cannibalising the real one. An old, unclaimed profile from a previous address was still live, splitting reviews and signals between two entries and confusing Google about which was current.
- The primary category was wrong. The listing was set to a general construction category rather than Roofing Contractor, which excluded it from the searches that mattered most.
- The address on the listing did not match the website or the directories. Three variations were in circulation after a move that was never fully propagated.
- Storm damage and insurance work were invisible. The highest-value, highest-urgency service the company offered had no page and no service entry anywhere.
- Proof existed but was unpublished. Hundreds of job photographs sat on phones. The website showed six stock images.
None of these are slow problems. They are all problems that can be corrected in days, and every one of them was holding the listing down.
What We Actually Did
Week One: Remove the Blockages
- The duplicate listing was found, claimed and merged into the live profile, consolidating the review history and ending the split. This alone is frequently the single biggest unlock on an underperforming listing, and it is invisible unless somebody goes looking for it.
- Primary category changed to Roofing Contractor, with secondaries for Flat Roof Contractor, Gutter Cleaning Service and Siding Contractor.
- One canonical address, phone and business name agreed and pushed out across every directory, with the stale variants corrected or removed.
- Service area rewritten as a named list of towns rather than a radius.
- Every service entered with its own description, storm damage and insurance claims included and given prominence.
Week Two: Publish the Proof
- Job photography, finally uploaded. Around 120 images from real jobs went onto the listing and the site — before, during and after shots, at properties in the towns being targeted.
- A storm damage page built for urgency: what to do in the first hour, how the insurance process works, what a temporary make-safe involves, and how fast a crew can attend.
- Service pages for each roof type rather than one combined page, so a search for flat roof replacement could match a page about flat roof replacement.
- Accreditations and insurance made visible on every page. In roofing, trust signals are conversion mechanics, not decoration.
- A review push to recent customers, concentrated on jobs completed in the target towns.
Week Three: Consolidate
- Service schema with a named area served applied across the service pages — never LocalBusiness markup on a page that is not a physical premises.
- Speed and mobile work. Roofing enquiries peak on phones immediately after bad weather, often on a poor connection. The site had to load in seconds.
- Google Posts started, weather-led, with make-safe advice during the first storm of the season.
- Call tracking installed so the client could see, for the first time, where enquiries were actually coming from.
The Results
The two grids below were run from the same set of search points, twenty-three days apart. Nothing about the company changed in between — same crew, same prices, same van. What changed is what Google could see.

Two live profiles for one business split every signal between them — reviews, photos, clicks, calls. Google has to guess which one represents the real company, and while it is guessing, neither ranks properly. Merging them does not add anything new. It simply stops the business competing with itself.
Before and After
| Measure | At the start | After 23 days |
| Google listings for the business | 2 (one stale duplicate splitting signals) | 1, merged and verified |
| Primary category | General construction | Roofing Contractor |
| Address variants in circulation | 3 | 1 |
| Storm damage / insurance content | None anywhere | Dedicated page and listed service |
| Real job photos published | 0 (6 stock images) | Around 120 |
| Source of leads | Almost entirely a paid lead platform | Own pipeline running alongside it |
Services Provided
- Local SEO and duplicate listing resolution
- Google Business Profile rebuild
- Citation cleanup and NAP consolidation
- High-intent service page content
- Photo asset production and publishing
- Call tracking and reporting setup
What the Client Said
Key Takeaways
Fast results come from removing blockages, not from working harder
This account moved in 23 days because the business already had authority that was being actively suppressed — a duplicate listing, a wrong category, three addresses. Clearing that is fast. Building authority that does not yet exist is not, and any agency promising the first timeline for the second job is selling you something.
Always check for duplicate listings first
Old addresses, previous owners, a franchise that once operated from the unit. Duplicates are common, invisible from the front end, and quietly expensive. It is the first thing worth auditing on any underperforming listing.
Your photos are the asset you already own
Every roofing crew has thousands of job photos sitting on phones. Published, they are proof, freshness signals and conversion material all at once. Unpublished, they are nothing.
Owning the pipeline changes the economics
A lead platform sends the same enquiry to four contractors and charges each of them for it. A map listing sends one enquiry to one business. The second kind compounds; the first kind is rent.
Is something suppressing your listing?
Duplicates, wrong categories, mismatched addresses. These are quick to find and quick to fix — if someone looks. We will look, free.
- A duplicate and consistency audit across the directories
- A visibility grid across your service area
- A prioritised list of what is fixable this month
- No contract, no obligation
Ready to Achieve Similar Results?
Every business is unique, but success follows proven strategies. Let’s discuss how we can create a custom solution for your specific goals and challenges.

