5.0 on Google from 30 reviews · Since 2012

SEO for roofers

Roofing SEO that puts your company in the map results before the next storm and on the first page for replacement and repair in the towns you work, from Macomb County with roofers across Michigan.

  • A fixed quote before any work starts
  • Month to month, no contract
  • You deal with me, not an account manager

Get a free quote

I reply within one business day. Or call 586-221-0792.

Prefer to talk? Book a free consultation.

What you get

What local SEO should do for your business

You’re hiring someone who has done this for other businesses, not read about it. Thirteen SEO contracts on Upwork since 2016, from one-time audits and setups to ongoing work for a digital agency and its clients, plus the local SEO I run for Captain Hook’s in the Florida Keys. The contracts are on my Upwork profile.

Show up where neighbors are looking

The map and the results under it for the searches that bring work: your service plus your town, or “near me.”

See what moved, every month

Rankings, Maps visibility, calls and form leads in one report, next to what I worked on and what is next.

Stop if it stops paying

Month to month, no lock-in. If the work is not paying for itself, you can end it.

Local SEO

From $2,000 per month

The price depends on how many locations and services you have, how much content you need, and how crowded your market is. You get a written, fixed quote after a free consultation. No contract lock-in.

How homeowners search for a roofer, and why storms change everything

Roofing search comes in two shapes. Most of the year it’s steady: “roof replacement,” “roof repair,” “roofer near me,” “metal roof cost.” People planning a new roof compare a few companies, read reviews and look at work in their town. Then a hailstorm or a windstorm comes through, and searches for “roof leak repair,” “hail damage roof” and “emergency roof tarp” spike across every town it hit.

That spike is the hard part. You can’t build rankings the week of a storm. The companies that get those calls already had a strong Google Business Profile, real reviews and a storm damage page that Google trusted before the weather turned. Storm-chasing outfits flood in with new listings, and a local roofer with a track record should beat them, but only if the profile and the site show it.

So roofing SEO comes down to two jobs. Be in the map for “roofer near me” in the towns you work, all year. And have a page Google ranks for each job you want, so when the searches jump, you’re already there.

Ranking for roof replacement and roof repair as separate searches

Replacement and repair are different customers. A replacement customer is spending real money and comparing three bids. A repair customer has water coming through the ceiling and wants someone this week. Google treats “roof replacement” and “roof repair” as different searches, so one services page can’t rank well for both.

Each gets its own page, written for that search. The replacement page covers materials, tear-off, warranty and what moves the price. The repair page covers leaks, flashing and missing shingles. Storm damage, gutters, siding and commercial roofing each get one if you want that work. The building side of those pages is on my roofing website design page. On the SEO side, I make sure each one targets the words homeowners use, links to the others, and sits in the right place on the site.

Manufacturer certifications help here too. If you’re a certified installer for a shingle brand, it goes in your profile description, your photos and the replacement page, because homeowners search for brands and check who’s certified.

Questions to settle before you hire a roofing SEO company

How do I rank for storm damage searches that only spike a few times a year?

Build for them before they happen. The storm damage page goes up in a quiet month and stays up all year, so Google has it indexed and trusted when the searches come. It covers what to look for after hail or wind, how your inspection works, and how you handle insurance claims. Each storm job you finish adds a photo and a town to it.

Your Google Business Profile carries most of the weight in the first days after a storm. That means the “Roofing contractor” primary category, accurate hours, a phone that gets answered, and recent photos. When a storm hits a town you serve, a profile post saying you’re inspecting there tells people you’re local and active. The rankings come from the months before. The post just makes the most of them.

Should I run Local Services Ads or wait for SEO?

They do different jobs, and many roofers should do both. Roofing is one of the trades Google lists for Local Services Ads. They show at the very top of the results, and you pay for leads related to your services rather than for clicks. They bring calls from the day they’re approved, which SEO doesn’t.

SEO is the part you own. Map rankings and service pages keep bringing calls when the ad budget is paused, and they don’t cost more per lead when a storm pushes every roofer to bid. Reviews help both, because your rating shows on the ads and counts toward your map ranking. If your budget only covers one, I’ll tell you which I’d start with for your market.

How does a roofing company get reviews when most customers only buy one roof?

Ask once, at the right moment, every time. That’s the day the crew cleans up and the homeowner sees the finished roof. A text with your review link goes out that afternoon, from the project manager or the office. I write it. Ask the homeowner to mention the work and the town, like “full tear-off and new shingles in Clinton Township,” because that helps the next person searching there.

Answer every review, briefly, including the bad ones. A calm reply to a complaint about a delay or a nail in a driveway reads well to the next homeowner. Never pay for reviews or offer a discount for one. Google doesn’t allow it.

Which town pages are worth building for a roofing company?

Only the towns where you’ve done real work and want more. A town page earns its rank with proof from that town: photos of roofs you did there, the kind of homes and roofs common in the area, and storms you’ve worked after. A page that swaps the town name into the same template doesn’t rank and doesn’t convince anyone.

Your Google Business Profile covers the rest. Google lets a service-area business list up to 20 service areas and says the whole area shouldn’t stretch more than about two hours of driving from your base. I list the towns you actually work, and build pages for the handful that bring the most jobs.

Roofing SEO for roofers in Michigan, by phone and video

Tell me what your business does and where, and you get a written, fixed quote. No contract lock-in.

