WYFI MARKETING - CAMBRIDGE, MN

How Minnesota Roofing Contractors Get More Jobs Without Buying Shared Leads

Roofing crew installing new shingles on a Minnesota home

If you run a roofing company in Minnesota, you know how this goes. A hailstorm rolls through, every phone in the metro starts ringing, and suddenly there are door knockers from three states away working your neighborhoods. Then it goes quiet, and you’re back to paying for shared leads that got sold to four other roofers before you ever saw them.

There’s a better way to fill the schedule. The roofers who stay busy year after year usually aren’t the ones spending the most. They’re the ones homeowners find on Google, trust in about ten seconds, and call first. Here’s what that takes.

Why shared leads keep you on a treadmill

Lead services sell the same homeowner to several contractors. You’re racing to call first, then competing on price with crews who may not even be licensed. And the day you stop paying, the leads stop. Nothing you spent built anything you own.

Your own Google Business Profile, website, and reviews work the opposite way. They take longer to build, but they keep producing calls after the work is done, and every one of those calls is yours alone.

1. Treat your Google Business Profile like your storefront

When someone searches “roofer near me” or “roof repair Blaine,” the map results at the top are the first thing they see. That’s your Google Business Profile, and for a lot of roofing companies it brings in more calls than the website does.

  • Set your primary category to Roofing contractor. Add secondary categories only for work you really do, like gutters or siding.
  • List your services one by one: roof replacement, roof repair, storm damage repair, ice dam removal, gutters.
  • Set your service area to the cities you actually cover, not the whole state.
  • Post photos of real jobs every week or two. Phone photos are fine.

Google says local results come down to relevance, distance, and prominence. You can read Google’s own explanation of how local ranking works. We go deeper on the profile itself in our guide to Google Business Profile optimization.

2. Build a website for a homeowner standing in the driveway

Picture who’s actually looking at your site. It’s usually a homeowner on their phone, staring up at missing shingles or a water stain on the ceiling, maybe with their insurance agent’s number in the other hand. They want three answers fast: do you do this, do you work in my town, and can I trust you.

A roofing website that gets calls has:

  • A tap-to-call phone number at the top of every page
  • One clear line that says what you do and where, like “Roof replacement and storm repair in Anoka County”
  • Real photos of your crews and finished roofs, not stock images
  • Reviews right on the page
  • Your Minnesota license number
  • A quote form with four or five fields, not fifteen
  • Pages that load in a few seconds on a phone

If your site has been up a while and the phone still isn’t ringing, start with why contractor websites don’t get calls. If you want to see what we build specifically for roofers, here’s our page on roofing contractor web design in Minnesota.

3. Give every service its own page

One “Services” page with a list of everything you do is hard for Google to match to a search. Someone searching “ice dam removal” wants a page about ice dams. Give each main service its own page with its own photos, common questions, and a call button:

  • Roof replacement
  • Roof repair
  • Hail and storm damage
  • Ice dam removal and prevention
  • Gutters, siding, or windows if you do them

Minnesota hands you seasonal content for free. Ice dams in January, hail from late spring through summer, and fall reroofs before the snow flies. Pages that line up with those searches pick up traffic right when people need you.

4. Add city pages for the towns you actually work in

If most of your jobs are in Blaine, Coon Rapids, Andover, and Ramsey, you want a page for each one. A good city page isn’t a copy and paste with the town name swapped out. It shows jobs you’ve done there, talks about the kinds of homes you see in that area, and includes reviews from customers who live there.

Done right, city pages help you show up for “roofer in [city]” searches well outside the few miles around your shop. We cover how to build them without Google treating them as spam in our guide to local SEO for Minnesota contractors.

5. Get reviews that say what you did and where

Star count matters, but what the review says matters too. “Great job” helps a little. “They replaced our roof in Ham Lake after the June hail and met with our insurance adjuster” helps a lot more, because it tells Google and the next homeowner exactly what you do and where you do it.

Ask every customer when the job wraps up, and text them a direct review link the same day while they’re still happy. Reply to every review, including the bad ones, briefly and calmly. A steady review or two every month does more than twenty in one week and then nothing.

6. Run storm-season ads, but with guardrails

Google Ads can fill the gaps when a storm hits or while your organic traffic is still building. The catch is that roofing clicks are expensive, and loose settings will happily spend your budget on people looking for roofing jobs, DIY videos, or shingle prices at the big box store.

  • Target only the cities you serve
  • Use specific keywords like “roof repair” and “hail damage roof,” not just “roofing”
  • Add negative keywords for jobs, DIY, and materials
  • Send clicks to a matching page, not your homepage
  • Track calls and form fills so you know what a job actually costs you

One thing to watch in your ad copy. Under Minnesota Statute 325E.66, a residential contractor paid through insurance can’t advertise or promise to cover a homeowner’s deductible to win the job. “We’ll pay your deductible” isn’t something you can put in an ad here.

Not sure what to spend? Here’s our breakdown of how much a Minnesota small business should spend on Google Ads, or see how we handle Google Ads management.

7. Show your license and your real work

After a big storm, a lot of homeowners get burned by crews who show up, take a deposit, and disappear. The easiest way to stand apart is proof. Minnesota requires roofing companies to hold a license from the Department of Labor and Industry. Put your license number in your website footer and on your quote page, and let people know they can check it with the state’s license lookup.

Then show the work. Before and after shots, drone photos of finished roofs, your crew on the job. Real photos build more trust than anything you can write. If you don’t have good ones yet, that’s something we can help with through our business photography and video.

Where to start if you’re doing none of this

  1. Clean up your Google Business Profile this week: category, services, service area, and ten real photos.
  2. Start asking every customer for a review with a text link.
  3. Make sure your website has tap-to-call, your license number, and real photos.
  4. Build pages for your top three services and your top three cities.
  5. Add storm-season ads once call tracking is set up.

Frequently asked questions

What’s the best marketing for a roofing company in Minnesota?

For most roofers, a well-kept Google Business Profile plus a website with separate service and city pages brings in the steadiest calls. Google Ads help during storm season or while organic traffic is still building.

Are shared roofing leads worth it?

They can fill a slow week, but the same lead usually goes to several contractors, so you end up competing on speed and price. Most roofers do better long term putting that money into a profile, website, and reviews they own.

How long does SEO take to work for a roofing company?

Expect a few months before you see steady movement, and longer in competitive parts of the metro. Your Google Business Profile and reviews usually show results first.

Can I offer to pay a customer’s insurance deductible in my ads?

No. Minnesota Statute 325E.66 bars residential contractors paid through insurance from advertising or promising to cover the deductible as a way to get the job.

Want help filling your schedule?

Wyfi Marketing is based in Cambridge and builds websites, local SEO, and Google Ads for roofers and other contractors across Minnesota. If you want a straight answer on what’s holding your marketing back, reach out for a free consultation.

author avatar
Wyfi Marketing