A roofing website rebuilt around one goal: the booked estimate.
The baseline is a site we see constantly in audits: a heavy theme, a buried phone number, no service-area structure. The rebuild shows what a roofing site looks like when every decision serves the estimate request.
A rebuild study: a typical underperforming website, rebuilt to our standard under a fictional brand. The engineering is real — every number is measured on the build.
7.2s → 0.8s
Mobile load, baseline vs rebuild (lab)
Archetype
Storm-market roofing contractor on an aging template site
Disciplines shown
Build time
6-week rebuild
The starting point
The baseline models the roofing site we audit most often: a purchased theme carrying about 4MB of scripts and sliders, a 7.2-second load on mobile data, the phone number hidden in a footer, one generic "services" page for every kind of work, and no pages for the cities the company actually serves. It looks busy and performs like a brochure left in a drawer.
The rebuild
We rebuilt it as we would for a paying client. A tap-to-call header and an estimate request on the first screen. Separate pages for repair, replacement, and storm work, plus a service-area structure Google can read. Insurance and financing questions answered in plain English, and a project gallery that loads fast instead of impressing slowly.
Under the hood: hand-coded pages, structured data describing the business honestly, and a performance budget enforced in code — the mobile load dropped from 7.2 seconds to 0.8.
What it demonstrates
This is the exact playbook we apply to real roofing sites: conversion path first, local-search structure second, speed as the multiplier on both. The numbers below are measured on this build — and they're the same numbers we'd measure on yours, before and after.
Measured on the build
7.2s → 0.8s
Mobile load, baseline vs rebuild (lab)
100
Lighthouse performance, mobile
−88%
JavaScript shipped vs baseline
1 tap
From any screen to a phone call
Measured on the rebuilt concept in lab conditions: mid-range Android device, throttled 4G.
Before / after — measured on the build
[ Baseline ]
7.2s
Mobile load (lab)
- 4MB of theme scripts and sliders
- Phone number hidden in the footer
- One generic services page
- No service-area structure
[ Rebuild ]
0.8s
Mobile load (lab)
- −88% JavaScript shipped
- Tap-to-call from every screen
- Repair / replacement / storm pages
- City structure Google can read
100
Lighthouse performance, mobile (lab)
Get a straight answer about your website.
Send your URL. We'll tell you what's costing you customers — specific findings, plain English, no obligation.