Scroll down
Discuss your project with me
Back to cases

Rabbit Remodeling LLC

Rabbit Remodeling — redesign and custom WordPress build, Charlotte NC

A deck-and-fence contractor moved off a 5-page Zyro builder onto a custom WordPress + ACF site: 17 pages, 11 service pages, UTM lead tracking in the admin, Lighthouse 100 desktop / 96 mobile.

5 → 17 pages · Lighthouse 100 / 96
Year
2026
Duration
September 2026 · pre-launch
Industry
Home services — deck & fence contractor
Country
United States (Charlotte, NC)
Services
Web Design, Web Development, SEO
Rabbit Remodeling LLC — desktop homepage
Desktop · 1440 px
Rabbit Remodeling LLC — mobile homepage
Mobile · iPhone

Before and after

Homepage hero

Rabbit Remodeling LLC — Homepage hero, previous website
Before
Rabbit Remodeling LLC — Homepage hero, redesigned website
After

Services

Rabbit Remodeling LLC — Services, previous website
Before
Rabbit Remodeling LLC — Services, redesigned website
After

Service area

Rabbit Remodeling LLC — Service area, previous website
Before
Rabbit Remodeling LLC — Service area, redesigned website
After

Estimate request

Rabbit Remodeling LLC — Estimate request, previous website
Before
Rabbit Remodeling LLC — Estimate request, redesigned website
After

The results

  • 100 / 96

    Lighthouse performance — desktop / mobile

  • 17

    Pages, up from 5 on the old builder

  • 11

    Service pages with their own content, up from none

  • 0

    Layout shift (CLS) on both desktop and mobile

Project overview

Rabbit Remodeling LLC builds and repairs decks, fences, railings and stairs for homeowners in Charlotte, North Carolina. The company is insured, gives free on-site estimates and backs new decks and fences with a two-year warranty — and none of that was reaching anyone through search.

The old site sat on the Zyro website builder: five pages in total, a homepage whose <title> was literally “Home”, no meta description, no structured data beyond a bare WebSite node, and photos served as full-weight JPEGs. Eleven distinct services — deck building, composite decking, stairs and railings, fence installation, gates, staining, restoration — all lived as short blurbs on a single page. A homeowner searching “deck builder Charlotte NC” had nothing to land on, and the owner had no way of knowing which ad or channel produced a phone call.

The brief was to keep the brand people already recognise — the dark, high-contrast look with the signal-green accent — and rebuild everything underneath it: a real content architecture, a site the owner can edit himself, lead tracking that survives the trip from ad click to inbox, and speed that holds up on a phone in a truck.

My role in the project

I personally worked on this project from the audit of the old builder site through to the pre-launch build. The areas I owned and delivered directly:

  • Audit of the Zyro site and the information architecture that replaced it: 17 pages instead of 5, with a services hub and eleven standalone service pages
  • Redesign of the brand’s existing dark/green direction into a full design system — split hero with a trust-badge row, two-CTA pattern, sticky call bar on phones, consistent section rhythm across every template
  • A custom WordPress theme written from scratch — no page builder, no jQuery, one 48 KB stylesheet and one 17 KB script for the whole site
  • ACF Pro field groups behind every block, so the owner edits headings, copy, photos, galleries, services, FAQ answers and contact details without touching code
  • The full SEO layer: per-page titles and descriptions, one H1 per page, a Schema.org graph (HomeAndConstructionBusiness, Service, BreadcrumbList, WebSite, WebPage) with 12 served cities and 9 counties declared as areaServed, sitemap, robots, Open Graph
  • Copywriting for all eleven service pages, the FAQ sets and the service-area content
  • The lead pipeline: a REST endpoint with full campaign attribution, anti-spam, an admin inbox for submissions, and a GTM/GA4 event layer
  • Performance work: WebP throughout, explicit image dimensions, lazy loading below the fold with fetchpriority on the hero, self-hosted preloaded fonts

What I built

Eleven service pages that can actually rank. Each one is a real page, not a template with the name swapped: what’s included, materials and options, recent projects from that category, a four-step process, a plain-language section on what drives the cost, care instructions, eight FAQ answers, and cross-links to related services. The deck-building page alone runs fifteen sections. Every page carries Service schema and its own breadcrumb trail.

Lead tracking that answers “where did this come from?”. The estimate form posts to a custom REST route (/wp-json/rabbit/v1/lead) with a plain admin-post.php fallback, so it still works if JavaScript fails. Every submission carries utm_source, utm_medium, utm_campaign, utm_term, utm_content, plus gclid, gbraid, wbraid and fbclid for Google and Meta ads, the landing page, the referrer and which form on which page was used. Attribution is stored client-side on first contact and kept for 90 days, so a visitor who arrives from an ad, leaves, and comes back a month later still brings the campaign with them. The owner sees all of it next to each lead in the WordPress admin instead of guessing from an email.

An analytics layer wired for GTM. form_start, generate_lead (with the chosen service and the form’s location on the page), phone_click, email_click and social clicks are pushed to the dataLayer. The redirect to the thank-you page waits for GTM’s eventCallback, with a one-second fallback — so the conversion is recorded before the browser navigates away, which is exactly where most WordPress sites silently lose their Google Ads conversions.

Spam handling that doesn’t punish real customers. Cloudflare Turnstile, a hidden time trap for bots that submit instantly, and per-connection rate limiting — with error messages written in plain English rather than validation jargon.

Measured performance. On Lighthouse the pre-launch build scores 100 on desktop and 96 on mobile for performance, with 100 for accessibility and 100 for best practices on both. Largest Contentful Paint is 0.5 s on desktop and 2.0 s on mobile; Cumulative Layout Shift is 0 — nothing moves under the reader’s thumb. Every image is WebP, the hero is preloaded, fonts are self-hosted with two preloaded files, and the site ships exactly one CSS and one JS request.

The site is finished and running on a staging domain for the owner’s review; it moves onto rabbitremodelingco.com at launch, which is also when the SEO score rises from 66 to 100 — the only failing check on staging is the deliberate noindex that keeps the preview out of Google.

Full homepage, desktop

Rabbit Remodeling LLC — full-page website screenshot

Tech stack

  • WordPress
  • Custom theme (no page builder)
  • ACF Pro
  • REST API lead endpoint
  • Cloudflare Turnstile
  • Schema.org graph
  • GA4 / GTM dataLayer

Want a similar project done?

Tell me about the task. I will personally look at your project and suggest the right way to deliver it.

Discuss your project with me