The Loading Spinner Is a Lie. Here’s Why You Should Ban It.

You’ve been there. Staring at a spinning circle, watching it go round and round, your blood pressure rising with each rotation. That little spinner isn’t just an animation — it’s a promise of progress that rarely delivers. And here’s the uncomfortable truth: by using it, you’re not helping your users. You’re deceiving them.

Most designers and developers treat the loading spinner as a necessary courtesy. “Users need to know something is happening,” they say. But what they’re really saying is: “We’ve built something slow, and we need a way to keep people from leaving.” The throbber is a user-facing admission that your system can’t meet expectations.

I’ve seen it firsthand. A Netflix spinner on a cheap TV with poor WiFi, showing a percentage that meant nothing. An Android app that spins for ten seconds before crashing. The spinning beach ball that makes you want to throw your Mac out the window. These aren’t solutions — they’re Band-Aids on a bullet wound.

Here’s the twist. The spinner isn’t just a symptom of bad performance; it’s a contract between designer and user. You agree to accept the wait, and the designer agrees to decorate the wait. When you remove the spinner, you expose who truly holds responsibility for performance. Suddenly, the engineer can’t blame the user’s patience. They have to fix the latency.

We’ve been conditioned to think that any feedback is better than no feedback. But that’s wrong. A spinner that spins indefinitely is torture. It’s like a chat bot that says “I’m connecting you to a representative” for twenty minutes. The only thing worse than a blank screen is a spinner that lies.

So take a side. Ban the throbber. Completely. Force your team to attack latency at its root — optimize queries, cache aggressively, use skeleton screens that show real structure, or preload content before the user asks for it. Don’t just decorate the wait. Eliminate it.

The next time you’re tempted to add a loading spinner, ask yourself: Are you solving a problem, or just decorating it? The most honest loading state is the one that doesn’t exist.

FAQ

Q: What question would a skeptic ask?

A: But users need feedback to know something is happening. If you remove the spinner, won't they think the app is frozen?

Q: What's the practical implication?

A: Replace spinners with skeleton screens that reflect the actual layout, use optimistic UI, or preload content. The goal is to eliminate the waiting state entirely, not to decorate it.

Q: What's the contrarian take?

A: Some spinners are actually good when they show a real percentage or a predictable wait time. But in practice, most spinners lie. The only acceptable spinner is a guarantee that the wait will end — and even then, you should question why the wait exists.

📎 Source: View Source