“How do I get back? Just press ‘Back’. Navigation, this isn’t great to be honest. And now it’s brought me back to the women’s. OK. Don’t like this.”
During all our usability studies we’ve observed how users, both novice and expert, rely extensively on the browser “Back” button. Indeed, the “Back” button has long been a staple of web navigation, and users’ often decades-long experience with using it has caused them to develop a very specific mental model of how it should behave.
Often this has severe usability implications when many common web design patterns — such as overlays, anchor links, dynamically injected views, hidden content, etc. — have a default technical structure that breaks users’ expectations for how the “Back” button is supposed to work. In fact, our benchmark reveals that 59% of e-commerce sites gets at least one of these 4 user expectations wrong in terms of how they technically support use of the “Back” button.
The consequences of breaking the user’s expectations of how the browser “Back” button should behave can be dire. During our usability tests, it has been the direct cause of abandonment, with users leaving test sites with much swearing and cursing (even from the calmer test users).
In this article we share our large-scale usability research and discuss our findings regarding:
While the solution is simple, it’s surprisingly often neglected in the implementation phase — even on the largest websites, as you’ll see below, and especially on mobile sites.
The short version: users expect the “Back” button to take them back to what they perceived to be their previous page. The notion of perception is the key factor here, since there’s often a difference between what is technically a new page and what users perceive to be a new page — which can create discrepancies between where the user expects the “Back” button to take them and where it actually takes them.
Generally, we’ve observed that if a new view is sufficiently different visually, or if a new view conceptually feels like a new page, it will be perceived as one — regardless of whether it technically is a new page or not. This has consequences for how a site should handle common product-finding and -exploration elements like overlays, filtering, and sorting. For example, if users click a link and 70% of the view changes to something new, most will perceive this to be a new page, even if it’s technically still the same page, just with a new view loaded in.
Much the same way users have little technical understanding of website security and, instead, go with their gut feeling (learn more), they similarly show little appreciation for the (often arbitrary and minute) distinctions of when a new view is technically a new webpage or just an expanded element on the existing page. And therein lies the rub: the browser “Back” button takes the user back to their previously visited URL, which isn’t necessarily the same as what the user perceived to be their previously visited page.
Users therefore often rely on an element’s visuals, its context, and prior site experience when shaping their expectation of when something is a new webpage vs a slightly altered element on the same page. It’s the outcome of this subconscious snap judgment that determines where the user expects the browser “Back” button to take them.
Below is a walkthrough of the 4 website elements we most often observe to be implemented in ways that break user expectations — that is, where the user isn’t sent back to what they perceived to be their previous page when using the browser “Back” button.
Overlays and lightboxes are by design meant to convey a new page that’s laid on top of the previous page. It should, therefore, come as no surprise that users perceive these as separate pages and expect the browser “Back” button to bring them back to the original page. Alas, during testing, the vast majority of user-initiated overlays at the tested sites did not close as the users clicked the browser “Back” button, but instead sent them way back past the overlaid page.
This user expectation of “click ‘Back’, exit overlay” was observed during testing on both desktop and mobile sites, for all types of overlays. For example, site-initiated newsletter–sign up requests, image gallery overlays, or live chat offers. Thus users should always be exited from an overlay when clicking “Back”, and returned to the page the overlay is on top of (not the previous page).
It’s worth noting that users’ likely use of the “Back” button to exit an overlay varies in proportion to how prominent the site-provided “Close” element is (e.g., an “X” to exit the overlay). Very prominent “Close” elements are likely to be used more frequently by users compared to inconspicuous “Close” elements, and thus the strain on the “Back” button is reduced when overlays have highly prominent “Close” elements. Of course, users should still be exited from the overlay when clicking “Back”, even if provided with a prominent “Close” element.
During mobile testing, we observed users having more difficulty closing overlays using site-provided “Close” elements, often due to hit area issues, with the “X” often being placed close to the edge of the screen, or an “Install App” ad covering a “Close” element (see our article on Deemphasize ‘Install App’ Ads or Avoid Them Entirely). Thus mobile users are more likely to use the “Back” button to close overlays compared to desktop users, and it’s even more important that their expectation of exiting the overlay is supported when tapping “Back”.
Filtering and sorting generally yield an entirely new product list and users therefore perceive each of these actions as a distinct view. Even when the filters or sorting directions don’t invoke a page reload, we still found during our large-scale usability study of Product Lists & Filtering that the users generally perceive each discrete iteration of their filtering as a new view (most likely because it is a user-initiated action and each iteration produces a new set of results).
This underscores how users don’t make technical distinctions between what is and isn’t a new page, but rather rely on what they perceive to be a new page. Filtering and sorting, of both categories and search results, should therefore support that users flick back through each list state by using the browser “Back” button, and the sorting directions should also be changed to the previously set sorting direction.
However, it’s important to note that during testing there were many instances of users tapping “Back” and a filter being removed or a sorting direction being changed — but this wasn’t communicated to users on the front end. In other words, while tapping the “Back” button technically did remove a filter or change a sorting direction, it appeared to users that nothing had changed, as the (now removed) filters were still shown as applied or the sorting direction shown didn’t match the actual sort order of the product list. This obviously will lead to confusion for users, who will wonder whether their “Back” button click or tap has been successful when there’s a mismatch between their actions and what they see displayed in the interface.
If filtering or sorting is in an entirely separate interface — which is very common on mobile sites — it’s critical that tapping “Back” while in the interface acts as an “Exit” link would (i.e., similar to exiting an overlay). That is, users should be returned to the view they had been looking at just prior to opening the filtering or sorting interface, after tapping the “Back” button from within the interface.
Contrary to what one might think, accordion checkouts are not perceived as a one page checkout with multiple collapsed sections. Instead the vast majority of users perceive them as a multistep process with summaries (more on how users perceive accordion checkouts). This can turn out problematic on sites where the accordion steps are technically implemented as a single page with one URL, as users wanting to go backwards to a previous checkout “step” (e.g., to edit previously entered information) will be sent all the way back to the cart.
Instead, it’s key that accordion checkouts ensure that the browser “Back” button takes users back to the previous viewed step — regardless if it’s technically the same or a separate page.
Many users will look through a great number of products in order to find what they are looking for, and this will include some back-and-forth between the product list and the product details pages. Users who are not taken back to where they were previously on the product list — for example, back to the middle of the product list, rather than the top — have to go through the tedious process of refinding the last place they were. During testing this was observed to be especially difficult for mobile users due to the more cumbersome process of scrolling.
When users are taken to the top of the product list, rather than to where they were before visiting the product page, they become disoriented and must refind where they were in the product list. Not only is this tedious — users must redo all the work they had previously done by scrolling the product list again — but it can also be challenging to remember exactly where they were before visiting the product page (e.g., if the product list is a selection of blue dresses with similar but not identical styling, or similar-looking office chairs).
“When you use the “Back” button, it takes you right back to the beginning. Rather than where you left off.”
Users brought to the top of the product list may have to scroll through many items before they find the right place in the list. Depending on the product-loading schema of the site, the difficulty in refinding the product can range from moderate to extreme.
Regardless of the product-loading schema used, if the process of refinding the correct place in the product list is too time-consuming and troublesome, users may well give up.
But it doesn’t stop there. The above four examples are typical mismatches where users often expect one thing to happen yet sites are implemented in a way that causes something else to happen. However, this type of misalignment goes beyond those common examples. Generally you should watch out for all new views states initiated by the user which either look like, or conceptually feel like, a separate page.
When it comes to overlays, filtering, or sorting, testing shows that how users expect the “Back” button to behave is consistent, and thus what should be shown to users after clicking “Back” is clear-cut. There are, however, other views users encounter during product finding and exploration where what should be shown to users after clicking the “Back” button isn’t so obvious. Five of these are discussed below.
When it comes to overlays, filtering and sorting, accordion checkouts, and going back to the product list from a product page testing shows that how users expect the “Back” button to behave is consistent, and thus what should be shown to users after clicking “Back” is clear-cut. There are, however, other views users encounter during product finding and exploration where what should be shown to users after clicking the “Back” button isn’t so obvious. Five of these are discussed below.
Note: this list isn’t meant to be exhaustive, but more illustrative of “gray” areas where special consideration should be given to how the “Back” button should perform in a given context.
It’s often difficult to determine what to show users after they click the “Back” button when they’re interacting with a multistep process embedded within a page — for example, shipping estimators, product-finding wizards, questionnaires, etc. While some users may assume they’ll be taken to the previous page, others will assume they’ll be taken to the previous step in the process.
The design of the embedded process itself likely highly influences user expectations. For example, when a process takes up more than 50% of an interface — which will very often be the case on mobile — many users are likely to expect that after clicking “Back” they’ll see the previous step in the process, not the previous page.
However, the length of the process is also a factor here. It’s not difficult for users to click back through, for example, a 3-step process, even if they had expected the “Back” button to take them to the previous page. Hence the consequence of forcing all users to do this aren’t so grave. If, on the other hand, the process is lengthy — for example, a 7-step process — then the act of clicking back becomes much more tedious if, for example, users have to click back through 6 separate views to finally get back to the previous page they were on.
Lastly, if the embedded wizard will lose any significant amount of data the user has typed when the back button is used, then the consequences of not taking users to the prior step also increase greatly.
Thus, the size and prominence of the embedded process, the length of the process, and any potential data loss of large amounts of user-provided data should be considered when deciding whether each step in the process should have its own separate URL (requiring users to click back through each step in the process) or not (where clicking “Back”, even if a user is several steps into a process, returns the user to the previous page, or alternatively exits them from the process).
Expanding content could include elements such as thumbnails expanding to larger images, or a line of text expanding to a paragraph. However, the expanded content doesn’t appear to the end user the way an overlay does, where the page background is dimmed, and it’s quite clear that one page is “overlaid” on another. Therefore, with expanding content users could reasonably interpret the expanded content as either a new view or simply the same view, with some content that’s been changed.
Not using expanding content, but instead switching to an overlay, where it’s clear what to take users to when they click the “Back” button (i.e., exit them from the overlay and return them to the page they were on), may be the easiest solution in some contexts (if both UI types are otherwise equally attractive to use). Otherwise, similar to multistep processes embedded in pages, much depends on how prominent the expanding content is. If it takes up a large part of the interface then many users will interpret it as a separate page, and thus each piece of content should have its own separate URL.
When it comes to anchor links, much depends on whether users are immediately jumped down the page when the anchor link is tapped or if they are smoothly scrolled to the new position on the page. Testing reveals that if users are jumped down the page, then tapping “Back” should return them to the previous position on the page.
For example, if a user is jumped down to the reviews section after tapping a reviews star average at the top of the product page, then they should be returned to the top of the product page when “Back” is tapped. This is due to the fact that when users are jumped down a page, they tend to lose overview of where they are after the jump, and they can think they are indeed on an entirely new page (especially on mobile sites). Returning them to where they originally were when they tap “Back” ensures that they don’t become too disoriented.
However, it’s less clear-cut if a user is smoothly scrolled down the page. Since users are scrolled down the page, they retain an overview of where they came from as they go to a new location. Therefore they’re much less likely to completely lose overview compared to users who are jumped down the page.
Thus, some users who’ve been smoothly scrolled to a new position on a page may feel like a site isn’t meeting their expectations if after they tap “Back” they aren’t brought back a page, but rather returned to their previous location on the page. As they’ve been smoothly scrolled, they know where they are — they could easily scroll up if they want to, but by tapping “Back” they’re signaling their intention to go back a page instead. (Note that it’s recommended that users always are smoothly scrolled, rather than jumped, when tapping an anchor link.)
Thus, the particular context in which the “Back” button would be tapped after a user has been smoothly scrolled after tapping an anchor link should be taken into account. If a user is on a mobile site, and it’s a very long product page, and there’s no “Back to top” option, then it likely makes sense to take users to the anchor link that was tapped, rather than back a page, when they tap the “Back” button.
Alternatively, if there are many anchor links on a page (meaning a user could potentially bounce around the page for awhile when tapping “Back”, if many of the anchor links have been tapped), or if the page isn’t very tall, then taking users back to the anchor links could be disruptive, and it may simply be better to return them to the previous page instead.
Truncated content that’s expanded when users tap a link or button shouldn’t be a separate URL that users revisit when they tap “Back”. For example, it’s quite common on mobile product pages to offer a couple of lines of text or a paragraph of the product description, and then hide the rest behind a “More” link. While this can make product pages more scannable, users should be taken back to the previous page, rather than back to the previous content, when they tap “Back”.
Expanding truncated content isn’t enough of a “view change” where users would expect to be taken back to that area of the page when tapping “Back”. Consider also giving users more of an overview of where they are when they tap to expand the content by smoothly expanding the new content (e.g., by gracefully expanding the content, rather than abruptly jumping to the new content).
Product variations should be combined into one product list item. Users can then explore the variations on the product page. Whether or not those variations should have separate URLs, however — and thus users would step back through each previous variation they had already explored when tapping “Back” — again depends on the context.
When there are generally few product variations, in particular color, for users to consider, then having them as separate URLs may be the best choice, as most users wouldn’t have to tap “Back” more than a few times to get to the actual previous page (often the product list or search results page). While some users will be slightly annoyed at having to tap back 2 or 3 times to get back to the previous page, others will likely be more severely annoyed if they tap “Back” to go to a previously viewed variation and are instead kicked off the product page entirely.
This could become a much more disruptive experience if, for example, they’re not returned to where they had previously been in the product list — forcing them to refind the product they had just been viewing.
If each variation has its own separate URL, however, it’s critical that the product image changes after each tap of the “Back” button. Otherwise, users will be tapping “Back” with no indication that anything is happening in the interface (even if they are technically seeing different URLs). This is a recipe for disaster, as most users will assume the site is “stuck” or will simply be unclear why it appears that their actions are having no effect.
If, however, there are dozens of variations — for example, lipstick shades — then it can become a more tedious exercise to step back through potentially dozens of “pages” to finally get back to the previous page the user was on. If it’s decided that tapping “Back” skips previously viewed variations and instead sends users back to the previous page they were on, then it’s critical that users are returned to where they were in the product list (if that was the previous page) so that refinding the product is easy. A list of “Recently Viewed” items could be helpful as well.
The good news is that HTML5 provides for a relatively straightforward solution: the HTML5 History API. More specifically, the
history.pushState() function allows a site to invoke a URL change without a page reload, meaning the site can align the browser “Back” button behavior to match user expectations. (The reverse is also possible: to change the URL without invoking an entry in the user’s history.)
This means that when opening, for example, an overlay, the site can invoke a history change in the user’s browser, allowing the user to “go back” from the overlay view by using the browser “Back” button. And this of course goes for anything, including user-initiated overlays and lightboxes, AJAX-based pagination, filtering and sorting of lists, accordion checkouts — any element which the user would expect to have invoked a browser history but technically hasn’t.
Therefore, use the
history.pushState() to create a new entry in the user’s browser history for any view that the user will perceive as a new page (i.e., any view that is sufficiently different visually or conceptually to be perceived as such). This way, you can ensure that site behavior and user expectations align.
In summary: Use
history.pushState() to make sure your site invokes “Back” button behavior that aligns with the user’s expectations. Specifically, ensure that any visual change the user will perceive as a new page is added to their browsing history, regardless of whether it’s technically a new page or not. This includes, but is not limited to:
Additionally, some new views are “grey areas”, and the prominence of the view and other factors need to be considered when deciding whether to implement the new view as a new “page”. These include
Truncated content should in general never be implemented as a new “page” using
Users rely on an element’s visuals, its context, and prior site experience when shaping their expectation of when something is a new webpage vs. is a slightly altered element on the same page. It’s therefore critical to support users’ “Back” button expectations to avoid unintended detours and changes that during testing were often a direct cause of abandonment. Despite the severity of the issue and the somewhat simple solution, 59% of sites that don’t support at least one of the 4 core “Back” button expectations.
This article presents the research findings from just 1 of the 580+ UX guidelines in Baymard Premium – get full access to learn how to create a “State of the Art” e-commerce navigation experience.
Join 24,000+ readers and get Baymard’s research articles by RSS feed or
Topics include user experience, web design, and e-commerce
Articles are always delivered ad-free and in their full length
1-click unsubscribe at any time
On a related note, it is worth mentioning a fairly common technical bug that often wrecks the user’s back button functionality, namely intermediary redirect pages. These intermediary pages only exist to redirect the user to another page, which isn’t a problem in and of itself. However, when they are implemented poorly, they can effectively break the ‘back’ button functionality by creating a redirect loop which sends the user back to the page they were already at.
We often observe subjects being caught in such redirect loops, particularly after adding items to their cart or submitting a form. While users can technically double-click or expand their browsing history and jump multiple steps backwards (thus bypassing the redirect loop), this very rarely happens in practice.
Great Article !
It’s ironic to have an article about not breaking the back button, on a site where the ctrl+click (open link in new tab) functionality is broken. Thankfully, middle mouse click still does what I want. I definitely didn’t expect ctrl+click to take me off this page though, as it generally always opens a new tab.
Hi Brett, it seems like a browser specific bug/compliance issue. Thanks for letting us know, we’ll look into it.
The bug should be fixed now.
This really is a fantastic article! (I actually don’t remember now from which site I opened a browser tab to load this article a day ago, because after loading this article’s link into a tab I only returned to read this a day later).
It’s not often that I read UX usability studies that cover subject matter I haven’t previously come across. The examples provided here are all excellent and prompt me to want to visually these scenarios in my head and sketch them out, or find other examples and screenshot them for analysis.
One thing I wasn’t particularly clear about was what you included as “AJAX Pagination”… I have not conducted testing in this area, have not paid for test results in this area, have not sought out results of testing in this area, that’s from my own prioritization of what I find most important in my work. So I am sure I go against the grain of many UX designers. But I have never seen any value at all to endless scrolling of pages. If this was concocted for mobile, ok… But I think its practice has “broken” far more than it has fixed.
You distinguish between e-commerce sites which have liked page numbers for results lists — and — blog comments. I personally can’t stand not being able to communicate to a friend, family member or colleague and give them a specific URL in which to find specific reader-posted content, such as:
“hey, take a look at this conversation in the comments for this news article about [ gun control ] [ ACA Act ] [ Malaysia Airlines Missing Jet ] [ Crimea annexed into Russia ]” …. “They’re really [ great! ] [ incredibly stupid! ]” …..
… and the reason I can’t provide a URL is because of the LACK of URLs with “endless scrolling”… Yes, it’s true that some implementations of endless scrolling provide permalinks to each comment, but I actually find that a lot of such comment sets do not, which is incredibly frustrating. It leaves me a regressive choice of having to screenshot some content, scroll down, screenshot next page view, and email the two picture files to recipient. Still not a great solution because one of the purposes of this interactivity is to REPLY TO: Person X’s comment … and if you can’t locale person X’s comment amidst all the pageless reader comments (let’s say with HuffingtonPost), it’s just a terrible user experience..
a step way backwards from what forums provided 2 decades ago, URL specific pages, and URL specific comments.
So, how this ties into the BACK BUTTON is that you cannot find the same placement of Commenter X’s comments within 250 comments to the article as you scroll forward and miss finding it, and try hitting BACK-BACK-BACK to try to find the darn comment.
darn, many mistyped words:
You distinguish between e-commerce sites which have LINKED page numbers for results lists
Real talk! Based on my experienced, after entering a couple of details then I accidentally push the back button, the page again asked me for my details and it really annoys me a lot.
Thanks for the article!
From my standpoint being a mobile expert, I can only agree with the points raized by the author, which are also applicable to mobile apps. HTML5 is a great solution for the issues described.
I’ve been reading your new report on Product Lists and Filtering, and had some questions about this back-button topic. In the report, you give a nicely detailed case for the use of “Load More” vs pagination and lazy-load. I like the logic, but worry about the way “Load More” functionality can ruin the back button experience. What are your thoughts?
Hi Eva, I’ve written an article at Smashing Magazine on both the importance of not ruining the back button and how to implement it technically when using the “load More” button approach. You can find it here: https://www.smashingmagazine.com/2016/03/pagination-infinite-scrolling-load-more-buttons/#key-detail-back-button-support-through-history-pushstate
Excellent article , I had never paid attention to these problems during the creation of sites, except Accordion Checkouts , which happens a little too often for my taste and in many sites . The next site that I will realize much more careful about these things
Good article. What’s your thought for web-sites that do some kind of transactions between client & server where data is not cached at client side, but server trip is required OR some data processing happens at server side (say a financial transaction or DB updates).
Great article. It would be great if you could provide more insight into the actual research that went into the finding of these results. I assume these results came out of multiple usability tests but exactly how conclusive are your findings or is this more observational musings?
I’ll say one thing: official android youtube app
I hate it so much with it’s crazy back button handling it’s just unimaginable
© 2021 Baymard Institute US: +1 (315) 216-7151 EU: +45 3696 9567 firstname.lastname@example.org