Royking Niba

Roofing SEO: What Google Says Decides the Map Pack, the City-Page Trap, and a Demand Map of 12 Roofing Searches

· Royking Niba

Stock photograph of a roofer working on a house roof under a blue sky. Illustrative only, not one of my clients.

Roofing SEO is the work of getting a roofing company in front of homeowners at the moment they search for a roofer, and for most roofing searches that moment happens in Google’s local results, not in the ten blue links. Google says local results are decided by relevance, distance and prominence, and that no one can pay for a better local ranking. So the job splits in two: a Business Profile that follows Google’s rules for service-area businesses, and a website with real service pages, honest city coverage and reviews nobody paid for. Below are Google’s own words on each part, a demand map of twelve US roofing searches with the result type that decides each one, and the two traps that get roofing sites into trouble.

What Google says decides local rankings

Quoted from Google Business Profile Help, “Tips to improve your local ranking on Google”, checked today, 9 October 2026. Google’s help pages carry no last-updated date, so check the page again before you rely on any detail here.

Local results are mainly based on relevance, distance, and popularity.

Google Business Profile Help

The same page then defines three factors, and the third is called prominence rather than popularity. In Google’s words, “Relevance is how well a Business Profile matches what someone is searching for”, “Distance refers to how far each business is from the customer who’s searching”, and “Prominence means how well-known a business is.” Two more sentences on that page matter to every roofer: “There’s no way to request or pay for a better local ranking on Google”, and “More reviews and positive ratings can help your business’s local ranking.”

Read those together and the levers are plain. Distance you cannot change, because it is measured from the searcher. Relevance you control through the categories, services and description on your profile and the pages on your website. Prominence is earned: reviews, mentions and links from other sites, which is where the ordinary link work covered in what backlinks are and what Google says they do still applies to a local trade.

The Business Profile rules that apply to roofers

Most roofers do not have a shopfront customers visit. Google calls that a service-area business, and its Business Profile guidelines have specific rules for it. Quoted from the guidelines page, checked 9 October 2026:

  • “If you’re a service-area business, you should hide your business address from customers.”
  • “The boundaries of your profile’s overall service area shouldn’t extend farther than about 2 hours of driving time” from where the business is based.
  • “Service-area businesses can’t list a ‘virtual’ office unless that office is staffed during business hours.”
  • “P.O. boxes or mailboxes located at remote locations aren’t acceptable.”
  • “Including unnecessary information in your business name isn’t permitted”, and the name “should reflect your business’s real-world name, as used consistently on your storefront”.

The name rule is the one roofers break most often, by adding a city or a service to the profile name (“Smith Roofing Dallas Roof Repair”). It can look like a quick relevance win and it is a guideline violation, which is one of the commonest routes to a suspended profile. If that has already happened, the appeal process is in Google Business Profile suspended: the two levels and the appeal steps.

A demand map of twelve roofing searches

This is the original dataset in this post. Volumes and keyword difficulty (KD) are Ahrefs US estimates, pulled on 9 October 2026. The third column is my reading of where the click is decided, and the last is the page or asset that should own the query. The pattern it shows is the important part.

SearchUS volume a monthAhrefs KDWhere the click is decidedWhat should target it
roof repair near me82,0000Map packBusiness Profile, plus a service page for repairs
roofer near me38,0000Map packBusiness Profile
roofing company near me33,00028Map packBusiness Profile, plus the home page
roof replacement near me19,0005Map packBusiness Profile, plus a replacement service page
best roofing company near me15,00024Map pack and review sitesReviews on the profile
roof replacement110,00065Organic, national publishersHard for a local roofer; target via the cost page
roof repair63,00031Organic, mixedRepair service page
commercial roofing company28,0000Map packA separate commercial service page
roof replacement cost19,00022Organic, informationalA cost guide with your own local price ranges
storm damage roof repair14,0000Organic and map packA storm and insurance claims page
flat roof repair12,0000Organic and map packA flat roof service page
commercial roof repair12,00021Organic and map packThe commercial service page
Ahrefs US data, 9 October 2026. KD estimates how hard the organic top 10 is to enter on links; it does not measure the map pack.

All six local-intent searches in the table carry a KD between 0 and 28, which looks easy. It is misleading for a local trade. KD estimates the link strength of the organic top ten, but for “roof repair near me” and “roofer near me” the click mostly goes to the map pack above those ten results, where distance and prominence decide the order and KD says nothing at all. The organic opportunity for a single roofing company is the informational and specialist rows: a cost guide (“roof replacement cost”, 19,000 searches, KD 22), storm damage, flat roofs and commercial work. “Roof replacement” itself, at 110,000 searches and KD 65, belongs to national publishers and is not a sensible first target.

