Industry: Roofing Services
Business Type: Local Service Provider
Scope: Technical SEO, local SEO, GBP optimization, content, citations
The Problem
Local SEO doesn’t forgive sloppy execution the way broader SEO sometimes can. Rank for the wrong query in the wrong area and you get traffic that never converts. There’s no room to waste.
This site started in worse shape than a normal local SEO project. It had previously been hacked, leaving behind a mess of junk URLs still indexed by Google. That junk was eating crawl budget and dragging down indexation for the entire site. On top of that, the UI and content were outdated and needed a full rebuild.
This wasn’t a tune-up. It was a site that needed to be rebuilt from the ground up before any local strategy could work.
The Strategy
Nothing else mattered until the technical mess was cleaned up. A local SEO strategy built on top of a compromised, poorly indexed site was never going to work, so cleanup came first.
From there, the focus shifted to what actually drives local conversions: hyperlocal keyword targeting, a Google Business Profile that functions as a real acquisition channel, and content that proves the business is legitimate and trustworthy in its specific service areas.
Execution
1. Cleaned up the technical damage
We submitted removal requests through Search Console for the junk URLs left behind by the hack, freeing up crawl budget that had been wasted on pages that shouldn’t have existed. We resolved duplication and keyword cannibalization issues, then rebuilt the XML sitemap to reflect only active, valuable pages and refined robots.txt to guide crawlers more efficiently.
Broken links were fixed, page speed improved, mobile responsiveness ensured, and basic schema markup implemented to strengthen how the site appeared in search results.
2. Rebuilt the UI around Information Gain
User experience directly affects how search engines evaluate a page’s usefulness. We reorganized content layout, added FAQs, and optimized service pages with detailed local information. Internal linking connected related pages, and CTAs were improved to reduce bounce rates. Services, locations served, and contact details were made easy to find, for users and crawlers alike.
3. Targeted keywords by local intent, not volume
We researched high-intent local search terms specific to each service area, targeting phrases like “roof repair in [City]” and “emergency roofing services near me” instead of chasing generic, high-volume terms that wouldn’t convert for a local business.
4. Optimized content for relevance and trust
Homepage, service pages, and city-targeted landing pages were rewritten with refined title tags, meta descriptions, headers, and body content built around local keywords, without overstuffing. Outdated content was refreshed, missing service details were added, and E-E-A-T signals, customer reviews, certifications, detailed service descriptions, were strengthened throughout.
5. Expanded reach through semantic region targeting
Instead of only mentioning city names, we structured content around surrounding neighborhoods, landmarks, and commonly searched local areas. This extended visibility beyond city-level searches into the hyperlocal queries that often convert best.
6. Turned Google Business Profile into a lead source
We fully optimized the listing: accurate service categories, detailed descriptions, high-quality project photos, and regular posts showcasing updates and offers. Reviews were actively collected and responded to, and service areas were updated to accurately reflect coverage.
7. Built consistent local citations
We built citations on trusted directories like Yelp, Angi, BBB, HomeAdvisor, and Porch, ensured NAP consistency across every platform, and disavowed spammy or inconsistent citations that could have hurt local rankings.
8. Optimized for clicks, not just rankings
Meta titles and descriptions were rewritten to be more compelling and action-driven, using benefit-focused language like “Protect Your Home with Expert Roofing” to improve click-through once the site was ranking.
The Numbers

Clicks grew from 339 to 701, a 206% increase.
Impressions grew from 66.5K to 375K, a 560% increase.
Inbound calls hit 69 in a single month, more than the previous six months combined, which totaled 34.
Why This Matters
The call数据 is the real signal here. Clicks and impressions show the site getting found. Sixty-nine calls in one month, outperforming half a year of prior activity combined, shows the site actually converting that visibility into business.
That kind of jump doesn’t happen from rankings alone. It happens when technical health, local relevance, and a fully optimized GBP profile all work together at the same time.
The Takeaway
A hacked, poorly indexed site with an outdated UI isn’t a small fix. It’s a rebuild. But once the foundation was clean, the local strategy on top of it worked exactly as it should, more visibility, more clicks, and a call volume that finally reflected the quality of the work being done.