If your site shows a loading spinner, you’ve already lost some portion of your visitors — you just can’t see them on your analytics dashboard.
Spinners aren’t bad. They’re a symptom. They’re what happens when a page hasn’t figured out what to show yet, and is stalling until the server, the JavaScript, or the fonts finally arrive.
Here’s the part most small business owners don’t realize: a 3-second delay doesn’t bounce 3% of your visitors. It bounces closer to 32%.
Google’s field data on mobile loads is pretty clear:
- At 1 second, bounce probability is baseline.
- At 3 seconds, bounce probability is 32% higher.
- At 5 seconds, bounce probability is 90% higher.
- At 10 seconds, bounce probability is 123% higher.
That’s a cliff, not a slope. And it’s measured before the visitor has even seen your page.
What actually causes those delays
On a typical small business site:
- Page builder bloat: 80–200KB of CSS that isn’t used on the page.
- Plugin towers: 15 plugins each adding a network request before render.
- Unoptimized images: Hero photos served at 4000px wide, delivered as JPEG at 85% quality.
- Third-party scripts: Chat widgets, analytics, fonts — each one delaying the visible page.
The fix isn’t a tool. It’s a mindset. Every byte has to earn its place on the page. That’s the core of how we approach website optimization — audit, cut, then measure.
The 1.5-second target
When we build a site, the question for every element is: does this help the visitor, or is it just inherited weight? If it doesn’t help, it doesn’t ship. Fonts are subsetted. Images are optimized and lazy-loaded. Scripts are deferred. CSS is inlined for the critical path. The result is a site that renders meaningfully in under 1.5 seconds on a median mobile connection — no spinner, no flash, no waiting.
Your loading spinner isn’t a loading indicator. It’s a gravestone for visitors who didn’t wait.
You can’t get them back. But you can stop making more of them.