Renue Hawaii case study hero. Mobile speed went from 39 to 96 in three weeks.

Renue Hawaii: Mobile Speed Went From 39 to the Mid 90s Across Every Primary Page. Three Weeks. No Rebuild.

A Honolulu commercial cleaning business with a working WordPress site. The booking engine was a real revenue surface. At the pre-engagement audit, mobile PageSpeed measured 39 / 100. That’s inside Google’s red “Poor” band. The contact page took 11.55 seconds to paint its hero on a mid-range Android phone simulation. PeakSpire ran a Speed Sprint. Three weeks later, every primary page cleared 90 mobile and the design did not change by a single pixel.

Want to know where your own site stands? Run a free 15-minute website audit. One report, plain English, no sales call required.
Before
39
Mobile PSI at audit (2026-05-15)

After
96
Mobile PSI median across primary pages

Largest single-page jump: +30 points (About: 68 to 98). Worst-page LCP: 11.55s to 2.79s.

The 60-second summary

  Before After (2026-06-15)
Mobile PSI at pre-engagement audit (2026-05-15, single run, homepage) 39 96+
Mobile PSI, median across all 16 Day-0 baseline runs (4 pages x 4 runs, 2026-05-27) 70 n/a
Mobile PSI, median across the 4 baselined pages’ per-page medians 71.5 97
Mobile PSI, mean across the same 4 baselined pages 72.25 96.5
Worst individual run (across the 4 baselined pages) 63 (Contact) 80 (Home)
Best individual run (across the 4 baselined pages) 84 (Home) 100 (Drapes, in the 8-page service set)
Pages cleared 90 mobile 0 of 4 baselined 28 of 33 sitemap URLs, including all 4 baselined pages and every primary service hub
Mobile LCP on the worst page (Contact) 11.55s 2.79s
Largest per-page jump (About) 68 98
Theme rebuild none none
Platform change none none
Site downtime during engagement zero seconds zero seconds

Engagement type: Speed Sprint. Scope: mobile performance on every primary landing page. Original Elementor design preserved. Original WordPress + LiteSpeed Cache + SiteGround stack preserved.

PeakSpire did an excellent job improving my website speed and performance. Siraj stayed with the project until the page was fully optimized, and his communication made the entire process smooth and easy to trust. I highly recommend PeakSpire and Siraj.

The challenge

Matthew runs Renue Hawaii, a commercial cleaning and stone restoration company in Honolulu serving hotels, offices, and high-end residences. The website was the front door. When a hotel facilities manager Googled “marble restoration Honolulu” or “commercial kitchen deep cleaning Hawaii” on a phone at 11 am, the page had to render fast enough to keep them. It was not.

PageSpeed Insights audits captured on the staging mirror immediately before our deploy, using a 4-run median per page on mobile across the four highest-traffic pages:

Page Mobile PSI (n=4 median) Mobile LCP (median)
Home 78 4.74s
About 68 8.63s
Commercial Deep Cleaning Services 74 6.48s
Contact 69 11.55s

None of the four baselined pages cleared 90 mobile. The contact page hit 63 on a fresh run. The contact page took 11.55 seconds to paint the largest piece of above-fold content on a mid-range Android phone simulation. Time-to-First-Byte was fine. SiteGround was not the bottleneck. The bottleneck was render-blocking JavaScript, an LCP image flagged as lazy-loaded when it should have been preloaded, and Elementor’s default entrance animations deferring the LCP element by one frame on every load.

The approach

Six surgical changes to the existing WordPress + Elementor + LiteSpeed Cache stack on SiteGround shared hosting. No theme rebuild. No platform migration. No design changes. Every change reversible in one command. Every change probed on a staging mirror that matched production’s web server, cache plugin, and CDN configuration exactly before it shipped.

1. Critical CSS inlined inside <head>

Not loaded as an async stylesheet. Eliminated the CSS render-block window.

2. Hero LCP image override

Page by page where LiteSpeed’s auto-detect picked the wrong element. The About page needed an explicit preload tag with the mobile-sized WebP variant and an imagesrcset hint.

3. Entrance animation classes stripped server-side

Elementor’s default animation classes were holding the LCP element invisible for one paint cycle on every page. Removed at the PHP layer so the browser never sees them.

4. Font-display set to swap

On the icon font families that were rendering invisible and then popping in. Pinned CLS on the home page from 0.10 pre-deploy to 0.004 median post-deploy.

5. Combined CSS inlined under a 560KB safety cap

Brotli compression in play. Reduced HTTP round-trips while staying inside brotli’s single-record compression window.

6. Image attribute fixes

loading=”lazy” to loading=”eager” and fetchpriority=”low” to fetchpriority=”high” on the verified LCP element of each landing page. Every change confirmed by curling the rendered HTML, not by trusting the plugin’s debug log.

The methodology was deliberately boring. PSI runs at n=10 per page using scripts/_psi_quick_burst.py: a 3-worker ThreadPoolExecutor with a 1.5-second pace between API calls and a 2-key round-robin to respect Google’s rate limits. Each run carries a unique cache-bust query parameter so the lab measured a true cold cache on every run. Median reported, never the best run. Every page verified individually because a global change can lift one page while quietly tanking another.

The result

All four baselined pages cleared 90 mobile after the final ship. The first table below shows every baselined page (the apples-to-apples BEFORE vs AFTER). The second table samples the eight highest-traffic pages on the live site (the breadth check). Every page in both tables cleared 90 mobile.

Baselined pages, BEFORE vs AFTER, n=10 PSI runs per page captured 2026-06-15 on live production with per-run cache-bust query parameters:

