A hailstorm rolls through on a Tuesday afternoon. By Wednesday morning, a few thousand homeowners in the storm path are on their phones typing "roofers near me". Google shows them a map with three roofing companies. Those three get most of the calls for the next month.
Roofing SEO is how you become one of those three. Not just next to your office, where you probably show up already, but in the towns fifteen miles out where the storm actually hit. That second part is where most roofers lose jobs without ever knowing it, because every ranking tool they have looked at gives them one number for one location.
We build ranking software for local businesses, so this guide is written from what the map actually shows when you measure it properly: across a grid of your whole service area. It covers the profile, the website, reviews and the three kinds of links. Then it walks through a 90-day roofing campaign: the grid at day 0, 30, 60 and 90, the 30 links built each month, and what each month changed on the map. Every keyword number in here is real search data for the United States, pulled in September 2026.
What is roofing SEO?
Roofing SEO is the work of getting a roofing company found on Google when homeowners search for roof repair, replacement or inspections, in the map pack first and the regular results below it. It covers your Google Business Profile, a page on your website for each service and each town you serve, reviews, business listings (called citations), and links from other relevant sites.
The map pack is the part that matters most for a roofer. When someone searches "roof repair near me", Google answers with a map and three businesses before it shows any ordinary website. Win the map and you get the call. Rank tenth on the page below and you mostly get nothing.
Why roofing SEO is different from other local SEO
A dentist's customers come from a few miles around. A roofer's come from anywhere a storm lands. That one fact changes almost everything about how a roofing company should do SEO.
Your service area is huge
Most roofers cover a metro and a ring of towns around it, often 20 to 30 miles out. Google's map results depend heavily on how far the searcher is from each business, so a roofer tends to rank well near their own address and fade out with distance. The jobs in the outer towns are real jobs. They just go to whoever Google considers relevant there.
Demand arrives in spikes
Storms create sudden demand in specific places, and it lasts weeks, not months. You can't build rankings in the three days after a hailstorm. You either already rank in that town when the storm hits, or you pay for ads and hope.
Every job is worth a lot
Look at what advertisers pay for these searches. "Storm damage roof repair" costs $47.01 a click on Google Ads. "Emergency roof repair" is $43.29, and "roof repair near me" is $39.02. People pay that because a single replacement job can be worth thousands. The same economics make ranking without paying per click unusually valuable for roofers.
The results are crowded with people who are not local roofers
Lead generation sites, directories and out-of-town storm crews all compete for the same searches. Some of them are well funded. A local roofer's advantage is that they are genuinely local, and the whole strategy below is about proving that to Google, town by town.
How Google decides which roofers show up
Google says local results are based mainly on three things: relevance, distance and prominence. Here is what each one means for a roofer, in plain terms.
Relevance is whether your business matches the search. Your primary category, your services, your website pages and the words in your reviews all feed it. A company whose profile category is "Roofing contractor" and whose website has a real page about storm damage repair is more relevant to "storm damage roof repair" than one with a generic homepage.
Distance is how far you are from the person searching, or from the town they name. You can't change your address, which is exactly why the other two factors matter so much for towns further away.
Prominence is how well known and trusted you are. Reviews, how many other sites mention and link to you, and how consistently your business details appear across the web all count. Prominence is the factor that lets a roofer compete in a town that is not right next door.
Put those together and you get the pattern almost every roofer has without realising it: strong at home, invisible at the edges. The only way to see that pattern is to measure it.
Reading a roofing rank grid
A rank grid checks your map position for one keyword from many points laid out across your service area. Instead of one number ("you rank 4th"), you get a map showing where you are top 3, where you are on page two, and where you do not appear at all.

