Revenue AI Lab. Book the audit
All writing
Playbook · 9 min read · May 2026 · PNW

AI SEO for roofing contractors: a 90-day playbook.

AI SEO for roofing contractors means restructuring your service pages so ChatGPT, Google AI Overviews, and Perplexity cite your business when homeowners search "best roofer in Portland" or "roof replacement near me." The work breaks into three 30-day sprints: service page restructuring with schema markup, Google Business Profile cadence, and geographic content expansion. Expect first AI citations within 60-90 days. The PNW roofing market has two structural advantages for contractors who move now: year-round demand driven by sustained rain and moss damage, and a competitive field where most roofers still have zero AI-optimized content.

Why roofing is uniquely positioned for AI search in the PNW

Roofing queries in the Pacific Northwest split into three categories, each with different AI search behavior. Understanding the split determines which pages you restructure first.

Emergency leak and storm damage. "Roof leak repair Portland," "emergency roofer Seattle," "storm damage roof Tacoma." These are the highest-intent queries in the trade. AI engines answer them before the homeowner scrolls past the first result. If your emergency repair page isn't structured for citation, you lose the call before you compete. Portland averages 36 inches of rain a year, most of it between October and April. Seattle gets 37. Emergency roofing queries spike every fall and run through spring — a six-month window that most PNW roofers aren't capturing through AI search.

Planned replacement and upgrades. "Roof replacement cost Portland," "metal roofing vs asphalt shingles Seattle," "best roofing material for rain." These are research-phase queries where homeowners ask ChatGPT and Perplexity to compare options before calling anyone. PNW installation costs run 10-25% above the national average due to the wet climate, stricter building codes, and the need for crews experienced in moisture prevention. Homeowners know this and research more aggressively before committing. The roofer with clear, structured comparison content gets cited. The roofer with a single "/services" page listing everything gets skipped.

Moss, moisture, and maintenance. This is the query category that's almost entirely PNW-specific. "Roof moss removal Portland," "cedar shake roof maintenance Seattle," "moss treatment Bend." National roofing content doesn't address moss because it's not a factor in most U.S. markets. Portland and Seattle homes — especially those built before 1980 with cedar shake roofs — deal with moss and moisture damage as a constant maintenance issue. A PNW roofer with dedicated moss removal and cedar shake pages has a structural advantage over every franchise site whose content was written for the Sun Belt.

Days 1-30: Restructure your five highest-value service pages

Pick the right five pages

Most roofing contractors list 8-12 services. Focus the first month on the five that generate the most calls or the highest ticket. For most PNW roofers, that list is: roof replacement (composition shingle and metal), emergency leak repair, roof inspection, moss removal and treatment, and gutter installation or repair. If you don't have separate pages for each, creating them is step one. A single "/roofing-services" page that covers everything gets cited for nothing.

Add the direct-answer paragraph

Below the H1, before any image or hero banner, write a 60-80 word paragraph that directly answers the query the page targets. First sentence answers the question. No preamble. No company history. No "Welcome to [company name]."

Example for a roof replacement page targeting Portland: "Roof replacement in Portland typically costs between $8,000 and $18,000 for a standard residential home, depending on material (composition shingle, metal, or flat membrane), roof pitch, and whether the existing roof needs a full tear-off. Most Portland homes built before 1970 have one or two layers of aging shingles over original cedar shake, requiring full removal before new installation. Permits are required for all re-roofing in Multnomah County." That's the paragraph AI engines quote.

Add FAQ schema to each page

Write 5-7 Q&A pairs per service page using the questions homeowners actually ask before calling. For roof replacement: "How much does a new roof cost in Portland?" "How long does roof replacement take?" "Do I need a permit to replace my roof in Oregon?" "Should I repair or replace my roof?" "What roofing material lasts longest in the PNW rain?"

Each answer: 2-4 sentences. Specific. Falsifiable where possible — real cost ranges, real timeframes, real PNW context. Wrap the entire FAQ block in FAQPage JSON-LD schema. The schema tells AI engines these are structured Q&A pairs, not just body text that happens to look like questions and answers. Body copy alone helps a little. Body copy plus schema helps dramatically more.

Add LocalBusiness + Service schema

Every service page gets both LocalBusiness and Service schema in the page head. LocalBusiness identifies your company, location, and service area. Service schema identifies the specific service on that page. Without page-level Service schema, an AI engine sees "a roofer in Seattle" but can't tell whether this page is about moss removal or full replacement. With it, the page becomes unambiguously citable for the right query.

Days 31-60: Google Business Profile cadence and review velocity

Weekly GBP posts

