The site a roofer needs fits on a few pages built around the quote, not a chatty showcase. The home page states your trade, your area and your specialities at the top, with a quote button and a phone number visible without scrolling. Then comes one page per real service, roof renovation, new roof installation, zinc work and gutters, moss removal and roof cleaning, roof and loft insulation, roof window fitting, each written with the questions your clients actually ask rather than trade jargon.
A roofer is judged on two points a site must make obvious, the area where they travel and the exact nature of the work they take on. Each town or zone where you work gets its own page, with your usual lead times, and your specialities are stated clearly, from a brand new roof to the renovation of an old slate or tile covering, because a client doesn't always know whether their project fits your scope. A quote form that asks for the town, the type of roof and a few photos of what's there saves you the qualifying call and spares you trips for jobs that don't suit you.
Proof does the rest, and it's what roofer sites lack most in my experience. Photos of your own jobs, a roof before and after renovation, a gutter fitted cleanly, a cleaned roof that got its slate back, beat bought stock images that a visitor spots at first glance. Your client reviews, pulled from your Google listing and shown on the site, your décennale insurance and your qualifications, and a page that explains how you work from one job to the next, turn a cautious visitor into a quote request.
Finally, the site has to open fast and well on a phone, since most of your visitors look for you on mobile, often in the rush of a leak or after seeing your van go past in the street. I code it with no theme and no page builder, which makes it fast and readable on the smallest phone, and it passes a speed and accessibility check before it goes live. A site that takes five seconds to appear loses the request to the next roofer, and no cosmetic tweak makes up for that lag.