Local SEO for Small Business: How a Roofer Went From Page 3 to the Map Pack

A roofing company in the Southeast came to us last spring with a decent website, a logo they’d paid too much for, and almost no calls coming from Google. They ranked on page three for “roof repair” in their own city. Their competitors, some with uglier sites and smaller crews, sat in the map pack at the top of the page taking the calls. The owner assumed he needed a new website. He didn’t. Six months of focused local SEO for small business work later, he was showing up in the top three map results for most of his money searches, and the phone was doing something it hadn’t done in a year. Ringing.

 

Here’s what we changed, roughly in the order we changed it, so you can run the same playbook on your own business.

 

 

The problem was never the website. It was the map.

 

Most small business owners think SEO is about their website, so they pour money into a redesign and wait for the phone to ring. For local searches, that’s backwards. When someone types “roof repair near me” or “emergency plumber [city],” Google shows a map with three business listings before it shows a single regular website result. That block is the local pack, and it’s pulling from Google Business Profiles, not from your homepage.

 

So the first thing we did wasn’t touch the website at all. We pulled up the roofer’s Google Business Profile and found what we find on most accounts. A profile that was technically “there” and doing almost nothing.

 

Local SEO is the practice of getting your business to show up when nearby customers search for what you sell. For a service business, that mostly means winning a spot in that map pack and the local results underneath it. Your website matters, but it’s the supporting actor here, not the lead.

 

Fix the Google Business Profile before you touch anything else

 

If you do one thing after reading this, do this. Google Business Profile optimization is the single highest-leverage move in local SEO for small business, and it’s free.

 

The roofer’s profile had the wrong primary category. He’d picked “Construction Company” when the category that actually matched his searches was “Roofing Contractor.” That one field is a ranking factor. We changed it, then added every relevant secondary category Google offered.

 

From there we worked through the rest of the profile like a punch list:

 

  • Primary category set to the most specific match, with secondary categories added for related services.
  • Services and service areas filled out completely, using the actual phrases customers search (“roof leak repair,” “storm damage roof,” “metal roof installation”).
  • Real photos uploaded, not stock. Crews on roofs, before-and-after shots, the truck. We added a batch of 20 and kept adding a few every couple of weeks because profiles that get fresh photos tend to hold their rankings better.
  • Business hours, phone, and website made dead accurate and matched to what’s on the site.
  • Google Posts published weekly, short updates about jobs and seasonal offers, because an active profile signals a real, operating business.

 

None of this is glamorous. It took an afternoon to set up and about twenty minutes a week to maintain. It also moved his rankings faster than anything else we did.

 

[IMAGE: Annotated screenshot of a Google Business Profile dashboard highlighting the primary category, services, and photo sections. Alt text: Google Business Profile optimization showing primary category and services fields for a small business]

 

Reviews are the ranking factor nobody wants to do the work on

 

The roofer had 11 reviews. His top competitor had 240.

 

Reviews do two jobs at once. They’re a ranking signal for the local pack, and they’re the thing a human actually reads before deciding who to call. You can be sitting in the number one map spot and still lose the job to the guy below you with four times the reviews. Both halves matter.

 

We didn’t buy reviews and you shouldn’t either. Google is good at catching fake ones now, and a cluster of five-star reviews that all show up in the same week looks exactly as suspicious as it is. What we did was build a system. Every completed job ended with a text to the customer containing a direct link to the review form. The crew lead asked in person before leaving the driveway. That’s it. The ask plus the link.

 

He went from 11 reviews to 68 in five months, almost all of them from happy customers who just needed to be asked and handed a link. His average rating held at 4.8. That combination, steady new reviews and a high average, is worth more than a one-time burst of fifty.

 

One honest caveat. This works when the work is good. If your reviews are mediocre because your service is mediocre, local SEO won’t save you, and frankly we’ll tell you that on the first call. Fix the service first.

 

Local landing pages beat one “service areas” page

 

Here’s where the website finally came in.

 

The roofer served eight towns but had a single page that listed all eight in a sentence at the bottom. We’ve seen this hundreds of times. One thin “service areas” page trying to rank for eight different cities, ranking for none of them.

 

So we built real pages. One per priority town, each with genuinely different content. The page for the wealthier coastal town talked about salt-air corrosion and metal roofing. The page for the older inland town talked about storm damage and insurance claims, because that’s what people there actually search and deal with. Real local photos on each. The address and service details for that specific area.

 

This is the part of seo for local businesses that takes actual effort, which is exactly why most competitors skip it. We wrote eight pages over three weeks. Within two months, six of them were ranking on page one for “[service] [town]” searches that the old single page never touched.

 

Diagram comparing a single service area page to multiple local landing pages for small business SEO
Diagram comparing a single service area page to multiple local landing pages for small business SEO

 

Ignore the agency selling you 300 directory listings

 

Around month two, the roofer forwarded me a pitch he’d gotten from another agency promising to submit his business to “300+ directories” for a monthly fee. He wanted to know if we should be doing that.

 

Short answer, no.

 

Citations, your business listed consistently across directories like Yelp, Angi, and the BBB, do matter for local SEO, but the value tops out fast. What Google cares about is consistency. Your name, address, and phone number identical everywhere it appears. A handful of the right citations done accurately beats 300 sloppy ones that list an old phone number and tank your consistency score.

 

We claimed and corrected his listings on the dozen directories that actually carry weight for a roofer, made sure the NAP matched his profile exactly, and stopped there. The 300-directory package would have cost him money every month to make his rankings slightly worse. This is the kind of thing a lot of small businesses get talked into because it sounds like a lot of work is happening. Volume isn’t the goal. Accuracy is.

 

Then the phone started ringing

 

By month six the numbers told the story. He’d gone from page three to the top three map results for most of his core searches. Profile views were up roughly 4x. Calls and direction requests from the profile, the metrics that actually predict revenue, climbed steadily every month. We track this stuff down to which search produced which call, because clicks and impressions don’t pay anyone’s payroll. Booked jobs do.

 

The website redesign he came in asking for? We never did it. The existing site was fine once it had real local pages feeding it. He spent his budget on the things that moved rankings instead of on a prettier homepage nobody was finding.

 

A local SEO for small business checklist you can start today

 

If you want to start without hiring anyone, here’s the local SEO checklist we’d hand you. In order.

 

  1. Log into your Google Business Profile and check your primary category. Make it the most specific match for what you do. This is the highest-impact five minutes you’ll spend.
  2. Fill out every field. Services, service areas, hours, description, all of it. Empty fields are missed ranking signals.
  3. Upload 15 to 20 real photos and set a reminder to add a few more each month.
  4. Set up a review request system. A saved text with your review link, sent after every job. Ask out loud too.
  5. Audit your name, address, and phone across your top ten directory listings and make them identical.
  6. Build one page per town you serve, with content that’s actually different for each one.

 

Do those six things and you’ll be ahead of most of your local competitors, because most of them won’t. The businesses winning local search aren’t the ones with the biggest budgets. They’re the ones who did the boring profile and review work their competitors kept putting off.

 

One question worth sitting with before you spend a dollar on marketing. When was the last time you searched your own service in your own town and looked at who showed up in that map? Start there. Whoever’s sitting in those three spots is taking calls that could be yours, and now you know roughly what they did to get there.

 

If you’d like a second set of eyes on your profile and local rankings, our team is happy to take a look and tell you straight what’s working and what isn’t. No pitch.

Ready to unleash your growth potential?

Embark on a journey of unparalleled growth with The Hutch Group. Let our expert team and tailored strategies be the catalyst for your success. Contact us today to explore the possibilities and redefine your digital presence.