Get my quoteOr call 586-221-0792

I’m in Harrison Township, in Macomb County, and I do local SEO for roofers and other contractors across Michigan, by phone, video call and email. I did landing page work for a roofing company back in 2016, so I’ve seen the trade from the site side as well.

The foundation every trade shares is on my SEO for contractors page. If your profile is the main problem, my Google Business Profile optimization is $400 one time. Michigan SEO covers how the monthly work runs, and my web design page covers the website side.

Send me your Google Business Profile link and the towns you want more roofs in. I’ll tell you what’s holding the profile back and which pages I’d build first.

How it works

What a month of local SEO work looks like

  1. 01

    Audit

    Your site, your profile and the businesses above you, written up in the order I will fix things.

  2. 02

    Fix the foundation

    Titles, page structure, speed, schema, redirects, duplicate listings and citation errors.

  3. 03

    Build and earn

    Service and town pages, articles for what customers search, profile posts, local links and a simple way to ask for reviews.

  4. 04

    Report

    Rankings, Maps visibility, calls and leads, plus what I did and why.

Illustration of Lake St. Clair near Harrison Township, Michigan

Who you'd work with

The web designer and local SEO consultant you'll actually talk to

I'm Ryan York, and WebPossible is a one-person web design and SEO company in Harrison Township, Macomb County. I learned the work as a scuba diver in the Florida Keys, tired of waiting on the person who ran our website, which is why I think about the phone ringing first and the design second. There's no team to hand you off to. The person who answers your first call is the person who designs your website, builds it and checks your rankings.

14
years building sites, since 2012
154
jobs completed on Upwork
5.0
stars on Google from 30 reviews

More about how I work

Reviews

Reviews from SEO and web design clients on Google, Clutch and Upwork

5.0 stars from 30 Google reviews, 5.0 from 5 verified Clutch reviews, and 83 client reviews on Upwork since 2016. 6 of the 13 I quote in full, with the source linked.

Read all 13 local seo reviews

Kara D.SEO · 3 years ago
★★★★★
I hired Ryan to help improve the SEO of my business website and he has been so easy to work with from the time I submitted my inquiry through the finishing touches. He is extremely responsive, organized in his approach, and thoughtful in his execution. I had many questions that I threw at Ryan, and he was able to answer them all, which made me feel really good about the entire process. Since the initial work started, I have added on more page updates because I am already seeing positive results. I look forward to continuing to work with Ryan and wouldn't hesitate to recommend him to other business owners that I know!
Operations Manager, Friendly LogisticsWeb design and development · Aug 2020
★★★★★
Communication is key, and that's his strong suit.
Upwork clientDivi landing pages · Feb 2023
★★★★★
Ryan was phenomenal to work with! He asked great questions, understood our project, and delivered without issue and right on schedule. I definitely will re-hire and recommend him.
Arlene S. PedersenClient websites · 3 years ago
★★★★★
I have used Ryan for many years and on many client websites, he has always been responsive, efficient and been great to work with. With his expertise, he has been able to facilitate creating websites I am proud of, and I have always been able to count on him. I trust him completely and have recommended him to my past clients for ongoing work.
General Manager, Cash Buyers MacombSEO, PPC and web development · Jul 2020
★★★★★
Ryan was a perfect fit. He's my first call if I ever need any help establishing or increasing my online footprint.
Upwork clientMultiple WordPress websites · Feb 2023
★★★★★
Ryan had excellent attention to detail and delivered with quality and speed when necessary.

FAQ

Frequently asked questions about local SEO services and pricing

How much does SEO for roofers cost?

My local SEO starts at $2,000 a month, month to month with no lock-in. A one-time Google Business Profile cleanup is $400, and for a roofer with a weak profile that's often the right first spend. If the website needs rebuilding first, that starts at $2,500.

Can you guarantee my roofing company a top spot in Google Maps?

No, and be wary of anyone who does. Google doesn't sell map rankings. I tell you what I'll work on each month, show you what moved in the report, and you can stop whenever it isn't paying off.

Why does a roofer with no office show up above me in Maps?

Google ranks map results on distance, relevance and prominence, so a closer listing with the right category and more recent reviews can outrank a bigger company. Some of those listings break Google's rules with fake addresses, and Google lets anyone suggest an edit or report a listing that does.

Should my profile list gutters, siding and skylights too?

List the services you actually sell and want more of. Each one you add to the profile, with a short description, gives Google another reason to show you for that search. Leave off work you subcontract or turn down.

What's the difference between this and a new roofing website?

The website is the building. SEO is the monthly work that gets it and your Google profile found. If your site has one services page and stock photos, start with the website. If it's solid and still doesn't show up, start here.

Service area

Local SEO for businesses across Michigan, from Harrison Township

I'm in Harrison Township, Macomb County, on the Lake St. Clair side of metro Detroit. Most clients are in southeast Michigan, and I work with businesses across the state and beyond by phone, video call and email.

WebPossible
41253 Clairpointe
Harrison Township, MI 48045
586-221-0792
info@webpossible.net

See my Google Business Profile

SEO pages by area

Harrison Township, Michigan. Open in Google Maps

Tell me what you need. I’ll tell you what it costs.

A free quote, a straight answer, and no sales pitch. If I’m not the right fit, I’ll say so.

Get a free quote

I reply within one business day. Or call 586-221-0792.

Prefer to talk? Book a free consultation.