Digital Domination Marketing

Roofer local SEO: how GBP entity signals, schema and PageSpeed beat the storm chasers

A roofing company gets judged in seconds by a homeowner who has never bought a roof before. Here is how to make Google, the AI engines and that homeowner reach the same conclusion: you are the licensed, insured, local choice.

Roofer local SEO: how GBP entity signals, schema and PageSpeed beat the storm chasers

The inspection report lands nine days before closing

A seller in a 2004 subdivision gets the buyer's inspection report on a Tuesday. Page four says the shingles are at the end of their serviceable life, there is granule loss in the gutters and two pipe boots are cracked. The buyer wants a new roof or a credit before closing, nine days away. The seller has never hired a roofer. She searches roof replacement near me from her car outside the title company.

One company has reroofed that subdivision for fifteen years, holds a state license and a manufacturer certification, and could tear off Thursday. It is not in the top three. A listing created after last spring's hail event, with a P.O. box and a rented truck wrap, is.

Roofing is a twice-in-a-lifetime purchase, so the buyer trusts what the results tell her. Google and the AI engines do the same at scale: they gather facts about your company from your profile, site, schema, reviews and third-party sources, then decide whether you are relevant, prominent and trustworthy enough to show. When those facts are thin or inconsistent, the better roofer loses to the better-described one.

The short version for an owner who is on a roof right now

Google ranks local businesses on relevance, distance and prominence. You cannot move the searcher's house, so the work is relevance, prominence and a site that converts the click. At Digital Domination we build that on three pillars plus a few supporting systems:

  • GBP entity signals: category, service vocabulary, service area, photos and city pages that tell Google what kind of roofer you are and where you actually work.
  • Schema: a RoofingContractor entity graph connecting the company, its license, certifications, crews, services and territory with permanent identifiers.
  • PageSpeed: a site that shows the license number, rating and free inspection button before a homeowner in a driveway gives up.
  • Supporting systems: pricing and insurance content, a review ask at every final walkthrough, neighborhood mentions, and a Search Console, GA4 and CRM loop that shows which of it signs contracts.
The Local SEO Trinity for Roofers: Google Business Profile entity signals, schema and PageSpeed supporting a high-converting landing page, with reviews, social and brand mentions feeding in and Search Console, GA4 and CRM data driving recursive optimization.
The Local SEO Trinity: entity signals, schema and PageSpeed around one high-converting page, improved recursively from real performance data. (tap to enlarge)

Teaching Google the difference between you and a storm chaser

The primary category for nearly every roofer is Roofing contractor. Secondaries (Gutter service, Siding contractor, Skylight contractor) belong only if your own crews do that work. Most roofers are service-area businesses: if customers never visit the yard, hide the address and set the service area to the counties you really cover. Google compares the area you claim against the addresses in your reviews and job photos, and a 150-mile radius with reviews from one county reads like a storm chaser.

Services define your vocabulary, and the same names should be headings on the website. Fill the profile with what you actually sell:

  • Roof replacement by material you install: architectural shingle, metal standing seam, tile, low-slope TPO for commercial.
  • Roof repair: leaks, pipe boots, flashing, ridge vents, skylights.
  • Storm damage inspection and insurance claim assistance, described honestly (you document damage and meet the adjuster; you never waive deductibles).
  • Real estate roof inspections with a written report for the addendum.
  • Photos of your crews on your roofs: tear-off, finished ridge, truck wrap, license plaque. No stock drone footage.
  • A page per core city, linked from the profile with UTM parameters, showing jobs in named subdivisions, the HOA-approved shingle color, the county permit step and reviews from that town. Pointing the profile at the homepage wastes your strongest relevance signal.
GBP entity signals for Roofers: categories, services, location, hours and reviews feed the Google Business Profile, producing relevance and prominence, then Maps visibility.
Every Google Business Profile field is an entity signal. Complete and consistent beats clever. (tap to enlarge)

Proof a homeowner checks before signing a five-figure contract

