Rapid Dry Houston — A WordPress Site That Scores 100/100 Like a Static Build

Turned a static concept into a blazing-fast, self-manageable WordPress site for a 24/7 water-damage emergency business — a hand-coded front end wrapped in a custom classic theme. Perfect 100s across Performance, Accessibility, Best Practices and SEO, with LCP 0.9s and 0 layout shift.

TYPE · WEBYEAR · 2026View project website
rapiddryhouston.com
Rapid Dry Houston — A WordPress Site That Scores 100/100 Like a Static Build — screen 1
STACKHand-coded HTML5CSS3 (custom propertiesgrid/flexfluid clamp() type)vanilla JSWordPress classic theme (PHP 8.1)Inter + Inter TightRank Math + native JSON-LD schemaLiteSpeed CacheBrotliOPcacheWPFormsGoogle Site Kit

Project overview

Rapid Dry Houston is a 24/7 water-damage restoration business, and for an emergency service, page speed IS the conversion strategy — the customer is standing in two inches of water at 2am and taps the first result that loads. Most restoration/HVAC/plumbing sites in this niche sit at 30–50 on mobile because they're buried under a page builder, six overlapping plugins, and unoptimised images. I wanted to prove the opposite: WordPress that scores like a static site while still letting the client edit their own content. So instead of a theme + Elementor, I hand-coded the front end (semantic HTML5, modern CSS, a few lines of vanilla JS) and wrapped WordPress around it as a proper custom classic theme — no page builder anywhere in the stack. The result is a perfect 100/100/100/100 on PageSpeed, LCP 0.9s, 0ms Total Blocking Time, and 0 layout shift, on just 4 active plugins.

CLIENT
Rapid Dry Houston — 24/7 water damage restoration, Houston TX
INDUSTRY
Local Service / Lead Generation (Emergency Water Damage Restoration)

Results

100 / 100 / 100 / 100
PageSpeed — Performance / Accessibility / Best Practices / SEO
0.9s
Largest Contentful Paint (LCP)
0ms / 0
Total Blocking Time / Cumulative Layout Shift
4
Active plugins (vs 15–20 typical)

The challenge

Water damage isn't a considered purchase. The customer is standing in two inches of water at 2am, phone in hand, panicking — they tap the first result that loads, and if your page takes four seconds they've already called the next company. For a business paying for Google Ads, that's not a bounce, it's a paid click lost: you can spend $3,000/month driving traffic and still leak a third of it to a slow page. Speed here isn't a nice-to-have, it's the conversion strategy. Most restoration/HVAC/plumbing sites in this niche score 30–50 on mobile — not because WordPress is slow, but because it's buried under a page builder, six overlapping plugins, and unoptimised images. The brief: prove WordPress can score like a static site while still letting the client edit their own content. If your site is slow and you're paying for traffic, that's a fixable leak — book a free call.

What I built

Hand-coded the entire front end from scratch — clean semantic HTML5, modern CSS (custom properties, flexbox/grid, clamp() fluid typography), and a few lines of vanilla JS for the mobile nav. No framework, no bloat, no unused CSS
Converted it into a proper custom WordPress classic theme (header.php, footer.php, front-page.php, single.php, page.php, archive.php) so the team can publish posts and edit service pages from the dashboard — without a page builder anywhere in the stack
Built SEO and schema into the theme itself: meta descriptions, Open Graph, Twitter cards, canonical tags, and JSON-LD (LocalBusiness + per-page Service + auto-generated FAQPage), with a guard so Rank Math can cleanly take over when needed
Removed render-blocking bloat — dequeued the block-editor CSS, global styles, and emoji scripts a classic theme never uses (3 render-blocking stylesheets down to 1)
Preconnected fonts (Inter + Inter Tight, font-display: swap) and eliminated third-party asset domains
Killed layout shift with reserved space and min-heights — CLS 0.132 → 0.003 → effectively 0
Kept JavaScript near-zero for a Total Blocking Time of 0ms
Tuned the server: minimal plugins, full-page LiteSpeed caching, Brotli compression, OPcache, optimised fonts — every cacheable request is cached
Rebuilt the colour system to pass WCAG AA contrast on every element (including small labels on dark sections), fixed heading order, and added a proper <main> landmark — Accessibility 80 → 100

Key features

PERFECT 100 PAGESPEED (ALL 4 CATEGORIES)HAND-CODED, NO PAGE BUILDERCLIENT-EDITABLE CLASSIC WORDPRESS THEMENATIVE JSON-LD SCHEMA (LOCALBUSINESS + SERVICE + FAQPAGE)LITESPEED FULL-PAGE CACHE + BROTLIWCAG AA ACCESSIBLE (100)ONLY 4 ACTIVE PLUGINS24/7 EMERGENCY LEAD-GEN LAYOUT

“Speed is the cheapest conversion optimisation there is. You can't out-spend a slow page — every second of load time on an emergency service site is money walking out the door before the visitor ever sees your phone number. Fixing the page is a one-time cost; the leak it stops compounds every month you run ads.”

— Waqas Ahmed Waseer, builder of Rapid Dry Houston

Discuss this project

Want the same stack on your site? Fill this out to get started.

The same stack is what I install for clients — live on your site in 14 days.