Case Studies

85% Faster Load Times for a Nonprofit Website

At a Glance

Mobile Performance Score5792+61%
Mobile LCP14.1s2.1s85% faster
Desktop Performance Score84100Perfect
Time to First Byte591ms28ms*95% faster
Frontend Size2,274 KB694 KB69% smaller
Total Assets138 files8 files94% fewer

*Metrics in this article came from a local mirror copy of the website used for development, so this value is a little faster than a live site would be.

The Challenge

This was a WordPress website for a nonprofit retreat that was struggling under its own weight. On a slow mobile connection, pages took over 14 seconds to display meaningful content — well beyond the point where most visitors give up and leave.

The root causes were familiar but compounding. The site’s frontend was loading over 2 MB of JavaScript and CSS across 138 separate files. A feature-rich calendar plugin alone contributed roughly 800 KB to every page load. There was no page caching, no image optimization, and the theme’s CSS had accumulated significant dead weight over time.

The desktop experience was better but still sluggish, with a performance score of 84 and a 2.5-second Largest Contentful Paint. Server response times averaged nearly 600 milliseconds before a single byte of content reached the browser.

For an organization that depends on its website to connect with visitors, this kind of performance gap translates directly into missed connections and lost engagement.

The Approach

Rather than a ground-up rebuild, we took a systematic, iterative approach — making targeted changes and measuring the impact of each one. We started with an AI-based measurement of the impact of all plugins and themes across the site.

1. Theme CSS Optimization

We started with the theme itself, switching to a streamlined version with dead CSS removed. This single change cut CSS weight by 66% and immediately improved rendering speed.

2. Calendar Plugin Migration

The existing calendar plugins (The Event Calendar and The Event Calendar Pro) were the single largest contributor to page weight and server processing time. We migrated to a lighter alternative that could import the event data. This improved server response time by 54%, bringing Time to First Byte (TTFB) down to 306ms.

3. Homepage Content Cleanup

The homepage had accumulated hidden mobile-only blocks and a JavaScript-heavy testimonial carousel. We removed the hidden elements and replaced the heavy interactive blocks with simpler, more performant alternatives.

4. Responsive Image Optimization

The hero image — the single largest visual element on the page — was being served as a single large file regardless of device. We converted it to modern formats (AVIF and WebP) and configured the server to deliver appropriately sized versions for different viewport widths. Desktop LCP dropped 61% after this change.

5. Caching, Minification, and SEO Cleanup

We replaced the existing Yoast SEO plugin with a more efficient alternative (the migration was seamless as it imported all existing settings), then added a caching plugin and CSS/JS minification. The combined effect: TTFB dropped below 100ms and frontend size decreased another 35%, from 1.3 MB to 834 KB.

6. Lazy Loading

We then implemented native lazy loading for all below-the-fold images, which simultaneously tells the browser to prioritize the above-the-fold hero image. Desktop performance hit 99; mobile performance improved 20%.

7. AI-Assisted Mobile Optimization

For the final push, we used an AI-powered optimization tool to specifically target mobile LCP. This automated step analyzed the page structure and made surgical adjustments to resource loading priorities. The result: mobile LCP dropped 76% in this step alone, and the mobile performance score reached 92 — passing Google’s Core Web Vitals benchmarks.

The Results

The numbers speak for themselves:

MetricBeforeAfterChange
Mobile Performance5792+61%
Mobile LCP14.1s2.1s85% faster
Desktop Performance84100Perfect score
Desktop LCP2.5s0.6s77% faster
TTFB591ms28ms95% faster
Frontend Size2,274 KB694 KB69% smaller
Total Assets138894% fewer
PHP Execution Time514ms196ms62% faster
Database Queries20010448% fewer

Desktop achieved a perfect Lighthouse performance score of 100. Mobile passed all Core Web Vitals thresholds. The site went from loading 138 separate frontend files totaling 2.2 MB to just 8 files at 694 KB — a 94% reduction in HTTP requests and a 69% reduction in total transfer size.

Key Takeaway

WordPress performance problems are rarely mysterious. They’re the accumulation of individually reasonable choices — a feature-rich plugin here, an unoptimized image there, caching left for later — that compound into a genuinely poor experience. The fix isn’t a rebuild. It’s a methodical audit and a series of targeted interventions, each one measurable.

For any organization with meaningful website traffic, the return on this kind of work is immediate, with better rankings, lower bounce rates, and a visitor experience that reflects the quality of what they actually offer.