Industries · Roofing
Roofing SEO: storm season is won in the map pack.
Most roofers lose the map pack in towns they drive through every day. Your Google profile ranks in a ring around the address printed on it, and in a lot of metros that ring runs two to five miles across. Everything past it goes to whoever sits closer, whatever your reviews look like. That is why a roofer covering eight towns takes calls from two of them and cannot work out what he is doing wrong.
The short answer
What decides which town you show up in: 3 factors, and only 1 of them lives on your website.
Google settles the map pack on relevance, distance and prominence. Most roofers pour everything into the first, cannot move the second, and never touch the third. The third is where the season-over-season gains sit, and it is the one nobody can take back off you once it is yours.
Relevance is whether the category on your profile matches the words a homeowner types. Search roof repair in a town you serve and look at the top three. If they all read Roofing Contractor and yours reads Contractor, that is the gap, and closing it takes about two minutes.
Distance is how far the searcher sits from the address on your profile. You cannot argue with this one. There are two ways around it: a second real location with a real person in it, or town pages, because organic rankings carry no proximity limit at all. That second route is why the website matters in a trade everybody thinks is a map-pack game.
Prominence is how much of a known quantity you are. Review pace, links from real local businesses, your name turning up around town. This is the slow one. A roofer with 50 reviews and a fresh one every week beats a roofer with 200 whose last one landed in March, because pace is what gets read as current proof.
There is a second thing worth knowing, and it is not one race. A search puts the AI answer at the top, the map pack under it, and the plain results under that. Most roofing companies compete for one of the three and leave the other two to whoever wants them.
Here is the honest limit. None of this rescues a season that starts next week. If the storm already hit and you need the phone ringing now, that is a paid-ads job, and we will say so rather than take a retainer that cannot arrive in time.
A real scan: 49 checkpoints, one live map lookup each. Green means the map pack, grey means invisible at that spot. This is how we measure the work, spot by spot, not by searching from the office chair.
Check it yourself
Check where you actually stand: 4 steps, about 10 minutes.
None of this needs us and none of it needs a login. Signed in from your own office, Google knows where you are and what you have clicked before, and it flatters you constantly. The point of the whole exercise is to look at what a homeowner sees instead.
- 1
Open a private browser window and search roof repair plus your town.
Private window, signed out, no autocomplete help. That is the closest you get to a homeowner's screen without borrowing their phone.
- 2
Write down four things about each of the top three map results.
Review count. How many of those reviews landed in the last 90 days. The category printed under the business name. And whether the word roofing sits inside the name itself. Four numbers, three competitors, and you now hold their scorecard.
- 3
Run the same search again, from a town at the edge of your radius.
Search roof repair plus that town's name. Top three at home and nowhere twenty minutes out is the distance factor showing itself, not a review problem, and no amount of tidying your profile moves it. The gap between those two results is the number worth having before anybody quotes you.
- 4
Right-click your homepage, choose View Page Source, then find h1.
Whatever sits inside that tag is the strongest line on your site as far as a search engine is concerned. If it reads Welcome to anything, the strongest line on your homepage is currently a greeting.
You do not need us for any of that, and we would rather you ran it before you talk to anybody, us included. If step 1 and step 3 come back the same, your search problem is smaller than you think, and that is what we would tell you on the call.
The screen from step 1, captured off a live page one and marked up, with every third-party name blurred. Paid results sit on top, the three map spots under them, then the first plain result most of a screen further down. Worth saying plainly: the capture is a plumbing search rather than a roofing one, because that is the capture we have. The shelf is laid out the same either way, and counting how far a thumb travels before it reaches an organic result is the point of looking at it.
Real query shapes
What your buyers actually type: 6 different moments.
Roofing demand shows up in shapes that want different pages. One services page competes properly for none of them.
-
roof repair {town}
The steady base underneath the spikes. Wants a real page for your town, carrying roofs you actually did there.
-
roof replacement cost
Research intent on a five-figure job. Publish a range and you get the call; hide it and they keep scrolling.
-
storm damage roof repair
A season of volume compressed into a week. Impossible to enter late, because position was set months earlier.
-
roofers near me
Pure map pack. Settled on proximity and review count before anybody opens a website.
-
metal roof installers
Material-specific and higher ticket. This buyer's already decided what they want and is looking for who installs it.
-
does insurance cover roof replacement
Question intent with no company name in it. Answer it well and you join the conversation months before the claim gets filed.
Six moments, six different roofers competing for each one. Storm week and a slow Tuesday in March want completely different pages answering them.
What arrives
The play in order: 6 pieces, and why each one waits its turn.
- 01
The profile, before a word gets written on the website
Categories corrected, service area redrawn to the towns you want, photos of finished roofs loaded, questions answered. This goes first because it acts on demand searching for you today, and because it is the cheapest work on the list. Everything after it takes months to compound.
- 02
Review asks starting in week one, ahead of the page work
A fresh review every week reads as current proof, and a burst of them in month four does not buy back the three months you skipped. So the asks start immediately, while the pages are still being written.
- 03
Town pages matching the radius you actually drive
One page for each town you will genuinely send a crew to, each carrying roofs completed there. These come after the profile because this is the part that reaches past the ring, and reaching past the ring is slower than fixing what sits inside it.
- 04
Repair and replacement split apart
Separate routes for the quick fix and the full tear-off. Different price expectations, different proof, different next step. Sharing one page costs you the trust of both buyers at once, and it costs it before either one calls.
- 05
The insurance-claim page most roofers skip
Deductibles, adjuster meetings, what a denial actually means, how a supplement works. The homeowner searches this weeks before they file, and almost nobody in the trade publishes real answers, which is why this page tends to earn its keep faster than the material pages do.
- 06
A page per material and system, last of the page work
Asphalt, metal, tile, flat commercial. Each is a separate search with a buyer who has already half decided. It comes last because a material search is smaller than a town search, and you want the town pages earning before the narrow ones start.
Fit
Who this fits: 4 signs it's you.
Roofing rewards search work more than most trades because the demand is genuinely there, spread across repair, replacement, and material-specific searches. It still needs a crew that can absorb a storm week.
This is you if:
- You work a named set of towns and want the map pack in all of them, not just the one your office sits in.
- You do full replacements, not only patch work, so a ranked page is worth five figures rather than a service-call fee.
- You have crew capacity to take a storm week without quality dropping.
- You'll ask every customer for a review and let us draft the replies. We turn down roofers who won't, because review pace is the one lever that sits in your truck instead of on our screen.
We will tell you no if:
- A storm hit last week and you need calls now. That's paid search, and we'll tell you so instead of selling a retainer that can't arrive in time.
- You only chase storms and don't care about the towns in between. Search compounds locally, so you'd be funding an asset you never use.
- You want a promised position in the map pack. No honest agency can offer you one.
Not worth your money
What we would tell a roofer not to bother with: 5 things.
One of these is work we would happily sell you on another page. It still would not move your map pack, so it belongs on this list rather than in a proposal.
-
Weekly blog posts about the signs you need a new roof
Nobody typing roof repair wants an article, and the number of posts on a site does not move a local ranking. That budget belongs in the town pages and the insurance-claim page, which are the two things your competitors have not built.
-
Buying storm leads from a shared platform
The same homeowner gets sold to three or four roofers at once, so you are paying for the right to enter a race to the phone, and you pay whether you win it or not. Keep the listings for the citation value. Do not run the business on them.
-
A rebuild in August
Rankings wobble for a stretch after any relaunch, careful or not, and spending that stretch inside the six weeks that pay for your year is a bad trade. We build websites and we would still rather book yours for February.
-
Going after the biggest city in your metro first
It is the most contested search in the market and usually the last one you win. The towns around its edge are softer, they sit closer to where your trucks already are, and winning four of those beats losing the one everybody else is pointed at.
-
Any tool that decides which customers get asked for a review
Filtering the ask so only happy customers reach the review form is against Google's review policies, and profiles lose their reviews over it. Ask everybody, fix the unhappy ones by hand, and take the 4.8.
None of that means those things never matter anywhere. It means they do not decide whether a homeowner one town over finds you in the week after a hailstorm, and that is the job you would be hiring us for.
How the work runs
What changes, month by month: 4 milestones.
- 01
The first two weeks
Profile corrected, categories fixed, service area redrawn to the towns you actually want, review asks switched on. Cheapest work on the list, and it is what everything after it stands on.
- 02
Around day 30
Profile fixes act on demand already searching today. Most roofers see that turn up in call volume somewhere in this window, storm activity depending.
- 03
Around day 60
New town and material pages start surfacing. Pace varies a lot here by how contested your specific towns are, and a soft edge town moves months before the middle of a metro does.
- 04
Day 90 and beyond
Pages, profile, reviews and listings on a monthly rhythm, with the map swept point by point every month so you watch the ring widen before the next storm rather than after it. Anybody promising you the map pack across a metro in 90 days is selling something.
Where each piece lives
Where each step lives: 3 tiers, mapped to the play above.
That is the whole play. Here is who covers which part of it, so a roofer can price the starting point without getting on a call to find out.
| The work | Where it sits | What that means |
|---|---|---|
| Pieces 1 and 2: the profile and the review pace | Local Engine $1,500 per month | Almost all of the first quarter goes here. It is the only part of the play that moves homeowners searching this week, and the town pages have nothing to stand on until it is done. |
| Pieces 3 to 6, across one town | Local Engine $1,500 per month | One town's pages worked every month, with the map swept point by point so the ring is drawn rather than described. |
| The same pages across every town you drive to | Market Engine $3,000 per month | Every town in the radius gets its own page and its own review of what is ranking there, plus the directory footprint pushed out past the ones a cleanup would touch. |
| That, plus link campaigns and video for the jobs you want more of | In-House Engine $6,000 per month | The seat a roofer takes when storm season is the whole business and one person cannot cover it. We run a few of these at a time, so it is worth asking early whether one is open. |
| If the website itself has to be rebuilt first | Growth site $2,500 one-time | Per-service and per-town page sets, built once and owned outright, with every login in your name on the day it ships. The monthly search work is a separate decision and you can make it later. |
Search work runs on a 90-day initial term and then month to month, because a roofing foundation takes about a quarter to show real movement and we would rather say that up front.
Proof, not a pitch
Built by people who ran the truck first.
We ran a service business in a trade where one bad stretch of weather rearranged the whole month. Planning for demand you can't schedule isn't a theory we picked up later.
- 300+
- Points in the Deep Audit, worked by hand
- 36
- Hyperlocal pages shipped in one build
- 14
- Categories in the Deep Audit, worked by hand
Every point listed in the report appendix
6 service areas × 6 services, same engagement
300+ points, $1,500
Search
What it costs: published, not quoted.
Most roofing companies start on the Local Engine at $1,500 a month for one town. Companies covering several towns usually move to the Market Engine at $3,000 a month, or the In-House Engine at $6,000 a month for the full seat through storm season. If the site itself needs rebuilding first, that is from $1,500 one-time.
Start on the Local Engine. Move up to the Market Engine when you are ready to own more than one town, and to the In-House Engine when you want a marketing department without the hire.
Every retainer tier, with what is in it| Tier | Price | What moves the number |
|---|---|---|
| Local Engine Get found where you already work: the map pack and the searches that ring the phone. | $1,500 per month | The price is flat. What changes is where the effort points: a harder town, or more services, means the same monthly hours aimed at fewer targets, and we say which before you sign. Page counts and posting frequency are agreed in writing per engagement, so scope cannot quietly drift. Not included. Multi-market page coverage, expanded listings and the AI-search program at full strength are the Market Engine. We would rather tell you when you are ready for it than sell it to you early. |
| Market Engine Own every town you serve: coverage pages, AI-search visibility, listings everywhere that counts. | $3,000 per month | How many markets and how many services. The price is flat, and the page program inside it is agreed up front, in writing, so the scope cannot quietly drift. Not included. Placements on other platforms, PR-grade link campaigns, social management, video creative and conversion testing are the In-House Engine, and it is capacity-capped. |
| In-House Engine Everything, run for you: search, content, placements, PR-grade links, social presence, video creative, conversion work, quarterly strategy. | $6,000 per month | Capacity, not scope creep. We run a small number of these engagements at a time so the work stays deep rather than spread thin across too many accounts. Not included. We still do not sell paid ad management, and we still will not commit to a monthly number of editorial links. Both get the same answer at every tier. This tier is also capacity-capped: a few seats, run deep, and we will say plainly if one is not open yet. |
Objections and questions
Questions we get asked: 6 answers.
Six questions roofing owners ask on a first call, including two that most agencies would rather answer vaguely.
Ask us something else How much does SEO for a roofing company cost?
The Local Engine starts at $1,500 a month: the Google Business Profile, pages built or improved monthly, the review engine, and a monthly report with a real call attached. The Market Engine at $3,000 a month runs that across every town you cover and adds expanded listings, link outreach, and conversion work. If the website itself needs building, that is from $1,500 one-time. There's also a free look at what's costing you calls before you commit to anything.
How long before a roofing company sees results from SEO?
Profile and conversion fixes land on homeowners searching right now, so they usually show inside the first month or two. New town and material pages compound over several more, which is the whole reason this belongs in the quiet stretch rather than the busy one. The sweep runs from month one, so the ring is drawn for you rather than described to you.
Should I just run Google Ads during storm season instead?
If a storm's already hit and you need calls this week, yes, and we'd rather say that than sell you something slower. Ads stop producing the day you stop paying. Search work costs less over time and keeps producing, but it needs the months before the storm, not the week after it.
Do I need a separate page for every town I serve?
For the towns you genuinely want work from, yes. Google ranks pages, not businesses, and a page naming one town with roofs you completed there beats a services page listing thirty towns in a footer. The qualifier matters: these have to be real pages with real jobs on them. Forty near-identical town pages is a trick Google's spent years getting better at ignoring, and a homeowner can smell it too.
Do I have to write anything myself?
No. Pages and review replies come from us. You approve them, run the crews, and get a photo of the finished roof before the truck pulls off the drive.
Most of our revenue is insurance claim work. Does SEO help with that?
It helps earlier than most roofers expect. The homeowner starts searching before they file, typing questions about deductibles, adjuster visits, whether a claim will raise their premium. Almost nobody in the trade publishes real answers to those, so the roofer who does becomes the known name by the time the claim goes in.
Services
What we would actually run: the pieces that fit this trade.
For a roofing company the sequence matters as much as the list. Profile and map coverage go first because they reach the demand already searching, then the town and material pages, then the work that compounds through the quiet months.
- 01 Local SEO Ranking in the map pack for the towns you actually serve. Read more
- 02 Google Business Profile Management The profile worked weekly, not claimed once and forgotten. Read more
- 03 Small Business SEO The whole program, sized for a business that has to pay for it monthly. Read more
- 04 Landing Pages Single-service pages built to convert one kind of visitor. Read more
- 05 Conversion Rate Optimization Find where the traffic you already have quietly leaks away. Read more
- 06 Review Management More reviews, answered fast, feeding the local pack. Read more
Other trades
6 more trades we work in: each one named for its own search.
Every trade below is a separate page, because every trade gets searched differently. If yours is not listed anywhere on the site, ask, because the list is shorter than the work.
- 01 Contractor Website Design A site that reads like a firm homeowners trust with a six-figure job. Read more
- 02 HVAC Marketing Emergency calls, maintenance plans, and the seasons that pay for the year. Read more
- 03 Plumber Marketing Emergency intent converts in seconds. Most plumbing sites lose it. Read more
- 04 Remodeling Marketing Long consideration cycles need proof published, not promised. Read more
- 05 Marketing for Electricians Panel upgrades and EV chargers are the pages almost nobody has built. Read more
- 06 Pest Control Marketing The recurring contract is the business. Sites keep burying it. Read more
Free snapshot · paid teardown
Send us your site: 300+ points, worked by hand.
A short, sharp look: the top handful of findings, scored, delivered by email. What's broken, in plain English.
Want the full punch list? The Deep Audit is $1,500: the same crawler and link indexes the top-tier agencies run, plus live map-pack checks town by town and AI-assistant citation checks almost nobody local does. 300+ points across all 14 categories, plus a prioritized 90-day plan. Credited in full toward your first month if you hire us within 60 days.
Snapshot delivered in a few business days
It's yours either way. Hand it to your own developer, or your own AI, and it still pays for itself. If you hire us, it costs you nothing.
Site & search audit · what we check
300+ points
- Crawl, indexation and site security 30 pts
- Duplicate signals, structure and internal links 39 pts
- Speed and Core Web Vitals 28 pts
- The experience on a phone 14 pts
- Money pages: content, depth and freshness 24 pts
- Structured data and the trust surface 20 pts
- Search demand and the keyword map 20 pts
- Google Business Profile 20 pts
- Reviews and reputation 16 pts
- Local presence: map results and directories 20 pts
- AI search and assistant citation 22 pts
- Link profile and authority 20 pts
- The operators beating you 22 pts
- Turning visits into calls, and counting them 24 pts
The Snapshot is the top handful of these, free. The Deep Audit is all 14 categories, 300+ points, scored, with a 90-day plan and the full point-by-point appendix. No account, no card either way.
Ready to stop losing customers to the guy with a better site?
Fifteen minutes, no discovery deck. We'll tell you what we'd build, what we'd rank, and what it costs. And if we're not the right fit, we'll say that too.