Here is how to read it. The pin in the middle is the business. Around it the numbers are low (good), and they get worse the further out you go. The corners show "20+", which means the business does not appear in the top 20 results there at all. For a homeowner in that area, it simply does not exist.
Now look at the scores on the right. Average rank 10.6 sounds like the business is doing fine. But average rank only counts the points where the business shows up. The number that tells the truth is visibility: 75.5%. In a quarter of its own city, this roofer is not on the map. And it is top 3 at just 4% of the grid.
The local voice score (39.2% here) combines both into one figure: every point where you rank earns a share of the score depending on how high you rank, and points where you do not appear earn nothing. It is the most useful single number for tracking a roofer over time, because it only goes up when you rank higher in more places.
You can run a grid for your own business in a couple of minutes with our free Google Maps rank tracker. Run it for your two most valuable searches, usually "roof repair" and "roof replacement" with your main city.
Roofing keywords that actually bring jobs
Before touching your profile or website, decide what you want to rank for. These are real monthly search volumes across the United States, with a ranking difficulty score (0 to 100, lower is easier) and what advertisers pay per click:
| Search | Monthly searches | Difficulty | Cost per click |
|---|---|---|---|
| roofers near me | 165,000 | 26 | $24.77 |
| roofing company | 110,000 | 2 | $23.03 |
| roof repair near me | 90,500 | 12 | $39.02 |
| roof repair | 74,000 | 7 | $40.95 |
| roofing contractors near me | 40,500 | 28 | $20.90 |
| roof leak repair | 33,100 | 2 | $34.77 |
| roof inspection | 33,100 | 6 | $34.78 |
| roof replacement | 33,100 | 48 | $30.63 |
| roof replacement cost | 18,100 | 25 | $19.96 |
| new roof cost | 9,900 | 10 | $18.02 |
| emergency roof repair | 8,100 | 0 | $43.29 |
| hail damage roof | 5,400 | 7 | $19.02 |
| flat roof repair | 4,400 | 0 | $32.58 |
| storm damage roof repair | 3,600 | 0 | $47.01 |
| commercial roofing contractors | 3,600 | 4 | $27.34 |
| roof insurance claim | 1,000 | 3 | $23.36 |
United States, monthly averages, September 2026. National totals: your own town is a small slice of these.
What this table tells a roofer
The biggest searches are the "near me" ones, and those are answered almost entirely by the map pack. You do not win "roofers near me" with a blog post. You win it with the profile, reviews and local signals covered below.
The most interesting rows are further down. "Emergency roof repair" (8,100 a month, difficulty 0, $43.29 a click) and "storm damage roof repair" (3,600, difficulty 0, $47.01)are expensive to advertise on and easy to rank for. A roofer with a genuinely useful page about each, plus the local signals to back it up, is competing where other roofers mostly are not.
Build your keyword list in three layers. First the core services: repair, replacement, inspection, leak repair. Then the urgent searches: emergency, storm damage, hail damage. Then the specialist work you actually do, such as flat roofs, metal roofs or commercial roofing. Leave out anything you do not want calls for. Ranking for "metal roofing contractors" is pointless if you do not install metal roofs.
Your Google Business Profile, set up for roofing
The profile is the single biggest lever for the map pack, and most of it is free. Go through these in order.
Category
Set your primary category to Roofing contractor. Add secondary categories only for work you really do, like gutter services or siding. Search your main keyword in your city and look at the categories the top 3 use. If every winner uses the same primary category and you do not, that is your first fix.
Service areas
If you do not see customers at your office, set yourself up as a service area business and list the towns you cover. Google lets you add up to 20 service areas and asks that they stay within about two hours' drive of where you are based. Listing a town here does not make you rank there by itself, but it tells Google where you work and it must match the rest of your signals.
Photos from real jobs
Upload photos from actual roofs, with your crew and truck where possible. Before and after shots of a storm repair are ideal. Stock photos do nothing, and a profile with no new photos for a year looks abandoned to customers comparing three roofers side by side.
Services and posts
List every service with a short, plain description. After a storm, publish a Google post about storm damage inspections in the affected towns. It keeps the profile active and gives someone comparing roofers a reason to call you.
If you want to check your whole profile against the roofers beating you, our 21-point local SEO audit checklist walks through every check in order.
Service pages and town pages
Here is the mistake almost every roofing website makes: one page called "Service Areas" with a list of twenty towns. Google reads that as a list. It does not read it as proof that you work in any of those towns.
One page per service
Give each main service its own page: roof repair, roof replacement, roof inspection, storm damage repair, emergency roof repair. Each page should explain the service for a homeowner, what it usually involves, how insurance fits in where it does, and how to book. The page title should name the service and your main city, for example "Storm Damage Roof Repair in [City] | [Company]".
One real page per important town
For the towns that matter most, build a page each. And make each one genuinely about that town: jobs you have done there, the types of roofs common in that area, how quickly you can get there, reviews from customers who live there. A page per town is only useful when each one is different.
Do not build doorway pages
Twenty copies of the same page with the town name swapped are what Google calls doorway pages, and it filters them out. Worse, a pile of thin duplicates can drag down the whole site. Build fewer, better town pages: five genuinely useful ones beat forty copies.
These town pages are also where your city-focused links should point, which is why they matter so much for ranking at the edges of your service area. More on that below.
Reviews that help you rank
Reviews feed prominence, and the words in them feed relevance. A review that says "they fixed our hail damage in [town] within two days" helps you for hail damage and for that town. You cannot write reviews for customers, but you can make them easy to leave and natural to write.
Ask at the right moment. For a roofer that is right after the final walkthrough, when the homeowner is standing in the yard looking at a finished roof. Send a text with a direct link to your review form that same evening. Waiting a week loses most of them.
Ask the customer to mention what you did. "It would really help if you mentioned the repair we did" is fine. Offering discounts or gifts for reviews is against Google's rules, and so is asking only happy customers while filtering out the rest.
Reply to every review. Especially the bad ones. A calm, specific reply to a complaint persuades the next homeowner more than ten five-star reviews do, because it shows how you behave when a job goes wrong.
Citations, niche blogs and city blogs: the three links that move a map
Profile and pages make you relevant. Links and listings make you prominent. For a roofer, three kinds do different jobs, and the order you build them in matters.
1. Citations: make every signal agree
A citation is a listing of your business name, address and phone number on another site: local directories, trade directories, map services. Citations rarely push a roofer up the map on their own. Their job is consistency. If one directory has your old phone number and another has a misspelled company name, Google is less sure these are all the same business, and every other signal you build is weaker for it.
Build citations first, and fix inconsistent ones before anything else.
2. Niche blogs: prove you are a roofing authority
Niche blog links are articles on sites about roofing, home improvement and construction that link to your service pages. They tell Google that sites focused on your industry vouch for you, which builds relevance for roofing searches generally.
The words used in those links matter. Spread them across your brand name, plain phrases like "this roofing company", and service phrases like "storm damage roof repair". A profile where every link says "best roofer" looks manufactured.
3. City blogs: rank in the towns further out
City blog links are articles on sites about a specific city or area that link to your page for that town. This is the link type that reaches the edges of your grid. A link from a site about a particular town is a direct signal that your business is relevant there, not just at your address.
For a roofer with a wide service area, city blogs pointed at real town pages are usually the fastest way to turn those grey "20+" points into rankings.
Case study: a roofer's map from day 0 to day 90
Illustrative campaign, built from how we run roofing campaigns. Scores are calculated by the Grid Ranker.
Everything above is the theory. Here is what it looks like in order: one roofing company, one city, 30 links a month for three months, and the same 49 points scanned every 30 days. Watch the edges of the map, not the middle.
Visibility
75.5%
100%
Day 0 to day 90
Local voice
39.2%
71.7%
Day 0 to day 90
Top 3 points
2 of 49
9 of 49
Day 0 to day 90
Not ranking
12 points
0 points
Day 0 to day 90
"roofer near me": the same 49 points, every 30 days
IllustrativeDay 0
June 1
Before any work
- Visibility
- 75.5%
- Local voice
- 39.2%
- Top 3 points
- 2
- Not ranking
- 12
Day 30
July 1
After citations + niche blogs
- Visibility
- 77.6%
- Local voice
- 46.2%
- Top 3 points
- 5
- Not ranking
- 11
Day 60
July 31
After niche + hyperlocal
- Visibility
- 95.9%
- Local voice
- 57.7%
- Top 3 points
- 7
- Not ranking
- 2
Day 90
August 30
After citations + hyperlocal
- Visibility
- 100%
- Local voice
- 71.7%
- Top 3 points
- 9
- Not ranking
- 0
Before: where the roofer was losing jobs
The business
Illustrative- Business
- Residential roofing company, 3 crews
- Market
- One city. Every link and page targets that city only
- Starting reviews
- 60 reviews at 4.7
- Leaders in the area
- About 145 reviews on average
- Website
- Homepage and one general services page, no city page
- Tracked search
- "roofer near me", 7 by 7 grid, points about 1.2 miles apart
On paper this roofer was doing fine. Good rating, complete profile, ranking 2nd from its own address. Ask the owner and they would say SEO was working. Then the first grid came back.

