I was wondering why web browsers keep showing old content once a user has clicked a link. It's confusing if one doesn't look at the loader(which is generally at one corner and thus can easily be skipped).

Wouldn't it be better to show a blank white page with a loader in the center till the next page html is received? The current approach has very little to no feedback on whether my click was registered, and the browser is processing it or not. I have myself seen a lot of users spam clicking the links 2-3 times before the browser recieves the next html and starts rendering it.

  • Good one, upvote. Loader maybe wouldnt make sense as it is to invadive for UX, but having additional marker (remember that before sand clock was replacing cursor) seems to me logical.
    – xul
    Jul 20, 2018 at 12:47
  • 1
    Unless we can talk to the developers we have no way of knowing and can only offer opinions - this is not considered good practice here. Jul 20, 2018 at 13:08
  • 1
    @AndrewMartin I thought that's the whole purpose of stackexchange -- to exchange opinions on UX. The way I see it, UX has an element of subjectivity to it, and everyone has a varying opinion about all UX practices. There is no clear winner. That said, I am new here so I might be missing something. It would be great if you could elaborate. Jul 21, 2018 at 14:01
  • Not to exchange opinions but to exchange knowledge. The places where you find subjectivity is where you need to run your own specific tests. UX is both and art and a science. Here we exchange knowledge of specific solutions to specific UX problems. Jul 21, 2018 at 16:14

3 Answers 3


When you have a fast or cached website and you give some feedback (like changing the button color of the link when the user presses it) it’s a far less jarring experience than constantly flashing a white screen in between.

There are even techniques to actively remove the white flash when it does happen on your website (because i.e. wrong loading order of resources).

At the moment it’s up to the the webdesigner how to give feedback of loading new content. I think that gives the freedom to make something that matches the rest of your UX at the expense that you need to take this into account as a designer.


if one doesn't look at the loader

I think that's your core issue. The user shouldn't have to go looking around to see if the link that they clicked is doing something; it should be contextually obvious.

Whenever I click on a button that posts a form, it's really helpful to add an :active state to show the user, on the button that they are looking at and just interacted with, that we acknowledged their click and are working.

Additionally, I would say it's to give users something to do while they wait for the initial request to finish. I'd rather my users be able to glance around on my page and maybe catch a glimpse at one of the advertisements on the page, even if they don't click it, while the initial request completes.

  • That is what I thought too. But, what I mean to say is that since the user explicitly chose to navigate out, I don't see a lot of value of giving him something if it causes even a little bit of confusion/restlessness. I get that the hover/focus elements should make it obvious but that is easy to miss at some sections, especially if you are in a startup focusing on features now and polishing later. Jul 21, 2018 at 14:06

We should separate indicating that browser accepted user actions, sent a request and is waiting for an answer from the solution.

If the server answers very quickly, it would be very annoying for users to see an empty page after each click.

In many cases a click does not lead to a new page but modifies a small part of it. This is one of the reasons why AJAX and later single page applications (Ember, Angular, React, ...) appeared. User gets better experience when he doesn't see an empty page but sees a smooth changes.

Indication might be good in some cases, but not always. For instance, would you like to see some animation, when you just scroll the page, especially upwards, when you know the the content is already loaded? When page rendered immediately, you may find such blinking unneeded or even irritating.

An indication about request being executed may be helpful only if the indicate some long running action, e.g. if it will take 3-5 seconds. But one of the more complicated parts here is to determine what action will take much time. This can depend on the logic behind the request (suppose you trigger a complicated report that takes 10 seconds) or just loading a plain HTML which takes 0.1 seconds. Some users can have very slow connection and even loading of plain HTML that takes 0.1 seconds for one user can take 10 seconds for another user. Browser cannot know in advance what request will take how long. That is why it is mainly up to developers to add some indicators or not. There is no universal simple solution.

Not the answer you're looking for? Browse other questions tagged or ask your own question.