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.