Fifty-five pages along the Sussex coast, then an audit to prove they work
Sussex builder with seventeen town pages, thirty service pages and a commercial track for block managers, measured before and after an SEO audit.
- Client
- HP Building Services Sussex
- Trade
- Building and property maintenance
- Based
- Lancing, West Sussex
What the business needed
Harry runs a multi-trade building and property maintenance business from Lancing, and the site already ranked on page one for 'building services sussex'. The brief was to extend that along the coast, from Littlehampton to Brighton, and to build dedicated pages for roofing and renovations. A second audience, managing agents and landlords who need planned maintenance and void turnarounds, needed its own track without a second site.
In August 2026 the live site was audited properly. It scored 54 out of 100. The fixes were prioritised, shipped and then checked against the built output rather than assumed to work.
What was built
Two template components generate almost the whole site: one for service pages and one for location pages, each fed by typed content. The build produces 55 routes, 50 of them indexable: 17 town pages, around 30 domestic service pages, 11 commercial and block-management pages, plus about, gallery and the legal pages. The contact form, the closing band and the service template all take a domestic or commercial variant so one component tree serves both audiences.
The before and after gallery is a dependency-free slider driven by a CSS variable and a clip path, operable by keyboard. A fixed 'Call now' pill sits at the bottom of every mobile screen. The mega-menu header does the accessibility work most trade sites skip: proper disclosure attributes on every dropdown, click-outside and Escape to close, and the collapsed mobile panel marked inert so it leaves the tab order.
The audit's biggest single change was images. Recompression took the site's image library from 86.5MB to 7.7MB, a 91% reduction, and the homepage's above-the-fold weight from 4.4MB to 377KB. Fourteen of the seventeen town pages had failed a uniqueness check against each other; every one was rewritten with the housing stock, weather exposure and building problems specific to that town, and the worst pair went from 73.6% duplicate to 20.3%.
Two templates, fifty pages
Service and location pages are generated from typed content through one shared layout each. A fix to the template fixes every page.
Rating markup removed on purpose
The site had asserted a 5-star, 151-review aggregate rating in structured data on all 50 pages while showing three review excerpts. That was removed as a policy risk. The visible '150+ reviews on Google' badge stayed, because it is true.
Every internal link checked
The post-audit pass crawled 7,086 internal links and found none broken. A social share image is generated for every page at build time rather than designed by hand.
Domestic and commercial from one tree
A variant prop swaps copy, fields and calls to action, so a managing agent and a homeowner get different pages without the code forking.
Getting it found
Every page carries breadcrumb, Service and FAQ structured data, with the location pages' Service nodes pointing at the one LocalBusiness entity rather than declaring fifty businesses. After the audit the counts were 50 LocalBusiness, 49 BreadcrumbList, 47 Service and 38 FAQPage nodes, plus a Person node for Harry. The sitemap went from one hardcoded date to 37 distinct last-modified dates.
The homepage title was changed from 'A One-Stop Shop For Home Repairs', which named neither a service nor a place, to 'Builders & Handyman in Lancing', because that page carries 46% of the site's impressions and needed to say what it was for.
Since launch
The client's Search Console export for April to August 2026 shows the homepage earning 115 clicks from 11,748 impressions at an average position of 12.2. The brand query sits at position 1.7 with a 21% click-through rate, 'handyman lancing' at 6.2, and 'property maintenance near me' at 6.8. The renovations page had 1,541 impressions at position 47, which is why it was one of the pages rewritten.
The audit's health score moved from 54 to a projected 78 to 82 once the fixes shipped. The Google Business Profile was outside the scope of that pass and is the next lever.
Under the hood
What the site runs on. The same approach is described on the service pages it came from.
- Next.js, static export
- React 19 and TypeScript
- Tailwind CSS v4
- Typed content, two page templates
- Formspark forms, domestic and commercial
- Build-time image manifest and OG cards
- LocalBusiness, Service, FAQ and Person schema
- Consent-gated analytics