Client case study · Local SEO · 9 months
A roofer climbed 15 spots on Google, site-wide.
A two-location residential and commercial roofer in North Central Florida, with a strong reputation and a website Google kept burying on page three. The work began in February 2026. Here’s what changed by October, measured against the three months before we started.
- Client
- Roofing contractor, 2 locations
- Industry
- Residential & commercial roofing
- Market
- Gainesville area, FL
- Work
- Local SEO, Google profiles
- Measured
- Nov–Jan vs Aug–Oct
+15
Spots higher in average Google position, 34.2 to 19.5 across every search.
+27%
More clicks from Google, 317 to 402 in comparable three-month windows.
84%
Of the map grid in the top 3 for “roof inspection,” up from 62%.
#4
Gemini’s answer for a “roofing contractor near me” in the home market.
A great roofer on page three.
In the three months before the work began, Google showed this company to searchers more than 132,000 times. Almost nobody clicked. The average result sat so far down the page that homeowners called someone else first.
The average Google position was 34.2, page three to four on a typical search. The most valuable term in the market, “roofing gainesville fl,” sat at position 19.
Only 0.24% of searchers clicked, fewer than 3 for every 1,000 times Google showed the company. The demand was there. The rankings weren’t.
And the site was competing with itself: two near-identical pages fought over the same city searches in each market, so neither could rank.
What we did, and when.
No redesign and no ad spend. Fix the foundation, give Google one clear page per city, then keep both Google profiles active every week.
February 2026: the work begins
A technical and keyword audit across both markets. Every result on this page is measured against November 2025 through January 2026, before any of it started.
May 2026: stop the site from fighting itself
Two near-identical city pages were competing for the same searches in each market. They were combined so Google trusted one strong page per location instead of two weak ones, and the sitemap was cleaned to match.
June 2026: both Google profiles go active
GrowthOS Local Lighthouse started on both locations: keyword-tuned posts several times a week, photo uploads, review replies, and business listings kept in sync across the directory network.
July 2026: the on-page sprint
Money-page titles rewritten for the searches buyers actually type, roofing-contractor structured data added, a third city page rebuilt to full depth, a thin flat-roof FAQ turned into a buyer’s guide, and internal links wired across every service and location page.
August to October 2026: compounding
Steady publishing on both profiles and monthly tuning of the pages that rank. September was the best month of the year for average position.
The searches that bring in roofing jobs.
Average Google position for the money terms we targeted. Before is November 2025 through January 2026. Now is August through October 2026. Lower is better.
| Search | Before | Now | Spots gained |
|---|---|---|---|
| “roofing” | 20.2 | 6.9 | 13.3 |
| “roofers near me” | 26.3 | 14.7 | 11.6 |
| “roofing companies gainesville” | 14.3 | 5.4 | 8.9 |
| “roofing company gainesville fl” | 17.6 | 10.9 | 6.7 |
| “roofing gainesville fl” | 19.1 | 12.7 | 6.4 |
| “gainesville roofing” | 15.4 | 10.1 | 5.3 |
| “roofing contractors gainesville fl” | 16.5 | 12.6 | 3.9 |
Across the whole site, clicks rose 27% while Google showed the company 14% less often. More clicks from fewer searches: the click-through rate climbed from 0.24% to 0.35%.
The turn came the month we started.
Average Google position by month, United States searches. It climbed in February, held through the summer, and broke higher again in September as the on-page work and weekly publishing compounded.
| Month | Average position |
|---|---|
| November 2025 | 27.8 |
| December 2025 | 37.5 |
| January 2026 | 35.0 |
| February 2026 | 24.0 |
| March 2026 | 23.0 |
| April 2026 | 23.3 |
| May 2026 | 21.4 |
| June 2026 | 22.8 |
| July 2026 | 23.4 |
| August 2026 | 22.0 |
| September 2026 | 15.8 |
| October 2026 (1st to 27th) | 20.1 |
On the map, too.
At the second location we scan the Google Maps results on a 169-point grid around the office. The share of that grid where the company shows in the top 3 is the share of the service area where it gets the calls.
| Search | Top 3, Feb | Top 3, Oct | Avg map rank |
|---|---|---|---|
| “roof inspection” | 62% | 84% | 3.4 to 2.5 |
| “roof replacement” | 40% | 60% | 3.7 to 3.0 |
| “emergency roof repair near me” | 26% | 40% | 4.4 to 3.5 |
| “roofing contractor near me” | 25% | 36% | 4.2 to 3.6 |
Grid scans from February 17 and October 1, 2026.
Showing up in AI answers.
Ask Google’s Gemini for a “roofing contractor near me” in the home market and this company is the fourth name it gives. Meta AI lists it fifth. Those answers are where a growing share of homeowners start looking.
Sources: the client’s Google Search Console, November 1, 2025 to January 31, 2026 vs July 30 to October 27, 2026; Google Maps grid scans February 17 and October 1, 2026; AI assistant scan October 5, 2026.
Good at the work and invisible on Google? Book a call, or call (352) 623-6199.
