Roofing SEO for BC Contractors: The 2026 Playbook That Actually Ranks
Published 2026-06-22 · ~2110 words · back to blog

If you're a roofing contractor in BC trying to get more leads from search in 2026, you've probably been pitched by a dozen marketing agencies promising page-one rankings for 'roofing Vancouver' inside of three months. None of them will deliver. The roofing SEO landscape has changed more in the last 18 months than in the previous ten years combined — AI search is rewriting how people find contractors, Google's local algorithm has become brutally honest about which businesses actually serve which areas, and the old playbook of buying directory backlinks and stuffing keywords into footer text now actively hurts you. This guide is the playbook that's actually working for Lower Mainland roofers right now: how to structure city pages, how to use schema, how to think about reviews, how to write content that AI search systems will cite, and which marketing tactics to ignore even when the pitch sounds convincing.
What changed in roofing SEO between 2023 and 2026
Three shifts that broke the old playbook: First, AI search overviews now sit above the organic results for almost every 'roofing [city]' query, which means a roofer ranking #4 organically used to get clicks and now gets nothing — the user reads the AI summary and either clicks the cited sources or calls the top Google Business Profile listing. Second, Google's local algorithm now requires demonstrable service-area proof: a Surrey-based roofer claiming to serve North Vancouver without a single review, photo, or proof-of-work in North Van will simply not rank in North Van anymore, regardless of how many landing pages they build. Third, schema markup is no longer optional for local service businesses — without LocalBusiness, Service, and FAQ schema correctly implemented, you are invisible to the AI summarisation layer that's increasingly answering 'who is the best roofer near me' before the user ever clicks.
How to structure city pages without getting penalised
Templated city pages with the municipality name swapped in the title and H1 are the single biggest waste of effort in roofing SEO. They don't rank, they signal low quality to Google, and AI search systems ignore them entirely. The structure that does work in 2026:
1. One genuine page per city you actually serve
If you don't have a real case study, a real review, or a real installer who lives within 30 minutes of the city, you don't have a city page — you have a doorway. Skip it. Better to have 6 strong city pages than 24 weak ones.
2. Unique local code and bylaw references on each
Vancouver's VBBL is not Burnaby's. Surrey has different recycling rules than Maple Ridge. Reference the specific municipal bylaw, the local transfer station, and the local permit fee on each city page. This is the content AI search systems cite when answering 'what permits do I need for a re-roof in [city]'.
3. A real case study with address (street + neighbourhood, not house number)
'Sentinel Hill, West Vancouver — 32 squares, cedar-to-shingle conversion, 4 days, $7,840 total' beats any amount of generic copy. It's specific, it's verifiable, and it's the type of detail AI search rewards.
4. Internal links to neighbouring city pages
A West Vancouver page should link to North Vancouver and Vancouver pages. This signals topical depth and helps Google understand your service area. Avoid linking to all 18 cities from every page — link only to genuinely adjacent ones.
5. Published rates on every city page
Most roofers won't publish rates because they want the in-home sales call. Publishing rates is the single highest-ROI SEO move available to a roofer in 2026 because it (a) ranks for 'cost' queries which have buyer intent, (b) gets cited by AI search as the answer to 'how much does a roof cost in [city]', and (c) filters out tire-kicker leads before they hit your phone.
Schema markup — what to implement and what to skip
Implement these schemas on a roofing site in 2026: LocalBusiness (on the home page, with full NAP, opening hours, and serviceArea covering all the cities you serve), Service (one per service offering — asphalt re-roof, cedar conversion, repair, etc.), FAQPage (on every city and topic page with 4–6 real Q&A pairs), Article (on every blog post with author, publishedAt, image), BreadcrumbList (on every deep page), and Review (only for verified reviews with the reviewer's permission — fabricated reviews are now algorithmically detected and the penalty is brutal). Skip these: Product (rarely makes sense for services), Offer (your published rates can be inside Service schema, you don't need a separate Offer node), and any schema for content that doesn't actually exist on the page (the cardinal sin — Google's structured data validation now penalises mismatch between schema and visible content). Validate every page with the Rich Results Test before publishing; one broken schema can suppress an entire page's eligibility for rich snippets.
Google Business Profile — the single biggest lever
For a roofing company in the Lower Mainland, Google Business Profile drives more leads than the website does for the first 18 months of any SEO program. The optimisation checklist: (1) Categories — primary 'Roofing Contractor', secondary 'Roofing Supply Store' or 'Gutter Cleaning Service' only if you genuinely do those. Wrong secondaries actively suppress rankings. (2) Service area — list the cities you serve, not a radius. Radius targeting is a 2018 tactic that no longer works. (3) Photos — upload 8–15 photos per month of real jobs in real cities, geotagged where possible. Stock photos are detectable and penalised. (4) Posts — publish a Google Post weekly with a real job photo, the city, and the work performed. Engagement on posts is a ranking factor. (5) Q&A — seed the Q&A section with 8–12 real questions and answer them yourself before competitors or random users do. (6) Reviews — see the next section. The Google Business Profile is the most undervalued asset in BC roofing. Most contractors set it up once and abandon it; the few who run it as a weekly discipline dominate their local pack.
Reviews — velocity, recency, depth, photos
Google's local ranking algorithm cares about review velocity (how many you got in the last 30 days), recency (how recent the most recent one is), depth (long reviews with specific details outrank short ones), and photos (review photos are worth roughly 3x text-only reviews in ranking signal). The roofing companies dominating Lower Mainland local packs in 2026 are getting 6–12 new reviews per month with photos. The mechanics: at job close-out, the installer hands the homeowner a printed card with a QR code linking directly to the review form. The card also asks for a photo of the finished roof. Conversion on this method runs 35–50% if done at handover; it drops to 5–8% if asked by email three days later. Don't buy reviews and don't trade them. Google's pattern detection caught up with both tactics in 2024 and the penalty is now a full suppression from the local pack for 90 days minimum — recoverable but devastating to a small roofer's cash flow.
Writing for AI search — what gets cited in 2026
AI search systems (Google AI Overviews, ChatGPT, Perplexity, Claude) cite content with specific characteristics: a clear question being answered in the page title or H1, a direct answer in the first paragraph, named entities (specific cities, specific codes, specific products), real numbers (prices, dimensions, percentages), and structured FAQ sections with schema markup. Generic 'top 10 roofing tips' content gets zero citations because it answers no specific question. By contrast, a 2000-word article titled 'Cedar Shake to Asphalt Conversion Cost in West Vancouver' with a specific price range, the local recycling rule, and three real case studies will be cited every time someone asks an AI 'how much to convert cedar to asphalt in West Van'. The writing rule for 2026 is: write the article that answers one question completely, name the place and the price, and use FAQ schema for the natural questions a buyer would ask next. Skip the marketing voice — AI search systems prefer flat, factual prose to enthusiastic copywriting.
Backlinks — what still works, what doesn't
What still works for roofing SEO in 2026: local press mentions (any community paper, hyperlocal blog, or municipal news source), industry association memberships with profile links (RCABC, BBB, CHBA), real partnership pages (suppliers, complementary trades), and earned mentions from being quoted in homeowner-facing articles (HouseLogic, BuiltGreen, local lifestyle media). What doesn't work and may now harm you: directory submission services, blog comment links, guest posts on low-quality networks, link exchanges with unrelated businesses, and anything pitched as 'we can get you 100 backlinks for $300'. Google's link evaluation in 2026 is heavily focused on link velocity (sudden spikes are flagged), topical relevance (a yoga studio link does nothing for a roofer), and anchor text diversity (over-optimised anchors signal manipulation). Build slowly, build locally, build from real businesses that actually know your business. 10 strong local links beat 1000 directory submissions every single time.
Marketing tactics to skip even when the pitch sounds good
Five things any roofer in BC should refuse to spend money on in 2026: (1) 'Pay-per-lead' aggregators that resell the same homeowner enquiry to 4–6 roofers. Conversion on these is 3–8%, well below the cost of the lead. (2) Door-knocking sales teams. Sales-led contractors have the worst customer satisfaction scores in the industry and the practice is increasingly regulated by municipal bylaw. (3) Vehicle wraps as a primary marketing channel. They look professional, but the lead attribution is zero in any honest analysis. Keep the wrap for branding; don't expect leads. (4) Mass email blasts to purchased homeowner lists. Spam law in Canada is strict and the legal exposure dwarfs any conversion benefit. (5) 'SEO packages' with no specifics. If an agency can't tell you which queries they'll target, which pages they'll build, which links they'll earn, and what the 90-day milestone is, walk away. A real SEO program is a list of specific deliverables on specific dates — anything else is a recurring invoice with no accountability. Spend the same budget on a part-time in-house person who learns your business deeply and you'll outperform every agency in town within a year.
Measuring SEO honestly — the metrics that actually matter
Most SEO reporting is theatre — 40-page PDFs full of impressions, keyword positions, and bounce rates that have no relationship to whether the phone is ringing. The four metrics a roofing company should actually track monthly: (1) Qualified phone calls and form fills from organic search, attributed by source — measured in your CRM or call-tracking software, not in Google Analytics where attribution is increasingly broken. (2) Google Business Profile direction requests and calls — pulled directly from the Business Profile dashboard, segmented by city. (3) Booked jobs whose first touch was organic — this is the only number that pays the mortgage. (4) Cost per booked job from SEO, calculated as your total SEO spend (in-house time at a realistic rate plus tooling) divided by booked jobs attributed to organic. Anything below $400 per booked job is excellent; $400–$800 is healthy; above $1,000 means something in the funnel is broken. Skip these vanity metrics: total organic traffic (junk traffic inflates it), keyword positions for queries you don't actually convert on, social media followers, and domain authority scores from third-party SEO tools (Google doesn't use them and neither should you). Report monthly, change tactics quarterly, and audit the entire SEO program annually against the four metrics above. SEO is the marketing channel with the longest payback period in roofing — measuring it honestly is the only way to know you're not pouring money into a recurring invoice with no outcome.
A 90-day SEO plan for a roofing contractor starting from zero
If you're a Lower Mainland roofer with no current SEO and you want to move the needle in one quarter, run this plan. Days 1–14: Google Business Profile audit and rebuild. Verify ownership if you've lost it. Set primary category to Roofing Contractor, remove any wrong secondaries. Populate the service area with the cities you actually work in. Upload 30 photos from past jobs across at least 6 cities, geotagged where possible. Write 12 service descriptions (one per service offering). Days 15–30: Reviews and Q&A. Build a one-page printed review-request card with a QR code linking directly to your review form, hand one to every customer at job close-out, and chase the last 20 completed customers by phone for a review. Seed the Q&A section with 10 real homeowner questions and answer them yourself. Days 31–60: City pages. Pick the four cities where you do the most work and build a genuine 1,500-word page for each — local code, local recycling rule, real case study, real photo. Don't templatise; write each one from scratch. Add LocalBusiness, Service, and FAQ schema. Days 61–90: First cost-guide blog post. Pick the highest-volume buyer-intent query you can credibly answer ('cedar conversion cost in West Vancouver', 'flat roof replacement cost in Burnaby') and write a 2,000-word published-rate guide with FAQ schema. Track booked jobs attributed to organic and Google Business Profile from day 1. By day 90 you'll see Business Profile leads climbing; by day 180, the city pages will start ranking; by month 12, the cost guides will be the largest source of qualified inbound. Most roofers never run this plan because they want faster results and end up paying agencies for 12 months with worse outcomes.
Frequently asked
How long does SEO take to work for a roofing company in BC?+
First page rankings for low-competition long-tail queries (e.g. 'cedar conversion West Vancouver') typically appear in 60–120 days. Competitive head terms ('roofing Vancouver') take 9–18 months and require a much stronger link profile and content depth than long-tail.
Is Google Business Profile or website SEO more important for roofers?+
Both — but if forced to choose, Google Business Profile delivers faster ROI for local lead generation. The website becomes the proof layer that makes the Business Profile convert. Most roofers should split early effort 60/40 toward Business Profile, then rebalance as the site matures.
Should a roofer write blog posts in 2026 with AI search competing for clicks?+
Yes — but the format has changed. AI search systems (ChatGPT, Google AI Overviews, Perplexity) cite long-form articles with specific numbers, code references, and named places. Generic 'top 5 tips' content has no value in 2026; structured, location-specific content with real prices is the unit that AI search rewards.
How many city pages should a roofing site have?+
One per municipality you actually serve, with genuinely different content on each — local code references, local recycling notes, a real case study from that city. Doorway pages (templated copies with the city name swapped) get penalised in 2026 and offer no AI search benefit.
Do reviews still matter for roofing SEO?+
Yes, more than ever. Google Business Profile rankings are heavily weighted by review velocity (reviews per month), recency (last 90 days), and depth (long reviews with photos outrank short ones). Aim for 4–8 new reviews per month minimum to stay competitive in Lower Mainland metro markets.