Seasonality: do not plan on one year of data

Roofing feels seasonal, so I pulled Ahrefs’ monthly estimates for “roof repair” in the US. The two years disagree. From September 2024 to December 2025 the estimates swing from 35,305 in October 2024 to 141,276 in July 2025, a factor of four. From January to September 2026 they sit in a narrow band between 40,020 and 47,424. Either demand flattened, or the estimates changed method between the two periods; the data alone cannot say which. The safe conclusion is that a content calendar built on one year’s curve is a guess. Publish the evergreen pages early and let the weather bring the traffic.

PeriodLowest monthHighest monthHigh divided by low
Sep 2024 to Dec 202535,305 (Oct 2024)141,276 (Jul 2025)4.0
Jan 2026 to Sep 202640,020 (Feb 2026)47,424 (Aug 2026)1.2
Ahrefs monthly volume estimates for “roof repair”, US, pulled 9 October 2026.

City pages without the doorway problem

Roofers serve many towns, so the obvious move is a page per town. Google’s spam policies, last updated 2026-08-28, define doorway abuse as “when sites or pages are created to rank for specific, similar search queries” and list among the examples “Having multiple domain names or pages targeted at specific regions or cities that funnel users to one page”. A page per town is not banned. A set of near-identical town pages that all push the visitor to the same quote form is the example Google gives.

SignalReal service-area pageDoorway page
ContentJobs, roof types, permits or weather specific to that areaThe same text with the town name swapped
ProofPhotos and reviews from that areaNone, or the same reviews on every page
PurposeAnswers a question a visitor from that town hasExists to catch the “[town] roofer” query
CountAs many as you can fill with real local detailOne per town on a list, whatever the detail

The full arithmetic of why templated city pages fail, and Google’s four doorway examples, are in my post on doorway pages. If you cannot write something true and specific about a town, it does not need a page; your service area on the profile already covers it.

Structured data for a roofing company

Google’s LocalBusiness structured data documentation, last updated 2026-09-08, lists two required properties, address (“The physical location of the business”) and name, and tells you to “Use the most specific LocalBusiness sub-type possible.” For a roofer that sub-type exists: on schema.org, RoofingContractor sits under HomeAndConstructionBusiness, which sits under LocalBusiness. A minimal example:

{"@context":"https://schema.org","@type":"RoofingContractor","name":"Example Roofing Co","address":{"@type":"PostalAddress","streetAddress":"100 Example Street","addressLocality":"Example City","addressRegion":"TX","postalCode":"00000","addressCountry":"US"},"telephone":"+1-000-000-0000","url":"https://example.com/"}

One tension is worth knowing. The Business Profile rules tell a service-area business to hide its address, while the structured data documentation makes address a required property for rich result eligibility. Hiding the address on the profile is about what Google shows on Maps; whether to publish your business address on your own website is a separate decision. If you do not want it public, leave the markup out rather than inventing an address. Markup has to match the page.

Reviews: what Google treats as fake engagement

Reviews feed prominence, which makes them the area where shortcuts are most tempting. Google’s Maps user-contributed content policy lists as fake engagement “Reviews or ratings that have been paid for, directly or in kind”, and it prohibits offering incentives such as payment, discounts or free goods and services in exchange for posting any review. Under rating manipulation it lists “Merchants requesting that staff solicit a certain number of reviews” and says “A conflict of interest may include current or former employment”. A discount on the next gutter clean in exchange for a five-star review breaks the first rule; a sales team with a monthly review quota breaks the second.

What is allowed is asking every customer, at the moment the job is signed off, with a direct link to the review form. Asking all customers rather than only the happy ones is the version that stays within the policy and produces reviews that read as real.

Common mistakes on roofing sites

  • Keywords in the profile name. A guideline breach that can end in suspension.
  • A service area drawn as wide as possible. Google’s guidance is about two hours of driving time; past that, distance works against you anyway.
  • Fifty town pages from one template. Doorway territory. Fewer pages, each with real local detail, is the safer set.
  • Chasing “roof replacement”. KD 65 and national publishers. A local cost guide is the realistic organic page.
  • Buying or rewarding reviews. Prohibited, and a review purge can take the prominence you paid for with it.
  • Reading KD as a local difficulty score. It measures the organic links race, not the map pack.

If a roofing site has already lost organic traffic after a spam update or a manual action, the diagnosis is a different job, and it starts with my Google penalty recovery guide. For choosing which of the searches above to build first, the twelve checks in my keyword research checklist apply to a trade business as much as to a publisher.

Related reading

Need help with your own site?

Tell me where it stands. I reply within a day, and the first look is free.

Send me a message

Goes straight to my inbox. I reply within a day.

Leave a Reply

Your email address will not be published. Required fields are marked *