Roofing has a trust problem other trades do not. Every hail season brings out-of-state crews knocking doors, and every homeowner knows a story about the roofer who cashed the insurance check and vanished. Your first screen must answer two questions at once: are you licensed and insured here, and will you exist when the workmanship warranty is needed. The strip below is an illustrative example with placeholder figures; everything in yours must be real and checkable:

  • Example strip: State Licensed Roofing Contractor No. 000000 | GAF Master Elite | Fully Insured, Certificate on Request | Family Owned Since 20XX | Free Inspection.
  • License: the real number, the issuing body (a state contractor board where one exists; otherwise city registration plus a state roofing association credential) and a link to the public lookup.
  • Insurance: general liability and workers' compensation, with an offer to email the certificate before the crew arrives.
  • Certifications you actually hold (GAF Master Elite, Owens Corning Platinum Preferred, CertainTeed SELECT ShingleMaster, IKO ROOFPRO), each badge linked to your listing on the manufacturer's contractor locator.
  • Warranties stated precisely: the manufacturer system warranty by name and term, and your workmanship warranty in years.
  • Memberships: NRCA, your state roofing association, the BBB, HAAG Certified Inspector for whoever meets adjusters.
  • People: the owner and project managers who will be on site, with names, photos and years in the trade. Homeowners hire the person who did the inspection, not a logo.
Authority plus CRO for Roofers: credentials, reviews and proof feed the above-the-fold landing page alongside pricing and availability, producing trust and the primary call to action.
Authority is what the first screen proves before anyone scrolls. Trust is what it earns. (tap to enlarge)

Reviews that mention the tarp, the magnet sweep and the adjuster

Velocity and language matter more in roofing than star average, because demand is lumpy. Three hundred reviews that all arrived in the two months after a hail storm, then silence, look exactly like a storm chaser to Google and to a careful homeowner. Ask at the final walkthrough while the crew is loading the trailer, and the review will naturally carry the details that tie your entity to your services and your market:

  • The project manager's name and that he met the adjuster on the roof.
  • The subdivision and the storm that caused the damage.
  • The shingle brand and color, which future searchers use as query terms.
  • Tarps over the landscaping, the magnet sweep for nails, the dumpster gone the same day.
  • Your reply, confirming the service and the town without stuffing keywords.
The review velocity flywheel: a great client experience, a review request, a fresh review, a helpful response, more trust, more clients, repeating.
Velocity beats volume. A steady stream of recent, specific reviews outperforms a large stale count. (tap to enlarge)

Schema for a roofing company: RoofingContractor and the nodes around it

Schema is JSON-LD that labels what your visible content means. Without it Google sees a number, some badges and a list of towns. With it Google can read that the company is a RoofingContractor, that the number is its state license, that a named person works there and holds a manufacturer credential, and that the GAF locator page and the BBB page describe the same organization. Most roofing sites we audit have nothing, or a plugin's generic LocalBusiness output.