12 of 49 points showed "20+". In a quarter of its own city, a homeowner searching "roofer near me" would scroll through twenty roofers without seeing this one. Only 2 points were in the top 3, both beside the business. The outer ring averaged 18.2 once the missing points are counted as 21, which for a roofer is the same as not being there.

The day 0 scan gave three problems to fix, in this order:
1. The north side of the city was weak. It averaged 12th over 5 points, and nothing on the website or across the web tied the business to those neighborhoods.
2. 8 near misses. Points ranking 4th to 7th, one push away from the top 3.
3. A review gap. The roofers leading the area averaged about 145 reviews against this one's 60. Links alone would not close that, so review requests ran from day 1.
The 90-day action plan: citations, niche blogs, hyperlocal
The plan was 30 links a month, 90 in total, split evenly across the three link types. Each month paired two of them, so every month had one job that built on the last. Because the business works in one city, every citation, every hyperlocal article and the new city page point at that same city. No other towns.
The 90-day action plan: 30 links a month, 90 in total
IllustrativeMonth 1 · Days 1 to 30
Citations + niche blogs
Make the listing consistent and prove roofing relevance
- 2 old listings with a dead phone number fixed first
- 15 citations on local, trade and map directories, all with the exact same name, address and phone
- 15 niche blog articles on roofing and home improvement sites
- Niche links to storm damage repair (5), roof replacement (5) and roof repair (5)
Links point at: Homepage and the three main service pages
What moved: 36 of 49 points improved. The rings within 2.5 miles moved most, and top 3 went from 2 points to 5.
Month 2 · Days 31 to 60
Niche blogs + hyperlocal
Keep building relevance and tie the business to its city
- 15 more niche articles, to emergency roof repair (5), roof inspection (5) and storm damage repair (5)
- 15 hyperlocal articles on sites about the same city
- Hyperlocal topics weighted to the north side neighborhoods flagged on day 0
- Link wording mixed: brand name, brand plus city, plain phrases
Links point at: Service pages and the new city page
What moved: 9 points that had never ranked started ranking. Visibility went from 77.6% to 95.9%.
Month 3 · Days 61 to 90
Citations + hyperlocal
Win the outer neighborhoods of the city
- 15 more citations on city directories, community sites and trade associations
- 15 more hyperlocal articles on sites about the same city
- Topics covering the neighborhoods at the edge of the grid
- Each article links to the city page or the storm damage page
Links point at: City page and storm damage page
What moved: The outer edge. Its average went from 14.0 to 9.8, and the last 2 grey points started ranking.
Month 1: 15 citations + 15 niche blogs (days 1 to 30)
The first job was cleanup. Two directories still listed a phone number the company had stopped using, so those were fixed before anything new went out. Then 15 citations went live on local, trade and map directories, every one with the exact name, address and phone number on the Google Business Profile.
Alongside them, 15 niche blog articles went out on roofing and home improvement sites: 5 linking to the storm damage repair page, 5 to roof replacement and 5 to roof repair. The website also got a proper city page, with real jobs done around the city and reviews from customers who live there. And the crew leads started texting a review link on the evening of every finished job.