Google Business Profile activity is the freshness signal AI engines pull from when deciding which local businesses to cite. Most roofing contractors set up GBP once and never post again. A weekly cadence puts you ahead of the majority of your competitors without any additional spend.

Rotate four post types: a recent job photo (before/after roof replacements perform especially well — aerial drone shots if you have them), a seasonal maintenance tip relevant to the homeowner's current concern, a customer review highlight from your existing pile, and a service announcement (financing options, new material availability, storm-season readiness). Batch a month of posts in 20 minutes using the GBP scheduler.

For PNW roofers specifically, lean into seasonal weather content. "Just completed a moss treatment and gutter cleaning in Tigard before the October rains." "Emergency tarp and repair after last week's windstorm in Tacoma." These posts match the queries homeowners are running at the same time and get cited when someone asks AI about storm damage repair in their city.

Review velocity over review count

A roofer with 60 reviews from the past 6 months looks more active to AI engines than a roofer with 400 reviews where the most recent is from 2024. Freshness of reviews matters more than total count. After every completed job, send a simple text or email asking for a Google review. Automate it if you can, but manual follow-up works at low volumes.

Target: 4-6 new reviews per month. Roofing has an advantage here — a completed roof replacement is a significant enough event that customers are more willing to leave a review than for a minor repair. Ask after the final walkthrough when satisfaction is highest.

Days 61-90: Content expansion and geographic pages

City-specific service pages

If you serve multiple PNW cities, build separate pages for each city and each major service. "Roof replacement Portland" and "roof replacement Vancouver WA" should be different pages with genuinely different content. Portland requires Multnomah County permits and has a high concentration of pre-1970 homes with original cedar shake underneath existing layers. Vancouver WA has different permit requirements through Clark County and a housing stock that skews more toward 1980s-era composition shingle. Seattle has its own permitting through SDCI and stricter energy code requirements.

Don't create templated city pages where only the city name changes. AI engines detect and ignore duplicate content with swapped locations. Each page needs at least 3-4 paragraphs of genuinely city-specific information — different building codes, different common roof types, different weather patterns, different typical home ages.

Build out the moss and moisture category

This is where PNW roofers have the biggest content gap and the easiest win. Most roofing websites nationally don't mention moss at all. PNW homeowners search for moss removal, cedar shake maintenance, and moisture damage repair constantly — especially in Portland, Seattle, and Tacoma where tree canopy coverage keeps roofs shaded and damp year-round.

Build dedicated pages: "Roof Moss Removal in Portland," "Cedar Shake Roof Maintenance in Seattle," "How to Prevent Moss on Your Roof in the Pacific Northwest." Each page with a direct-answer paragraph, FAQ schema, and specific PNW context. Moss retains moisture against shingles and shakes, accelerating decay. Cedar shake roofs — common in older PNW homes from the 1950s through 1980s — need gentle low-pressure cleaning rather than power washing, which strips the wood's protective layer. That's the kind of specific, practical content AI engines cite.

Publish one blog post per month

One 1,200-1,500 word post per month that answers a specific query. "How to Tell If Your Portland Roof Needs Replacement." "Metal Roofing vs Composition Shingles for Seattle Rain." "What Tacoma Homeowners Need to Know About Roof Insurance Claims." Each post structured with a direct-answer TL;DR, H2/H3 sections, and FAQ schema at the bottom.

Monthly publishing cadence signals to AI engines that your site is actively maintained. A site that hasn't published in 6 months looks dormant, even if you're running five crews a day. One post per month is the minimum effective dose for freshness.

Outbound to property managers and HOAs

Commercial roofing work and recurring maintenance contracts fill slow months and stabilize cash flow. PNW property managers and HOA management companies need roofing contractors for multi-building maintenance, emergency repairs, and scheduled replacements. Portland metro has 200+ property management companies. Seattle has more. HOAs across suburban PNW metros like Beaverton, Tigard, Bellevue, and Kirkland manage thousands of units that need regular roof maintenance.

Direct outbound with a specific offer — annual roof inspection program, emergency response SLA, multi-property maintenance pricing, transparent invoicing — converts at 1-3% to a meeting and 20-30% from meeting to contract. One HOA maintenance contract covering 40 buildings is worth more than a dozen residential jobs on annual value.

What to measure and when

Week 1: Run baseline citation checks. Ask ChatGPT, Perplexity, and check Google AI Overviews for your top 10 target queries. "Best roofer in Portland." "Roof replacement cost Seattle." "Moss removal Portland." Note the three businesses cited. Screenshot the results. This is your before picture.

