Brief notes from the original article available here.

Perceived performance refers to how fast or responsive a website or app feels

One commonly invoked principle in the field of psychology is the Weber-Fechner law, which defines the Just Noticeable Difference (JND) in response to stimulation.

Research indicates that we can only notice a change of more than 20%.

In the web performance context, this means aiming for improvements well above the 20% threshold. This number doesn’t mean that smaller, cumulative improvements don’t count […] We’re also better at detecting small differences in time in shorter, rather than longer intervals. Especially when performing routine, quick tasks, we will be more affected by delays. That points us to optimising actions people perform most frequently

Bucketing timeframes by attention span (based on Steve Souw’s definitions and research by Rina A. Doherty and Paul Sorenson) proves more useful when assessing performance depending on length of the operation and perceived complexity:

AttentionCategoryResponse TimeDescription
AttentiveInstantaneousbelow 300msPerceived as closed-loop system, where people are in direct control.
Immediate300ms–1 secPerceived as easy to perform.
Transient1–5 secPerceived as requiring some simple processing, but people still feel like they are making continuous progress. People are unlikely to disengage from task flow.
Attention span5–10 secPerceived as requiring more wait time. People need informative feedback to stay engaged.
Non-attentiveNon-attentive10 sec–5 minPerceiving as requiring more complex processing. People are likely to disengage and multi-task.
Walk-awayabove 5 minPerceived as requiring intensive processing. People won’t stay engaged with the task.

4 ways to improve perceived performance

1. Be smart about communicating status and progress

Load timeWait timeStrategy
below 1s-No loader needed
1–2s-Skeleton screen or localised spinner
2–10sFixedTime indicator
Open-endedProgress bar or step indicator
above 10 sFixedPercentage indicator or background process indicator
Open-endedNotify people when task is complete
  • Localise loading spinners: Spinners are best used when only a small page element will change. Avoid using a spinner when entire pages or screens are loading, as it makes people focus even more on the wait time.

2. Always have something for the reader to do

Visitors are never more aware of how long a page takes to load than when they have nothing to do.

3. Avoid sudden page movements

These shifts also destroy any illusion that your site is loading quickly, showing that the page is still very much a work in progress.

Luckily, unexpected movement is something we can test and address, thanks to the Cumulative Layout Shift metric. You can find actionable strategies for avoiding sudden page movements in our Cumulative Layout Shift guide.

4. Prevent intensive processing

Reducing and optimising script resources prevents the signs of intensive processing and reduces the possibility of delays. We can use Interaction to Next Paint and Total Blocking Time to quantify and track these efforts.