Day 30 result: the middle got stronger. 36 of 49 points improved. Local voice went from 39.2% to 46.2% and top 3 from 2 points to 5. The ring about 2.5 miles out improved most, from 10.4 to 8.3. Consistent citations plus relevance from niche sites made the business a better answer close to home.
The edges barely moved, though. Visibility only went from 75.5% to 77.6%, and 11 points were still grey. Niche links say "this is a good roofer". They do not say "this roofer works in the north side of the city". That needed hyperlocal links.
Month 2: 15 niche blogs + 15 hyperlocal (days 31 to 60)
Month 2 kept the relevance going with 15 more niche articles, this time to the emergency roof repair page (5), roof inspection (5) and storm damage repair (5). Different service pages, so the business was tied to more of the searches homeowners actually make.
The other 15 links were hyperlocal: articles on sites about the same city, pointing at the new city page. Topics leaned toward the north side neighborhoods that day 0 flagged as the weakest zone. Link wording stayed mixed: the brand name, the brand with the city, and plain phrases.

Day 60 result: the grey points start to go. 9 points that had never ranked started ranking, and visibility jumped from 77.6% to 95.9%. The outer ring improved from 17.1 to 14.0. Local voice reached 57.7%, top 3 grew to 7 points, and the business took 1st place at its own address.
Not every point went up. One just south-east of the business slipped from 7th to 8th. That is normal from one scan to the next, and it is exactly why you judge a campaign on the whole grid instead of one location.
Month 3: 15 citations + 15 hyperlocal (days 61 to 90)
The last month went after the outer neighborhoods. 15 more citations went out, this time on city directories, community sites and trade associations connected to that city. And 15 more hyperlocal articles covered the neighborhoods at the edge of the grid, each linking to the city page or the storm damage page.

