A working roofing company with generations of experience, a real address, and genuine five-star reviews — ranking for almost nothing suburb-specific and ignoring the biggest purchase trigger in Brisbane's roofing market.
Roo Roofing has been running out of Coorparoo in Brisbane's southside for years. They hold a QBCC licence (Queensland Building and Construction Commission #1147373), are registered with Master Builders, use Colorbond and Stratco materials, and carry multiple trade licences. Their oldest tradesman has 55 years in the industry. That is a serious business.
Their website has dedicated service pages for roof replacements, restorations, repairs, gutter replacement, asbestos removal, insulation, fascias and soffits, and ventilation. They have a blog (hosted on a separate HubSpot subdomain), a gallery, an e-library with downloadable PDF guides, and active Facebook and YouTube accounts. On paper this looks solid.
The gap between what they have and what they rank for is the whole point of this case study.
When I audit electricians, the core local SEO problems are mostly predictable: thin service pages, no suburb targeting, weak GBP. The work is mostly urgent (power outage, switchboard fault) or compliance-driven (safety inspections, new installations). The buyer decides fast and the search happens fast.
Roofing is a different animal. And if you build the same SEO strategy for a roofer that you'd build for an electrician, you're going to miss the entire picture. Here's what makes this niche genuinely different.
Brisbane sits in South East Queensland, which runs one of the most active hailstorm and cyclone corridors in the country. Storm season runs roughly October through April. During that window, search volume for roofing terms can spike 300-400% in a matter of days after a major hail event. People aren't searching "roof repair Brisbane" the way they search for a plumber — they're searching "hail damage roof Brisbane", "storm damaged roof insurance claim", "roof inspection after storm Brisbane", and "emergency roof repair Brisbane" because an event just happened to them. This is a crisis-purchase trigger, not a browse-and-compare trigger. The roofer who has pages optimised for these terms before storm season starts captures that spike. The roofer who doesn't, watches competitors take all of it. Roo Roofing has one blog post about hail damage and zero dedicated landing pages built around storm damage or insurance claims. That is a significant revenue gap sitting unattended.
Brisbane has a substantial stock of Queenslander homes — the high-set, timber-frame, corrugated-iron-roof homes that are heritage icons of the city. These are not standard roofing jobs. Replacing or restoring a Queenslander roof involves understanding the original pitch, the iron sheets, often asbestos around eaves and ridges, and sometimes council heritage overlays. Homeowners with Queenslanders do not search "roof replacement Brisbane" — they search "Queenslander roof restoration Brisbane", "corrugated iron roof replacement Brisbane Queenslander" and similar. There is also a significant volume of decramastic tile roofs (pressed metal tiles common on 1960s-80s homes) which are a specific, high-cost problem that requires specialist handling. Roo Roofing actually offers decramastic replacement — it's in their service nav — but the page has almost no content built around the problem that homeowner is experiencing. Same with their asbestos service: the page exists but isn't written around how a homeowner discovers they have an asbestos roof and what their options actually are.
A broken power outlet needs fixing today. A damaged roof is assessed, deferred, quoted, requoted, financed, and eventually approved — sometimes over 3-6 months. That means a roofing company's SEO content needs to serve someone who is still in the "should I restore or replace?" research phase just as well as it serves someone who's had a tree fall on their roof last night. Most roofing websites, including Roo Roofing's, only really speak to the bottom of the funnel: "call us for a quote." The middle of the funnel — the homeowner comparing materials, weighing up Colorbond vs. tiles, reading about Queenslander roof costs, trying to understand the insurance claim process — is almost completely unserved. This is where roofing SEO creates its biggest opportunity gap compared to emergency trade niches.
Roo Roofing has 40+ blog posts, some well-written, covering relevant topics from asbestos insulation to Colorbond conversions. But they're hosted on blog.rooroofing.com.au — a HubSpot subdomain — not on the main site. Google treats subdomains as separate entities. All the content authority, all the topical relevance signals, all the internal links those posts could be passing to service pages — none of it is contributing to rooroofing.com.au's domain strength the way it would if the blog were at rooroofing.com.au/blog. This is a structural SEO mistake that most trade businesses make when they bolt HubSpot or another CMS onto a WordPress site. Fixing this one issue alone would be worth more than three months of link-building.
The single biggest insight: Roofing in Brisbane is an event-triggered, long-decision, high-ticket niche with specific roof types that require specific answers. The SEO strategy has to map to how people actually discover they need a roofer — not just how they search once they've already decided to call one. That's a completely different architecture from what most trade SEO playbooks use.
This audit covers technical health, on-page structure, content quality, local signals, and content gaps. Each issue is rated by its potential impact on rankings and lead flow.
| Issue | Detail | Severity |
|---|---|---|
| Blog on subdomain | blog.rooroofing.com.au is a separate HubSpot subdomain. All content authority is isolated from the main domain. 40+ posts generating zero authority pass-through. | Critical |
| Page builder (Visual Composer) | Site is built on Visual Composer, a legacy WordPress page builder. Pages tend to generate bloated HTML, unnecessary div nesting, and poor Core Web Vitals scores on mobile. | Medium |
| meta-keywords tag still in use | Multiple pages carry meta-keywords tags (e.g. "roof repairs" on the repairs page). Google has ignored this tag since 2009. Indicates the site may not have had a technical SEO review in years. | Low |
| OG image quality | Home page OG image is a small icon file (icon-roof.png). When shared on social, this produces a poor visual. The Twitter card image points to a watch icon rather than a real roofing photo. | Medium |
| Internal links from blog to main domain | Blog posts link to the main site, but since the blog is a subdomain, these are effectively external links — low-trust by nature. This is backwards from what they need. | Critical |
| Footer copyright date | Blog footer shows "Copyright 2016" and "Copyright 2020" in different sections — signals an unmaintained site to crawlers and users alike. | Low |
| Broken image references in blog header | Several menu background images in the blog header reference an IP address (103.4.234.43) directly rather than a domain — likely a staging server from the old setup. These images fail to load. | Medium |
| Issue | Detail | Severity |
|---|---|---|
| Service page OG titles mismatch | The Roof Repairs page has an OG title of "Roof Restoration Brisbane" — completely the wrong service. If this page gets shared or scraped, Google sees inconsistency between OG and page title. | High |
| Thin suburb location pages | Pages like roof-restoration-coorparoo and roof-restoration-browns-plains contain 40-50% generic suburb trivia (median house price, local schools) and 50-60% templated service copy. They read like the same page swapped for a new suburb name. Google is increasingly good at recognising and devaluing this pattern. | Critical |
| No service × suburb matrix pages | They have suburb pages for restoration. But nothing for "roof repairs [suburb]", "roof replacement [suburb]", or "gutter replacement [suburb]". The matrix is almost empty. | High |
| Repair page targeting "Roof Restoration" | The URL is /roof-repairs-brisbane/ but the H1 says "Roof Repairs Brisbane" while the meta description says "specialise in all types of roof repairs" — these are consistent. But the internal link structure from the blog occasionally uses the wrong anchor text, pointing to repairs when linking to the restoration page. | Medium |
| No schema markup | No LocalBusiness schema, no Service schema, no FAQPage schema on the FAQ sections, and no Review schema for the testimonials. These are all low-hanging rich-result opportunities. | High |
| No pricing signals | "Costs can range from a few thousand to several thousand dollars" is the most specific pricing information on the entire site. People searching "roof replacement cost Brisbane" want ballpark figures. The blog has a cost post but it lives on the subdomain. | High |
| Gallery not optimised | The gallery is a grid of roofing photos with no alt text referencing specific jobs, suburbs, roof types, or materials. This is wasted opportunity — gallery images can rank for image searches and alt text strengthens topical relevance. | Medium |
| Issue | Detail | Severity |
|---|---|---|
| Zero storm/insurance content on main site | No landing page for "storm damage roof Brisbane", "roof insurance claim Brisbane", or "hail damage roof inspection Brisbane." Competitors are actively targeting these. In storm season, this is a direct revenue miss. | Critical |
| Queenslander roof content is nearly absent | A Queenslander-specific roofing page does not exist. Given Brisbane's housing stock, this is a primary opportunity for intent-matching content that competitors largely ignore on a dedicated-page level. | High |
| No "near me" intent optimisation | "Roofer near me" and "roof repairs near me" are among the highest volume mobile searches in this niche. The site has no content structured around proximity intent — no suburb-level service pages with specific NAP mentions, no GBP integration on service pages. | High |
| GBP not prominently linked from site | There is no Google Business Profile link or Maps embed visible anywhere on the site. This breaks the on-site/GBP authority feedback loop. | Medium |
| Reviews are website testimonials only | The nine testimonials on the homepage are good but they are plaintext blocks with no names linked to verified profiles, no Google Review widget, no structured data. Google wants to see review authority, not just website copy-paste. | Medium |
| Decramastic and asbestos pages are thin | Both pages handle specific, high-anxiety search queries (homeowners who have just discovered they have asbestos or decramastic tiles and are worried). The pages exist but are short, generic, and don't answer the real questions behind those searches. | High |
Summary: Roo Roofing has a technically functional website with real content and real business signals. The problems are not catastrophic — this is not a broken site. But the combination of a subdomain blog, thin suburb pages, zero storm/insurance content, and missing schema creates a ceiling that prevents the domain from ranking competitively for anything beyond basic brand searches and a handful of generic service terms.
Roofing keyword research in Brisbane has to account for three layers that most niche research misses: the storm trigger layer, the roof-type layer, and the suburb layer. Standard "roof repairs Brisbane" targeting alone leaves 60-70% of the realistic search opportunity untouched.
| Keyword | Est. Volume | Intent | Current Status |
|---|---|---|---|
| roof replacement Brisbane | 400-600/mo | Transactional | Partial — page exists, weak |
| roof repairs Brisbane | 300-500/mo | Transactional | Partial — page exists |
| roof restoration Brisbane | 300-400/mo | Transactional | Partial — page exists |
| roofer near me Brisbane | 200-350/mo | Local | Not targeted |
| gutter replacement Brisbane | 150-250/mo | Transactional | Partial |
| asbestos roof removal Brisbane | 100-200/mo | Transactional | Page exists, thin |
| roof insulation Brisbane | 100-180/mo | Transactional | Page exists |
| Keyword | Est. Volume | Intent | Current Status |
|---|---|---|---|
| storm damage roof Brisbane | 150-300/mo | Transactional | Not targeted |
| hail damage roof Brisbane | 100-250/mo | Transactional | Not targeted |
| roof insurance claim Brisbane | 80-150/mo | Informational | Not targeted |
| emergency roof repair Brisbane | 100-200/mo | Transactional | Not targeted |
| roof inspection after storm Brisbane | 50-100/mo | Local | Not targeted |
| Keyword | Est. Volume | Intent | Current Status |
|---|---|---|---|
| Queenslander roof restoration Brisbane | 50-100/mo | Transactional | Not targeted |
| Queenslander roof replacement Brisbane | 40-80/mo | Transactional | Not targeted |
| decramastic roof replacement Brisbane | 30-70/mo | Transactional | Page exists, thin |
| Colorbond roof Brisbane | 100-200/mo | Informational | Mentioned on pages, not targeted |
| tile to Colorbond conversion Brisbane | 40-80/mo | Transactional | Blog post only (subdomain) |
| corrugated iron roof Brisbane | 40-70/mo | Informational | Not targeted |
The suburb matrix for a Brisbane roofer needs to cover at minimum 20-30 key suburbs across the southside, northside, and inner-west. Below are the priority suburb-service combinations Roo Roofing should own given their Coorparoo base.
The strategy has four phases: fixing what's broken, building the storm/insurance asset, expanding the suburb matrix properly, and converting the blog's content value back to the main domain. Each phase is sequenced for realistic business impact.
This phase builds the single most important content gap in the site: storm and insurance-related roofing content. This is where the roofing niche differs most from every other trade — and where a well-structured set of pages can deliver the highest ROI searches, particularly during storm season (October-April).
The suburb pages that exist are thin. The solution is not to delete them and start over — it's to expand them significantly with content that is genuinely specific to that suburb, while also building new service × suburb pages that don't exist yet.
The blog cannot stay on the HubSpot subdomain if the goal is to build domain authority. The migration needs to be handled carefully to preserve the organic traffic the blog already gets (which is separate from the main site's traffic).
Quick wins that improve click-through and local signals. Low effort, measurable impact within 4-6 weeks.
The single highest-value content gap. Needs to be live before October for full storm-season benefit.
Underserved searches with strong buyer intent. Builds topical authority the site currently lacks.
Rewrite thin suburb pages, add real job references, and expand into the service × suburb matrix properly.
The highest structural fix. Complex but the long-term authority gain is significant. Do this properly with a developer, not a DIY redirect plugin.
Alt text, file names, suburb and roof-type tagging on all gallery images. Low priority but accumulates value over time.
Link building for a local service business is not about acquiring generic directory listings. It's about building the kind of citation and content footprint that tells Google this is a real, active, trusted business in this specific local market. Roofing has some specific authority opportunities that most other trades don't.
The authority-building principle for roofing: In this niche, real credentials (QBCC licence, Master Builders membership, manufacturer partnerships) carry more weight than link-building tactics because they're verifiable trust signals. Start by making sure every verifiable credential is published on the site and linked from its issuing organisation's directory. That alone is a 3-4 month lead on most competitors who never bother to claim those listings properly.
Roo Roofing is a good business. The customer reviews are real, the credentials are legitimate, the experience is genuine. Nothing in this audit changes that. What the audit shows is that a solid business can still have a significant digital visibility gap — not because the website is broken, but because the SEO architecture doesn't match how people in Brisbane actually search for a roofer.
The roofing niche forces a different kind of thinking. Most local SEO playbooks are built around emergency search intent — someone needs something now and types a quick query. Roofing has that (emergency roof repair after a storm) but it also has a long research phase, a roof-type specificity layer, a seasonal demand spike, and an insurance complexity that almost no other trade niche has. Building an SEO strategy around those specific patterns — rather than running a generic "service page + suburb page" playbook — is what creates a competitive advantage that's genuinely hard for a competitor to replicate quickly.
That's the value of niche-specific strategy over template strategy. And it's the reason I focus on trades businesses where the local context actually changes the way the work needs to be done.
I work with trade businesses in Australia to fix the visibility gaps their standard web agency missed. Free initial audit, no commitment required.
Get a Free SEO Audit More Case Studies