Day 30: Rerun the same queries. You probably won't see your business cited yet. That's normal. What you should see: your restructured pages indexed in Google Search Console, GBP impressions starting to trend up, and your site appearing in more "discovery searches" (non-branded queries) in GBP Insights.

Day 60: First citations typically start appearing. Usually on your strongest service page — the one with the most reviews, the most specific content, and the most GBP activity. Check all 10 queries again. If you built out the moss/cedar shake category, those pages often cite first because competition is so thin.

Day 90: Broader citations across multiple service pages. GBP discovery impressions should be up 30-60% from baseline. Inbound call quality should feel different — more callers mentioning specific services, fewer price-shoppers. If running outbound: 5-15 conversations with property managers, 1-3 first meetings booked, possibly a first contract close on a longer cycle.

Common mistakes that slow the timeline

A few patterns that seem productive but actually delay results:

Rebuilding the entire website before starting AI SEO. You don't need a new site. You need five pages restructured with direct-answer paragraphs, FAQ schema, and Service schema. A $15,000 website redesign that takes three months delays the work that actually gets you cited. Make the structural changes to your existing pages first. Redesign later if you want.

Buying links instead of building structured content. Link building worked for classic SEO. AI engines don't weight links the same way. They weight content structure, schema, and freshness. A page with 50 backlinks but no FAQ schema loses to a page with zero backlinks and complete schema for AI citation purposes.

Ignoring GBP because the website feels more important. GBP is the freshness signal. The website is the structure signal. You need both. Roofers who rebuild their site but don't touch GBP wait longer for citations because the freshness layer is missing.

Creating "service area" pages that list every city you serve on one page. "We serve Portland, Vancouver, Salem, Eugene, Bend, Tacoma, Seattle, Spokane, and surrounding areas" gives AI engines nothing to cite for any specific city. Each city needs its own page with its own content.

FAQ

How much does AI SEO cost for a roofing contractor?

DIY: 10-15 hours per month of focused work, concentrated in the first 30 days when you're restructuring pages. After that, 3-5 hours per month for GBP posting, review management, and monthly content. Done-for-you pricing depends on the size of your service area and how many services you offer — that's a conversation for a 15-minute audit, not a number we publish without context.

Should I keep running Google Ads while doing AI SEO?

Yes, for the first 90 days. AI SEO takes 60-90 days to produce citations. Don't cut existing lead sources before the new channel is generating. After 90 days, evaluate: if AI-sourced calls are replacing paid leads at lower cost per acquisition, shift budget. Most roofers end up reducing ad spend by 30-50% over six months, not eliminating it.

Is AI SEO different from regular SEO for roofers?

Regular SEO optimizes for ranking in the 10 blue links. AI SEO optimizes for being cited in the AI Overview above those links, and in ChatGPT and Perplexity responses. The overlap is about 60% — good content and schema help both. The difference: AI SEO weights structured answers, FAQ schema, and freshness signals more heavily than backlinks and domain authority.

Does moss removal content really drive leads?

In the PNW, yes. Moss removal and cedar shake maintenance are high-volume, low-competition query categories because national roofing content ignores them. A dedicated moss removal page with PNW-specific content and FAQ schema can start getting cited in AI search within 60 days. These leads often convert to larger jobs — a moss treatment visit frequently uncovers underlying damage that leads to a repair or replacement quote.

Will this work in smaller PNW markets like Bend or Spokane?

Smaller markets are actually easier. Less competition for AI citations means fewer pages need to be better than yours. A roofer in Bend with five well-structured service pages and active GBP can dominate AI search for the entire Central Oregon market in 60 days. In Portland or Seattle, the same work takes 90 days because more competitors have similar structure.

Where to start this week

Pick your highest-traffic service page. For most PNW roofers, that's roof replacement or emergency leak repair. Make three changes: add a 60-80 word direct-answer paragraph below the H1, add 5 FAQ Q&A pairs with FAQPage JSON-LD schema, and add LocalBusiness + Service schema to the page head.

Then post to GBP. One post. A before/after photo from a recent job, a sentence about the work, the city name. That's 45 minutes of total work this week. Run a baseline ChatGPT citation check on your top query ("best roofer in [your city]") and screenshot the result. Check again in 30 days. The mechanism compounds from there — same playbook, applied to the next four pages, with GBP running weekly in the background and moss/cedar shake content filling the category gap no one else is covering.

Want this run for you

Book a 15-minute audit on your PNW roofing business.

On the call we pull your site, your Google Business Profile, and run live ChatGPT and Perplexity queries for your service area in Portland, Seattle, Bend, or wherever you operate. You see who's getting cited and you aren't, and the three structural changes that produce citations in 60-90 days.

  • Free
  • No deck
  • Written scope in 48 hrs