Trades / Rebuild + Local SEO
Moritz Electrical
A full WordPress-to-static rebuild for a Brisbane electrician with solid bones but a leaking SEO layer — lifting the audit score from 52 to 81, cutting load times in half, and rebuilding the suburb pages Google's helpful-content classifier was penalising.
The Brief
Moritz Electrical is a family-run, QLD-licensed electrical contractor servicing Brisbane's south-east — Camp Hill, Carindale, Coorparoo, Carina and out toward Logan (Licence 89128). Real reviews, a genuine workmanship story, and a service mix spanning residential, commercial, switchboard upgrades, smoke alarms, EV chargers and air conditioning.
The existing site wasn't broken on the surface. It ran on WordPress with Elementor on LiteSpeed hosting — modern PHP, HTTP/3, WebP imagery already in place. The bones were genuinely solid. The problem was the SEO layer sitting on top of it was half-built, and it was quietly leaking value Google couldn't see.
The brief was a one-off overhaul — no retainer lock-in — to fix every Critical and High-priority finding from our May 2026 audit, then optionally widen the suburb catchment. What it became was a clean rebuild onto a fast static stack that Moritz controls, with a proper local-SEO foundation underneath it.
The Challenge
The audit scored the original site 52/100 — Needs Work. The interesting part was why:
- Every primary page was missing its meta description. Google was auto-generating snippets from messy page text instead of intentional copy.
- All four location pages shared one identical, incorrect meta description that only referenced "Carina" — a copy-paste bug Google reads as a duplicate-content signal across the exact pages that should win local searches.
- Almost no structured data. The only schema present was an FAQ block — with a typo ("Moriz" instead of "Moritz") that Google had already indexed. The single most important schema for a local trade business,
ElectricalContractor/LocalBusiness, was missing entirely. - The suburb pages read like the same template with the name swapped. No postcodes, no landmarks, no neighbouring suburbs — exactly the pattern Google's Helpful Content classifier penalises.
Before vs After — Audit Re-Score
We captured the WordPress site state pre-rebuild and re-ran the full 11-category audit immediately post-launch. The technical and on-page categories moved from weak to excellent.
- Meta descriptions missing site-wide
- Identical "Carina" meta on every location page
- FAQ schema only — with an indexed "Moriz" typo
- No ElectricalContractor / LocalBusiness schema
- Suburb pages templated — no postcodes or local detail
- About page had four H1s
- Locale set to en_US for an Australian business
- Elementor + Tailwind CDN render-blocking the page
- Schema fabricated a 5.0 / 100-review rating
- Unique 150–160 char meta on all 20 pages
- Every suburb gets its own copy & intent
- "Moriz" typo fixed in re-authored FAQ schema
- ElectricalContractor + LocalBusiness + Service + Breadcrumb JSON-LD
- 6 location pages rewritten with postcodes, neighbours & landmarks
- Single H1 per page, clean heading hierarchy
- en-AU locale + canonical on every page
- Precompiled 24 KB stylesheet — no render-blocking JS
- Honest 4.6★ / 27 reviews shown site-wide
What Was Delivered
The engagement covered the full overhaul — audit, rebuild, schema, suburb-page rewrites, deployment and DNS cutover without breaking email. Concrete deliverables:
On-page SEO
- Unique, intent-matched title + meta description on all 20 indexed pages (was missing site-wide)
- Fixed the duplicate "Carina" meta across Coorparoo, Carindale and Camp Hill — each suburb now has its own copy
- Corrected the indexed "Moriz" typo in the FAQ schema
- One H1 per page and a clean heading hierarchy (the About page had four)
- Open Graph + Twitter cards with imagery, canonical tags, and en-AU locale site-wide
Structured data
- Sitewide
ElectricalContractor/LocalBusinessJSON-LD — name, address, phone, hours, Licence 89128, founder, service catalogue, geo coordinates andareaServed Serviceschema on each service page (residential, commercial, EV charger, smoke alarms, air conditioning)BreadcrumbListschema on inner pages- Re-authored
FAQPageschema with the typo removed and an honestAggregateRating(4.6★ / 27) replacing the old fabricated 5.0 / 100
Content & suburb pages
- Rewrote all 6 location pages with suburb-specific detail — postcodes, neighbouring suburbs and local context — to clear the Helpful Content pattern penalty
- Added two new suburbs to widen the catchment (Bulimba, Morningside)
- Restored full service-page depth (commercial capability grid, specialist sections, FAQs) lost in the templated original
- Internal linking rebuilt via shared nav and footer so suburb pages are no longer orphaned
Performance & hosting
- Replaced the WordPress/Elementor stack and dev Tailwind CDN with a precompiled 24 KB stylesheet — no render-blocking JS, no flash of unstyled content
- LCP 1.95s, CLS 0.001, TTFB 11ms; Lighthouse Best Practices 100, SEO 100, Performance 84
- Hosted on Vercel edge with auto-renewing SSL and a full security-header set (HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy)
- 301/308 redirects for every legacy WordPress path (old sitemaps, feeds, wp-admin) and www → non-www
- DNS cutover executed without touching MX/SPF — Google Workspace email preserved through the migration
AI search readiness
robots.txtwith valid sitemap reference, served on the Vercel edge- AI crawlers welcomed so the business is eligible for citation by ChatGPT, Perplexity, Claude and Google AI Overviews
- Clean folder URLs and a single canonical sitemap (legacy WP sitemaps 301'd into it)
Key Numbers
- +29 points audit lift (52 → 81)
- 20 pages given unique titles + meta descriptions
- 6 suburb pages rewritten + 2 new suburbs added
- LCP 1.95s, CLS 0.001, TTFB 11ms
- 24 KB precompiled CSS replacing the Elementor + CDN stack
- Full schema package: ElectricalContractor + LocalBusiness + Service + Breadcrumb + FAQPage
- QLD Licence 89128 surfaced consistently as a trust signal
- Zero email downtime — apex A record changed, MX/SPF untouched
When a "broken" site isn't broken: Moritz's hosting and platform were fine — the value was leaking through the SEO layer. Missing meta, duplicated location-page copy, a typo'd schema block and templated suburb pages were doing more damage than any speed issue. The fix wasn't a flashier design; it was unique metadata, real structured data, and suburb pages written for actual suburbs. That's the cheapest 29 audit points most trade sites are leaving on the table.
The Result
Moritz Electrical now runs on a fast static site hosted on Vercel's edge, fully structured for search and built on hosting the business controls. The on-page, technical, schema and performance categories all moved from weak to excellent in a single sprint, and the suburb pages are finally written the way Google's local algorithms want to read them.
The remaining gains — Google Business Profile, backlinks and keyword rankings — are exactly the levers an ongoing local SEO program moves, and rankings naturally lag a launch by 30–90 days. The foundation is now in place for that lift to compound.
Related reading
A tradie whose site is leaking SEO value?
We build and fix websites for Brisbane tradies that actually rank, convert, and earn the trust your service deserves. Free audit + free consultation.
Get a Free Audit