Day 90 result: the edges fill in. The last 2 grey points started ranking, so visibility hit 100%. The outer ring average dropped from 14.0 to 9.8, the biggest change of the whole campaign, in exactly the part of the city the hyperlocal links and city citations were aimed at. Points in the top 10 went from 30 to 40, and local voice finished at 71.7%.

Results after 90 days
Results after 90 days, scan by scan
Illustrative| Metric | Day 0 | Day 30 | Day 60 | Day 90 |
|---|---|---|---|---|
| Local voice | 39.2% | 46.2% | 57.7% | 71.7% |
| Visibility | 75.5% | 77.6% | 95.9% | 100% |
| Points in the top 3 | 2 | 5 | 7 | 9 |
| Points in the top 10 | 19 | 21 | 30 | 40 |
| Points not in the top 20 | 12 | 11 | 2 | 0 |
| Average rank where it ranks | 10.6 | 9.1 | 9 | 6.7 |
| Outer edge average (20+ as 21) | 18.2 | 17.1 | 14 | 9.8 |
| Google reviews | 60 | 68 | 77 | 86 |
Scores at each scan
IllustrativeTwo things stand out. First, the biggest jump in visibility came in month 2, the first month with hyperlocal links. Before that the business was getting stronger where it already ranked, but not appearing anywhere new. Second, local voice rose every month, because it only climbs when the business ranks higher in more places. That makes it the better number to report than visibility alone.
Average rank by distance from the business (lower is better)
IllustrativeCenter
About 1.2 mi out
About 2.5 mi out
Outer edge, 3.7 mi+
This is the clearest view of what each month did. Month 1 (citations and niche blogs) moved the rings within 2.5 miles. Month 2 (niche and hyperlocal) kept the middle moving and started on the edge. Month 3 (citations and hyperlocal) did most of its work on the outer ring, the neighborhoods furthest from the business. The effects overlap in practice, since links keep getting found and indexed after the month they were built, but each pairing had a clear job.
What changed at each point, day 0 to day 90
Illustrative49 of 49
points ranked higher on day 90 than on day 0.
12 points went from not ranking at all to ranking, all of them on the outer ring of the city.
The center moved one place (2nd to 1st). It was already strong, so almost all of the gain is away from the office.
Between day 30 and day 60, one point just south-east of the business slipped from 7th to 8th. Small swings like that are normal from scan to scan.

