← Back to portfolio All case studies
Trades & construction · Plumbing & heating · Case study
Local-SEO + emergency callout + WhatsApp ordering for a Bradford trade
Bradford-based plumbing & heating trade — local-SEO rebuild around six service postcodes, click-to-call emergency flow that follows the user down the page, and a WhatsApp-first ordering pattern for parts and quotes that beats a contact form on a phone in a kitchen with the tap leaking. Lite tier.
- Astro 6
- Vercel London (lhr1)
- Cloudflare DNS
- WhatsApp Business deep-links
- JSON-LD LocalBusiness × 6 postcodes
- Google Business Profile sync
A two-van Gas Safe-registered plumbing and heating trade in Bradford came to UK Web Marketing with a five-year-old WordPress site that had stopped ranking. The brief was characteristic of the vertical: “the phone’s quiet on Mondays and it shouldn’t be — what’s wrong with the website?” Anonymised at the operator’s request because trades in this part of West Yorkshire compete on Google for the same handful of keywords and there’s no commercial upside to flagging the work.
The brief, in one paragraph
The existing site was a generic three-page WordPress build with a stock-photo hero, a list of services, and a contact form that almost nobody used because — as the operator pointed out — “if my boiler’s leaking I’m phoning, not typing.” The site had no postcode-specific pages, no Gas Safe registration number visible, no opening hours, no emergency CTA, and no Google Business Profile claim. Local search was sending the work to two competitors with newer sites.
What we did, in three steps
- Six postcode landing pages, hand-written.
/plumbing-bd1,/plumbing-bd5,/plumbing-bd7,/plumbing-bd9,/plumbing-bd13,/plumbing-bd18— the six BD postcodes the operator actually covers, each with its own copy referencing the neighbourhoods, the council, the typical housing stock (Victorian terrace vs. interwar semi vs. 1960s estate), and the typical jobs (combi swaps, leak detection, immersion replacements, frozen condensate pipes in January). JSON-LDLocalBusinessschema on each, withareaServedset correctly. The Astro static build serves all six in one ~120KB bundle. - Emergency-callout flow that follows the user. A sticky bottom-of-screen bar on mobile, always visible, with two buttons: “Call now: 01274 …” and “WhatsApp: 07…”. On desktop the same CTA is in the header. The bar is dismissable but reappears on the next visit. Click-to-call is a
tel:link with a tracking parameter so the operator can tell which postcode page the call came from. The phone number is the operator’s, not a tracking number — trades hate tracking numbers because they look like sales-floor cold-callers to the customer. - WhatsApp-first quote and parts flow. A homeowner mid-leak isn’t going to type into a contact form on a phone in a kitchen with water under the sink. The site’s parts/quote pages link to a pre-filled WhatsApp deep-link: “Hi — I need a quote for [service] at [postcode]. Can someone come round today?” The operator opens WhatsApp Business, sees the postcode + service + a phone number to call back, and triages in 10 seconds. The Capsule-free Lite tier doesn’t include CRM — but WhatsApp Business is the CRM for this trade, and we built around that reality instead of fighting it.
The outcome, in numbers
- 0.3s LCP on mobile. Hand-coded Astro, no WordPress, no plugins, no font swap, no CLS. The site loads before the homeowner gets the lid off the under-sink cupboard.
- 6 postcode landing pages indexed within two weeks. All six showing up for “emergency plumber [postcode]” queries within the first month — not always #1, but on the first page, which is where the work happens.
- Click-to-call sticky bar. The operator reports the proportion of calls vs. WhatsApps splits roughly 60/40 — calls when it’s actively leaking, WhatsApps when it’s “next week, can someone quote.” Both convert.
- Google Business Profile claimed and synced. Opening hours, service area, Gas Safe registration number, photos of the actual vans. The GBP listing is now showing in the local map pack for the operator’s postcode.
Why us
A web agency whose /trades page actually talks about emergency-callout flow, area-coverage postcodes and Gas Safe / NICEIC / CHAS accreditations isn’t guessing how a trade website works. We’ve built around 30 trade sites across building, electrical, heating, roofing and removals — the patterns repeat, and the operator on this build was able to read our /trades page on a Sunday evening and brief us on the Monday.
The trade is on the Lite tier (£295/mo). Custodianship, monthly patching, the sticky CTA stays sticky, and if the emergency form ever stops delivering to the operator’s WhatsApp the form-delivery integrity check picks it up before the next leak. WhatsApp me if your trade is in a similar position — older WordPress site, no postcode pages, customer-on-a-phone-in-a-flood UX. We’ll talk before we quote.