Slow nonprofit websites are rarely slow for exotic reasons. The same six causes account for nearly every site we audit, and most of them are fixable in weeks without a redesign. Here is what actually breaks, what each fix costs, and the order to do them in.
Why are nonprofit websites so slow?
Because they accumulate. A tracking script for a grant report, a plugin for one event, a hero video added by a board member, photographs uploaded straight from a phone, and a hosting plan chosen in 2019. No single decision was wrong. Together they push a page past four seconds on mobile, which is where donors leave.
What are the most common causes?
| Cause | How often we find it | Typical time cost | Fix effort |
|---|---|---|---|
| Unoptimized images | 9 of 10 audits | 1.2s to 3.5s | Low |
| Too many third-party scripts | 8 of 10 | 0.8s to 2.5s | Low to medium |
| Plugin bloat | 7 of 10 | 0.5s to 2.0s | Medium |
| Cheap shared hosting | 6 of 10 | 0.4s to 1.5s server time | Low |
| Render-blocking fonts and CSS | 6 of 10 | 0.3s to 1.2s | Medium |
| Autoplay hero video or carousel | 4 of 10 | 1.0s to 4.0s | Low |
How much does slowness actually cost?
| Load time on mobile | Relative donation completion |
|---|---|
| Under 2s | Baseline |
| 3s | Roughly 20% fewer completed gifts |
| 4s | Roughly 35% fewer |
| 5s+ | Roughly half or worse |
A site with 40,000 annual sessions and a 4-second donation page is usually leaving five figures on the table each year. That is the number to bring to a board meeting, not a Lighthouse score.
What should we fix first?
In this order, because it is cheapest impact first:
- Compress and convert images to WebP or AVIF, cap hero images at 300KB
- Remove tracking scripts nobody owns, then defer the rest
- Delete unused plugins, replace the heavy ones
- Move to managed hosting with a CDN and object caching
- Self-host fonts, subset them, preload only what is above the fold
- Replace autoplay video with a poster image and click-to-play
Most nonprofit sites gain a full second from the first two steps alone, in under a day of work.
What does a performance fix cost?
| Scope | Cost | Timeline |
|---|---|---|
| Quick-win pass (images, scripts, caching) | $2k to $6k | 1 to 2 weeks |
| Full performance remediation | $8k to $22k | 3 to 6 weeks |
| Rebuild on a performance-first platform | $30k to $90k | 10 to 20 weeks |
| Managed hosting upgrade | $35 to $300/mo | Days |
Start with the quick-win pass. If the site still cannot hit targets afterward, the platform or theme is the problem and a rebuild is a legitimate conversation.
What targets should we hold ourselves to?
| Metric | Target | Why |
|---|---|---|
| Largest Contentful Paint | Under 2.5s | Google field threshold and donor patience |
| Interaction to Next Paint | Under 200ms | Form responsiveness on older phones |
| Cumulative Layout Shift | Under 0.1 | Mistapped donate buttons |
| Page weight | Under 1.5MB | Rural and cellular donors |
| Third-party scripts | Under 6 site-wide | Every one is a dependency |
Measure with field data from real users, not a lab test on office wifi. A lab score of 95 and a field LCP of 4.1 seconds happen constantly.
Who should own performance after launch?
Name one person and give them a quarterly checklist: run field data on the top ten pages, review the third-party script list, check image sizes for anything added that quarter, and confirm the plugin and core updates ran. Fifteen minutes a quarter prevents the slow decay that brings sites back to us three years later.
Does hosting really matter that much?
Server response time sets the floor for everything else. A $6/month shared plan often returns the first byte in 800ms to 1.4s, which no amount of front-end work can recover. Managed WordPress or Drupal hosting with a CDN typically lands at 150ms to 300ms. For most nonprofits this is the highest-value line item per dollar on the whole site.
What about accessibility and speed together?
They pull in the same direction more often than not. Lighter pages, fewer scripts, real text instead of images of text, and no autoplay media all improve both. Treat them as one workstream and you pay for the audit once.
Where to go next
Run your five most important pages through a field-data tool, write down the LCP numbers, and fix images and scripts first. Come back to the platform question only after that.
Related reading: the complete guide to nonprofit donation friction, how to fix nonprofit websites in 2026, and what nonprofits should look for in website development. Want the numbers for your site? Request a free website audit.
Principal Engineer · Seattle, WA
Kamal builds and rescues Drupal and WordPress platforms at DoodleWeb. Most of his work involves performance budgets, accessible component systems, and migrations that keep editorial teams sane.



