Case Study: Achieving First Page of Google for a Roofing Company in 3 Months
1st page of Google
for key service keywords across metro
All-time highs
for Google Search Console impressions
Background
Our client provides roofing and exterior installation services (siding, windows, gutters, etc.) to homeowners in the greater Minneapolis-St. Paul metro. While the client already had an existing website and was pulling traffic from branded searches, the site was not ranking for any core service-related keywords. The marketing manager approached us for SEO consulting to see how we could help them grow this channel in their marketing stack.
Objective
The core ask from our client was to help with their overall SEO. We interviewed them on previous marketing efforts, which services generate the most revenue for the company, and talked to them about their strategy up to the point of the conversation with our team. Isaac worked with the client's marketing staff to identify some concrete goals for an SEO campaign, including:
1. Continue to rank for their brand name within the metro area
2. Ranking for service-related key phrases in Google search. These searches consisted of some variation of "[service] + [location]" (E.g. "roofing maple grove")
A tricky part of this project was determining which city locations to target and when. We worked closely with the management of the company to identify areas with high-value roofing job potential and started with these locations.
Strategy
Our strategy was to use local SEO tactics to rank for terms related to the primary revenue generator for the business: roofing projects. While the client also provides other exterior services, it was important for the campaign's ROI to go after these larger projects, so the sales team at the company could "upsell" the other products.
Site architecture and content strategy played a big role in the project. We worked to build a framework of services and sub-services related to their business. Each core service had its own "silo" with related service information.
Initial keyword research was important to this campaign. We wanted to identify what bottom-of-funnel keyword existed and what type of estimated search volume existed for each suburb.
Service area pages tailored to specific suburbs were also created. This allowed us to get our client ranking faster in different key pockets of the metro.
Results
Ranking first page of Google in core suburbs within weeks
To track the progress of the campaign, we took the keywords from our earliest research and started doing Google rank position measurements very early.
There are 21 metro cities we were using, in addition to around 7 roofing service keyword variations for each city, which equates to around 150 total tracked keywords.
When we began the campaign, our client was not ranking for ANY of these keyword variations at all.
After the core product infrastructure was built out, we began building tailored service area pages for our first set of locations.
Our first four location pages were launched in late August 2024: Blaine, MN, Maple Grove, MN, Coon Rapids, MN, and Buffalo, MN.
Our first keyword data pull happened on 9/26/2024. Not only had all pages been indexed by Google, but Google had ranked our client for most of these keywords.
Coon Rapids
Within several days, Search Console indicated that our Coon Rapids page was indexed by Google. Our keyword measurement software indicated on 9/26/2024 that our client was ranking for most of the tracked keyword variations.
As fall progressed, we honed internal linking and content on the page. By January 2025, our client was the first page on Google for all 7 tracked keyword variations related to roofing services in Coon Rapids.
Blaine
Blaine was slower than Coon Rapids. While the page was indexed, Google did not rank it initially for most of our tracked keyword variations. On October 2nd, our software indicated that Google finally gave our client a "pop" in the algorithm, with our rankings lying between position #30 and #60 in search. This slowly improved into the fall.
As of January 2025, our client is ranking first page on Google for 3 keyword variations, and second page for 3 keyword variations.
Maple Grove
Maple Grove is one of the larger suburban areas targeted in this first batch. Google gave us an initial ranking after launch but did not pop the page to the first page until December 2024. By January 2025, the website was ranking on the first page for four of the seven tracked keyword variations.
Buffalo
Our Buffalo page did not show any signs of ranking until early October. On our October 15th data pull, we were ranking on the first and second page of Google for all tracked keywords. By January 2025, our client was first page for all keyword variations.
Impressions reaching all-time highs
One of the metrics we monitor is impressions in the Google Search Console. This is a good measuring stick for if our pages are gaining visibility across all searched queries, and not just the ones tracked in our database.
Our client began working with us in April 2024. The first 3-4 months of the campaign were dedicated to strategy, site architecture, creating content, improving site speed, and developing customization to the website design. Thus, we did not expect to see any increase in rankings OR impressions during this time. Once our foundational content was launched, things finally started to take hold in October and a significant increase in impressions happened (see graph). In the previous period, we recorded around 400-500 impressions per day. After our efforts, we recorded between 800-1,000 impressions per day (and climbing).
Improved branded search visibility
Showing up for your brand name in Google is a very important consideration with search engine optimization. Our client also spends large parts of their marketing budget on traditional radio advertising, thus making ranking for their brand name extremely important.
A complicating factor is the number of other companies in the industry that use the same name.
By working on the site architecture and sending clear signals in linking and content to Google, we've been able to increase their brand name visibility nationally by 24 position points on average.
We've also had the client spot-check keyword searches in their area for their brand name, and they do significantly better than our national testing - thus giving us the impression that Google does weigh for the location of the searcher.
Conclusion
This is still an ongoing campaign that we are working to improve. our client has bigger goals and we are discussing how to take advantage of other channels with search engine marketing (including ranking for the most competitive keyword sets that include "Minneapolis"). Overall, the client has been pleased with the results.
The company's marketing manager, Josh Clark, left a review on Google related to the project; "Bluestem continues to provide us with great results, communication is really good, and they listen to us when we want to pivot our focus on different strategies." Read the review here
We are also working on a reputation management campaign and a Google Business profile campaign for the client, but it is still too early to publish the data. We will update this case study with our ongoing findings.
Get your project rolling
Bluestem Media can help you reach your digital marketing goals. Set up a free consultation call with us right now.