Page Before PSI After PSI Before LCP After LCP
Home 78 94 4.74s 2.06s
About 68 98 8.63s 2.23s
Commercial Deep Cleaning Services 74 97 6.48s 2.56s
Contact (walkthrough/quote) 69 95 11.55s 2.79s

About was the largest single-page jump: 30 points of PSI and 6.40 seconds of LCP. Contact was the largest LCP win in absolute seconds: 8.76 seconds shaved off the largest contentful paint, which on mobile is the difference between a visitor who stays and one who hits Back.

Breadth check, top eight pages on the live site, same n=10 methodology, same date:

Page Mobile PSI (median) Mobile PSI (min-max) Mobile LCP (median)
Home 94 80-99 2.06s
Hotel Services 96 90-99 2.38s
Marble Restoration & Sealing 95.5 78-98 2.71s
Elevator Scratch Removal 97 94-99 2.55s
Commercial Kitchen Deep Cleaning 97.5 96-99 2.46s
Hotel Drapes & Sheers Cleaning 98 88-100 2.25s
Odor Removal 98 90-99 2.19s
Contact (walkthrough/quote) 95 91-97 2.79s

Mean PSI across the breadth-check set: 96.4. Visual QA on a 390px mobile viewport and a 1366px desktop viewport confirmed zero layout regressions, zero broken interactions, zero theme drift. The drawer menu still opens. The contact form still submits. Every booking link still routes to the right service page. The hero image still loads exactly where it loaded before, just six seconds faster.

Five of the 33 sitemap URLs landed in the 84 to 88 range on the Jun 15 forensic: service/flood-cleanup-service/, service/hotel-matress-cleaning-and-stain-removal/, hotel-services-2 (an Elementor template duplicate of the primary /hotel-services/ page that scored 96), service/concrete-stain-removal/, and service/commercial-carpet-cleaning-hawaii/. These are tracked under the Care Plan for the next regression sweep. The five misses are reported here in full because hiding them would be the easy thing, and the easy thing is rarely the right thing.

What this means for the business

A faster mobile site lifts three things in service-business search results:

  1. Position in the local pack and the organic results. Google has used Core Web Vitals as a ranking signal in mobile search since the 2021 Page Experience update.
  2. Click-through rate from the search results page. Faster perceived speed shows up in CrUX field data over a 28-day rolling window, which Google’s algorithms read directly.
  3. Conversion rate once the visitor lands. Service-business conversion testing consistently shows a measurable drop in form submissions and call-clicks as mobile LCP crosses the 4-second threshold; Renue’s worst page was at 11.55s before this engagement.

The first two take 4 to 12 weeks for Google to recompute against CrUX. The third is now tracked under the Care Plan: Renue’s organic call volume and contact form submissions over the next 90 days are the real-world test of the lab numbers above.

The methodology that does not go in the brochure

The reason every in-scope page cleared 90 mobile is not the six fixes listed above. It is the methodology around them.

The work is not magic. The work is rigor.

Frequently asked questions

How long did the engagement take?

26 calendar days from Speed Sprint kickoff on 2026-05-08 to v5.6.49 wrap on 2026-06-03. A post-wrap forensic n=10 PSI verification on 2026-06-15 confirmed the numbers held.

Did the site go down during the engagement?

No. Zero seconds of downtime. Every change was probed on staging first, deployed during a low-traffic window, and verified with a curl health check inside ninety seconds of going live.

Did the design change?

No. Original Elementor templates preserved exactly. Original content preserved exactly. The only visual difference a visitor would notice is that the hero image now paints in two seconds instead of eight.

What about the about page that started at 68?

The about page is one of the four pages baselined pre-deploy. It went from PSI median 68 to PSI median 98 on the same n=10 methodology, the single largest per-page jump in the engagement. It benefited from the same six fixes plus an explicit <link rel="preload"> for the hero image at the mobile breakpoint.

Is this Speed Sprint available for other businesses?

Yes. The Speed Sprint is a fixed-scope engagement for WordPress + Elementor sites that need their mobile PageSpeed scores in the 90s. It is the same six-fix toolkit applied to your site, plus whatever site-specific work the audit surfaces. Details at peakspire.ca.

What is next at Renue

A separate Phase 2 covers ten outstanding items from the initial 2026-05-08 audit. The top three are LocalBusiness schema for star ratings in Google search, click-to-call links on the home and contact pages, and structured business hours feeding Google Maps and Siri. These are out of Speed Sprint scope and scheduled separately.

Ongoing monitoring continues under the PeakSpire Care Plan at $199/mo. See peakspire.ca for current plan details.

Ready to fix your own mobile speed?

If you run an Ottawa service business and your mobile PageSpeed score is anywhere below 90, the bottleneck is almost always render-blocking JavaScript, an LCP image that is not preloading, or theme builder defaults that nobody has reviewed. None of these require a rebuild to fix.

Run a free 15-minute audit →

Three ways to start: (1) free audit, (2) book a Speed Sprint at peakspire.ca, or (3) call directly at (343) 842-4444. Founder picks up. No gatekeeper.

About PeakSpire

PeakSpire is an Ottawa-based web design and local SEO agency for service businesses, run by Siraj Ahmadzai. Three focused services: Lead-Gen Website, Speed Sprint, Care Plan. Fixed pricing. Founder-led. No agency fluff. More at peakspire.ca and About Us.

Email: info@peakspire.ca · Phone: (343) 842-4444 · Web: peakspire.ca

Provenance and verification