Every entity gets a permanent @id (yourdomain.com/#company, yourdomain.com/team/jane-doe/#person, yourdomain.com/roof-replacement/#service) so every page references the same nodes:

  • The company: RoofingContractor, with name, telephone, logo, openingHoursSpecification, priceRange, and no street address for a service-area business.
  • The state license: PropertyValue under identifier, matching the public lookup exactly.
  • Certifications: EducationalOccupationalCredential under hasCredential, with recognizedBy pointing at the manufacturer.
  • Owner and project managers: Person with worksFor pointing at the company @id.
  • Each service: Service with serviceType (roof replacement, roof repair, storm damage inspection, commercial flat roofing), provider, and areaServed listing cities and counties.
  • The free inspection: Offer with price 0; per-square and financing language in a PriceSpecification.
  • Job photos and drone footage: ImageObject and VideoObject with contentLocation set to the city.
  • Site structure: WebSite, WebPage, BreadcrumbList, FAQPage, and sameAs pointing at the manufacturer locator profile, BBB, the license lookup URL, Facebook, YouTube, Nextdoor and your Google Business Profile.

PageSpeed when the homeowner is standing in the driveway looking up

The typical roofing site is a WordPress theme with a drone video hero, a dozen uncompressed manufacturer badges, a forty-photo before-and-after slider, a financing widget, two chat scripts and a storm-alert popup. On two bars of signal the homeowner taps the next result before she sees the license number that would have won the job.

Google's good thresholds are LCP 2.5 seconds or less, INP 200 milliseconds or less and CLS 0.1 or less, measured on real users at the 75th percentile. At Digital Domination we target a PageSpeed Insights performance score of 90 or higher and a 2/2 agentic-browsing check, because AI agents fetching your page for a homeowner give up on slow pages too. The fixes that move a roofing site most:

  • Replace the autoplay drone hero with one preloaded WebP photo of your crew on a local roof; put the video a click below.
  • Compress and resize the badge row. Oversized certification logos are the most common LCP problem on roofing sites we test.
  • Serve galleries as responsive WebP with lazy loading and fixed dimensions so the slider does not shove the phone button down the screen.
  • Load the financing calculator, chat and storm popup after first interaction, and pick one chat tool.
  • Cache at the edge; traffic spikes the night after a storm, and shared hosting falls over exactly then.
  • Keep the sticky call and free inspection buttons as plain HTML.
PageSpeed to conversion: optimized images, lean code and caching produce a fast usable page, clear content, an instant call to action and more conversions. Core Web Vitals targets LCP 2.5 seconds, INP 200 milliseconds, CLS 0.1.
PageSpeed is conversion infrastructure. The score matters less than whether the phone number is tappable in the first second. (tap to enlarge)

Per-square pricing, deductibles and the questions AI answers keep getting

Homeowners ask AI assistants what a roof costs before they call anyone, and the engines answer with whatever contractor pages state plainly. Most roofing sites say nothing because every roof is different. You can be honest about variability and still give the engines something to cite. Put this on service pages, the FAQ and GBP services, and reflect it in the Offer nodes:

  • Inspections are free and the written report belongs to the homeowner either way.
  • Replacement is priced per square (100 square feet) and moves with pitch, layers, decking condition, material and penetrations; a range beats silence.
  • Insurance claims: you document damage, meet the adjuster and bill the approved scope, and the homeowner pays the deductible, because waiving it is illegal in many states.
  • Financing: the actual terms and lender, stated once instead of hidden in a widget.
  • Repairs: a minimum service call and typical ranges for pipe boots or small flashing fixes.
Content that converts for Roofers: a customer question leads to the service page, which proves local expertise, the provider's authority and real results, earning trust and the booking.
Every money page answers the question the customer arrived with, then proves it can be trusted with the answer. (tap to enlarge)

Content that follows the homeowner from the ceiling stain to the final inspection

The homeowner arrives knowing nothing and searching in plain language. Answer the real sequence of questions, each under a descriptive heading with a direct answer beneath it, so a scanning homeowner and an AI retrieval system can both lift it:

  • Repair or replace: signs of a failing roof, how long each shingle type lasts in your climate, what granule loss means.
  • Was that storm enough to claim: how hail and wind damage look from the ground, the adjuster process, your state's filing deadline.
  • Which material: architectural versus three-tab, metal, tile, and impact-rated shingles and the insurance discount they can earn where allowed.
  • Install day: tear-off, decking inspection, underlayment, ice and water shield where code requires it, permits, cleanup, final inspection.
  • Local knowledge on every page: the county permit office, your wind or hail zone, HOA color approval and recent storm dates.

Search Console, GA4 and the CRM tell you which storms paid

Search Console shows how Google finds you: queries earning impressions, pages tied to each city and service, click-through rate, indexing issues, Core Web Vitals and structured-data errors. If your storm page earns thousands of impressions for hail damage roof inspection in one suburb but few clicks, its title, opening copy, proof and schema are the next fix.

GA4 shows what visitors do next: which pages produce calls and inspection requests, where the form is abandoned, how mobile converts. The CRM and call tracking connect those actions to inspections booked and contracts signed, the only number that matters once the storm passes. Run the loop deliberately:

  • Measure the baseline in all three tools plus a GeoGrid scan before touching anything.
  • Pick the biggest gap: impressions without clicks is relevance work; clicks without inspection requests is speed, proof or offer work; inspections without contracts is sales or lead-quality work.
  • Make one focused group of changes, annotate the date, compare four weeks later.
  • Keep what moved contracts, revert what did not, and let the new data choose the next test.
Engagement that matters: GBP, social and organic visitors land on the page, then read, watch, scroll and click until intent is satisfied by a call, form or booking. Ten seconds and a call is a win; six minutes and an exit is not.
Measure what the visitor did, not how long they stayed. A ten-second visit that ends in a call is the win. (tap to enlarge)

Drone footage, Nextdoor threads and the news segment about storm scams

Social publishing for a roofer is corroboration of the same entity: same name, same towns, same crews, same certifications. Every completed job is a post for Google Business Profile, Facebook, YouTube and Nextdoor, and Google's Search Console now reports supported social and video platform properties, which shows how far social content and search discovery have converged.

Mentions count without a link. A Nextdoor thread where three neighbors name your company, your project manager and the subdivision after a hail event ties your entity to a service, a place and a reputation in one paragraph. Reddit belongs in the mix but not at the center: Axios reported in August 2026 that Reddit's share of visible ChatGPT Search citations fell roughly 86 percent, while OpenAI still holds a Reddit data partnership, so diversify. For roofers the highest-value sources are:

  • Nextdoor and neighborhood Facebook groups, where the recommendation request after every storm gets answered by past customers if you asked them to.
  • Local news, which runs a storm-scam segment after every hail event and needs a licensed local contractor to quote.
  • Real estate agents and home inspectors, who send the nine-days-to-closing job.
  • Manufacturer locators and the state association directory, which confirm name, phone and certifications.
  • YouTube: a hail inspection walkthrough or tear-off timelapse in a named subdivision, transcribed on the site and marked up as VideoObject.

A 90-day roadmap timed to finish before the first hail

The profile, schema and pages you fix in the quiet months are what rank the night the hail hits, so start this in the off season:

  • Days 1-14, baseline: GeoGrid scans for replacement, repair and storm terms; audit every GBP field; inventory license, insurance, certifications and warranties; export current schema; check Core Web Vitals on the homepage, storm page and one city page; wire GA4 events, call tracking and CRM stages from inspection to signed contract.
  • Days 15-30, foundation: correct categories and service area; align services with site headings; rebuild city pages with local job photos; put the license and certification strip above the fold; deploy the RoofingContractor graph; replace the video hero and compress the badges.
  • Days 31-60, authority: publish the insurance claim, repair-versus-replace and material guides; build project manager pages; start the walkthrough review ask; complete manufacturer locator, BBB and association profiles; pitch the local news storm-safety contact.
  • Days 61-90, recursion: fix high-impression low-click pages; fix high-traffic low-inspection pages; compare lead source to signed-contract rate; recheck Core Web Vitals and the agentic check; rerun the GeoGrid scan and repeat the highest-impact change.

One roofing company, described the same way everywhere

The goal is not a finished profile, a schema plugin or a fast homepage taken separately. It is one clearly defined roofing entity whose name, license, insurance, certifications, crews, services, towns, pricing language and reputation read identically on Google Business Profile, the website, the schema, the reviews, the manufacturer locators, the neighborhood threads and the local news. Search Console, GA4, GeoGrid data and the CRM then make that entity more relevant, more prominent and more profitable every month, so the homeowner with nine days to closing finds the licensed local roofer instead of the truck that showed up after the storm.

At Digital Domination that is the work behind our guarantee: top 3 in the Google Map Pack in 12 weeks or you do not pay. Start with the truth: our free GeoGrid scan checks 169 points across your market and shows, street by street, where the storm chasers outrank you. Run the scan.

Keep reading

Related guides

Put it into action

Frequently Asked Questions

Which Google Business Profile category should a roofing company use?

Roofing contractor should be the primary category for almost every residential or commercial roofer. Add secondaries such as Gutter service or Siding contractor only for work your own crews perform regularly. Categories for trades you subcontract dilute relevance and bring calls you cannot serve well.

Should a roofer hide the address on Google Business Profile?

If customers do not visit your office or yard, yes: hide the address and set a realistic service area. An oversized radius that does not match your reviews and job photos weakens trust with Google and homeowners alike. Keep the area to the counties where you have completed jobs.

Does RoofingContractor schema raise rankings on its own?

No. Schema helps Google and AI systems understand that your license number, certifications, crews, services and towns belong to one entity, and it makes pages eligible for supported features. Its value depends on describing accurate, visible content, so fix the page first and mark it up second.

Can we say we help with the insurance deductible on our website?

No. Waiving, absorbing or rebating a deductible is illegal in many states and is one of the clearest storm-chaser signals to homeowners, adjusters and regulators. Say plainly that you document damage, meet the adjuster and bill the approved scope while the homeowner pays the deductible. That honesty converts.

Should we publish roof replacement prices when every roof is different?

Publish the structure of your pricing even if you cannot publish a number: per-square pricing, the variables that move it, the free inspection, financing terms and typical repair ranges. AI answers and homeowners both reward pages that explain cost honestly. Silence sends the question to a competitor who answered it.

How fast does a roofing website need to be?

Aim for Core Web Vitals in the good range (LCP 2.5 seconds, INP 200 milliseconds, CLS 0.1 at the 75th percentile) and a PageSpeed Insights performance score of 90 or higher on mobile. The usual culprits on roofing sites are an autoplay drone hero, uncompressed certification badges and oversized galleries. Fix those three and most sites pass.

Do reviews collected only after storms hurt us?

A burst of reviews after a hail event followed by months of silence looks like storm-chaser behavior to Google and to homeowners. Build the review ask into every final walkthrough on repairs, inspections and replacements so reviews arrive in every season. Steady velocity with detail about the crew and the town beats a single spike.

Ready to dominate your map?

Top 3 in the Google Map Pack in 12 weeks, or you don't pay.