One note on average rank: 10.6 on day 0 and 6.7 on day 90. That looks like a modest change for a big difference in the business, because the day 0 average quietly skipped the 12 points where the roofer did not rank at all. It is the best reason not to judge a roofing campaign by average rank.
What this case study teaches
Scan before you build. The day 0 grid decided where the hyperlocal links went first.
Pair link types by job. Citations make the listing consistent, niche blogs build roofing relevance, and hyperlocal links reach the parts of your city where you do not show up yet.
Stay in your city. A one-city roofer does not need links about other towns. It needs every neighborhood of its own city to connect back to it.
Keep reviews going. The roofer went from 60 to 86 reviews over the 90 days. Still behind the leaders, which is why review requests stay in the plan for the next quarter.
Real campaigns vary
Real grids go up and down between scans, competitors run their own campaigns, and results depend on how crowded your city is. Use the order and the way of measuring from this campaign, not the exact numbers.
See where your roofing company disappears
Run a map grid for "roof repair" in your city and see every point where you rank, where you slip, and which roofers are taking the calls in the towns further out.
Timing roofing SEO around storm season
The worst time to start roofing SEO is the week after a big storm. By then the calls are already going to the roofers who ranked in those towns before the storm arrived.
Rankings built from links take time to appear, because Google has to find and index new links first. Plan backwards from your busy season. If hail and storm season in your area peaks in late spring, the town pages and citations should be done by the end of winter, and the city blog links should be live a couple of months before the peak.
When a storm does hit, act on the profile, not the links. Post about storm inspections in the affected towns, make sure your hours and phone number are right, and reply fast to every new review. Those are the changes that can help within days.
What is the 25% rule for roofing? (And content homeowners search for)
The 25% rule is a building code rule best known from Florida. Under Florida Building Code, Existing Building, Section 706.1.1, no more than 25 percent of a roof or roof section can be repaired, replaced or recovered in any 12-month period unless the entire roof or section is brought up to current code. A 2022 Florida law changed this for roofs built, repaired or replaced under the 2007 Florida Building Code or later: for those, only the part being worked on has to meet current code.
It shows up in Google's "People also ask" box on roofing searches, which tells you something useful: homeowners research insurance and code questions before they call a roofer. A homeowner arguing with an insurer about whether they need a full replacement is exactly the customer a roofer wants.
That makes questions like this some of the best content a roofing company can publish. A clear page on how partial replacement works in your state, how insurance claims usually go, what a storm inspection involves, or how long a shingle roof lasts in your climate answers what real customers ask. It also gives other sites a reason to link to you, and gives AI answers something trustworthy to quote. Always check the rule for your own state, since partial replacement rules vary.
Is roofing SEO still worth it with AI search?
For the searches that make you money, yes. Someone typing "roof repair near me" wants a roofer to call today, and Google still answers that with a map of businesses. The AI answers mostly appear on broad research questions like "how long does a metal roof last".
Those research questions still matter, just differently. The pages AI answers draw from tend to be the ones that are clear, specific and trusted. A roofing company that explains the 25% rule, storm claims and roof lifespans clearly on its own site is building exactly the kind of pages those answers cite. And the homeowner who reads that answer still needs a roofer in their town, which brings you back to the map.
Roofing SEO yourself, or hire a roofing SEO company?
You can do a surprising amount yourself. The profile, job photos, review requests, service pages and a handful of real town pages need time, not special tools. An owner who spends a few hours a month on these will usually beat a competitor who does nothing.
The parts that are hard alone are the parts that need data or scale: measuring rankings across a whole service area rather than from one phone, building citations consistently across many directories, and earning links from relevant roofing and city sites.
What to pay
Local SEO retainers commonly run from a few hundred to a few thousand dollars a month. The monthly number tells you very little on its own. What matters is what is delivered: how many citations and links, which pages get built, which towns are targeted, and how results are measured. If an agency cannot tell you that in writing, you are paying for a promise. Our pricing is per link and per scan, so you can see exactly what each month buys.
How to choose a roofing SEO company
Ask four questions before you sign anything:
How will you measure my rankings? If the answer is one number from one location, walk away. You need a grid across your service area. What exactly do you build each month? Pages, citations, links, and where the links come from. How do you handle multiple towns? If the answer involves forty near-identical pages, walk away faster. Do you guarantee rankings? Nobody controls Google. A guarantee usually means a long contract, not a result.
Roofing SEO mistakes we see most often
Judging success by one ranking. "We rank 3rd for roof repair" from the owner's desk says nothing about the towns where storms hit. Measure the grid.
A single "Service Areas" page. A list of towns is not a signal. A real page per important town is.
Mismatched business details. Old phone numbers and old addresses on directories quietly weaken everything else. Fix them before building anything new.
Starting in storm season. Build months before the peak, not during it.
Keyword stuffing the business name. Adding "Best Roofer Dallas" to your profile name breaks Google's rules and can get the profile suspended, which is far worse than ranking a little lower.
Links that all say the same thing. If every link to your site uses the exact phrase "roofing company in [city]", it looks built rather than earned. Mix brand names and plain phrases.
A 90-day roofing SEO plan
Copy this into your notes. Each line is covered above.
Week 1: measure
Run a rank grid for your two most valuable searches in your main city
Note the towns showing 20+ and which competitors cover the most ground
Pick the 5 towns you most want jobs from
Weeks 2 to 4: foundation
Primary category set to Roofing contractor, service areas listed
Job photos uploaded, every service listed on the profile
Business details fixed on every directory, citations built
Review requests sent the evening of every finished job
Weeks 5 to 8: pages and niche links
One page per main service, including emergency and storm damage repair
One genuinely different page for each of your 5 towns
Niche blog links to service pages, varied wording, spread over the month
Weeks 9 to 12: city links and re-measure
City blog links pointed at each town page
One helpful page on a question homeowners ask, such as partial replacement or insurance claims
Re-run the same grid and compare visibility and local voice, not just average rank
Questions people ask
What is roofing SEO?
Roofing SEO is the work of getting a roofing company to show up when homeowners search for roof repair, replacement or inspections on Google, both in the map pack and in the regular results below it. For most roofers the map pack matters most, because searches like "roofers near me" and "roof repair near me" are answered with a map first. It covers the Google Business Profile, service and town pages on the website, reviews, citations and links.
How much should a roofing company pay for SEO?
Local SEO retainers commonly run from a few hundred dollars to a few thousand a month, and the price tells you less than what is actually delivered each month. Ask for a list: which pages get built, how many citations and links, which towns are targeted, and how rankings are measured. A roofer can also split the work: handle the profile and reviews in house, and pay only for the parts that need tools or a link network.
How long does roofing SEO take to work?
Profile fixes and new reviews can move map rankings within weeks. Links and new town pages usually take two to three months to show up across a whole service area, because Google has to find and index the links first. That is why a roofer should start well before storm season rather than during it.
What is the 25% rule for roofing?
It is best known from Florida. Under Florida Building Code, Existing Building, Section 706.1.1, no more than 25 percent of a roof or roof section can be repaired, replaced or recovered in any 12-month period unless the whole roof or section is brought up to current code. A 2022 Florida law changed this for roofs built, repaired or replaced under the 2007 Florida Building Code or later: for those, only the portion being worked on has to meet current code. Other states handle partial replacement differently, so check the local code.
Can I do SEO for my roofing company myself?
Much of it, yes. The Google Business Profile, job photos, review requests, and a page for each service and each main town are all things an owner can do without special tools. The parts that are hard to do alone are measuring rankings across the whole service area, building citations at scale, and earning links from relevant sites.
Is SEO still worth it for roofers now that Google shows AI answers?
For the searches that bring jobs, yes. Someone searching "roof repair near me" wants a roofer they can call, and Google still answers that with a map of businesses. AI answers mostly affect broad questions like "how long does a roof last". Those questions are still worth covering on your site, because the pages that AI answers cite are the pages that are already well built and trusted.
What is the best way to advertise my roofing company?
Most successful roofers run more than one channel: the Google map pack through SEO, paid search or local service ads for immediate calls, and referrals from past customers and insurance adjusters. SEO is the slowest to start and the cheapest per job once it is working, because you are not paying for every click. Paid ads are useful while SEO builds up, and during storm spikes.
How do I choose a roofing SEO company?
Ask to see rankings measured across a grid of your service area, not a single number. Ask what exactly is built each month and where the links come from. Ask how they handle multiple towns without creating thin duplicate pages. And be wary of guaranteed rankings: nobody controls Google, and a guarantee usually means a contract that is hard to leave.
Why does my roofing company show up in some towns but not others?
Because Google ranks businesses differently depending on where the searcher is. Distance from the searcher is one of the main local ranking factors, so a roofer is usually strong near their address and weaker further out. To rank in towns further away, the company needs signals that tie it to those towns: a real page for each town, reviews from customers there, and links from sites connected to those areas.
