The End of Pagination

What do you do when you have a lot of things to display to the user, far more than can possibly fit on the screen? Paginate, naturally.


This is a companion discussion topic for the original blog entry at: http://www.codinghorror.com/blog/2012/03/the-end-of-pagination.html

On mobile devices the experience is often better if you keep pagination and get rid of scrolling instead.

I don’t know about that; Twitter’s mobile client does endless pagination on mobile, just like the desktop web UI. Remember there’s still a “page size”, it just depends how much you need to scroll down to trigger the next load.

Pagination has one really helpful power that endless scrolling lacks: the ability to quickly jump to the end of the list, or (sometimes) the middle, etc. Not every application requires this, but I sometimes find endless scrolling to be truly irritating when I know I need to go deeply into the information and so end up scrolling… well, almost endlessly.

I’m going to speculate.

A lot of pagination of this sort dates back to when companies like Google had to distinguish themselves with the sheer mass of available data they could flaunt and their skill at having a huge field of sites to choose from when a user typed in terms. You’d type in a search term like “Dog” at a time when other search engines and sites might offer you 800 or even 2,000 matches to your query, Google could say “Oh, that’s 150,000 matches here… want to check?”

If you spend any time looking down those goat paths, and regardless of your theory, I’ve had to spend time doing just that, leafing through hundreds and hundreds of search matches looking for variations or possibilities, then you’ll find they actually collapse. They’re often not really there, not actually present, but just showing you what you COULD get. They almost always require refinement. So either the whole thing is better (people who want to paginate like that exist, me for example) or it’s worse (it’s actually a lie, nobody is going to give you all you can eat if you try to eat everything).

Your article talks mainly about pagination of search results, but that’s only one use case where many ‘items’ need to be shown to the user. Facebook and Twitter (as mentioned) use this, and it’s certainly not a searching/filtering issue – that’s just the data requested by the user.

Facebook I think have a very good approach by giving semantic meaning to their “pages” on the user timeline: you jump to “2009”, rather than “page 5”. Certainly, it isn’t always as easy to group results meaningfully like this, but when possible it’s a very good outcome for the user.

I’m always surprised when I see a website with really small pagination buttons, especially when its a shop and there are many pages of products that you need to look through. If the customer needs to really concentrate to know there is more than one page of results, it must impact sales massively.

i think it depends where you are, if you are in a generic environment like google search you are essentially trying to filter all the stuff they have into things you want to know, you are focussed on your search result. On the other hand you can have large result sets of relevant data. the context is already as you wish. A good example of this is something like netflix or film flex in the uk; you want to watch a film of a specific genre but you don’t know which one, there are pages of results and you are happy to click next or page 7 and look at the items that are there. I guess the key here is perception of the target you are searching for. On google you put terms in and expect focussed results, you tailor your search terms, use quotes(") and aim to get the stuff you want. On a film site you may want to watch a comedy - you already have the filtered results but you want to browse these to find something maybe you haven’t seen but (in my case) check all the stuff that is available and make sure its the best one there. Ultimately its the perception of finite versus infinite, anything over 100’s is probably cognitively treated as infinite (it is with me) but when you already perceive the results are focussed then you may be prepared to venture beyond page 1…

The ability to jump to a specific point in results matters. For example, searches which let me sort by date, price, etc. Times when I like paginated search results are sorting by date then jumping to something a few years ago, sorting by price then clicking to something in a price range I want and being able to see the high and low end quickly, and being able to quickly click to page 5 of results if I rerun a search and want to go back and find something I know exists.

Being able to jump to a specific point in a list will make perfect sense to anyone who has ever completely opened another person’s Facebook wall or Twitter feed in order to see what that person was up to 5 years ago. Then again, maybe they want that to be hard to do and only open to the techy or persistent.

I don’t know if Picasa still does it, but the Windows Picasa client circa 2005 or so had a scrollbar like control but it stayed anchored in the middle, and when you pulled it down you went downwards, the further down the faster, and vice versa. This saved you the confusion of thinking your scrollbar represented where you were in the list, but added new confusion by co-opting a familiar control for a new purpose… not sure if it was a win, but I kind of liked it myself…

In terms of the scrollbar indicating “how much more is there”, I’ve noted that a lot of less advanced users don’t have much comprehension of this. And in the Apple universe at least the scrollbar has gotten demoted significantly (since the start with iOS, now with Lion on OSX), not without controversy.

I implemented endless pagination on http://unicodinator.com (which lets you scroll through Unicode 0000 to EFFF) and it works really, really well. The trickiest bit is to not only add content in the direction the user is scrolling towards quickly enough and far enough ahead that the user can’t get ahead of you, but also to remove content in the direction the user is scrolling away from so as to not choke the browser. Luckily with this site the content is fully client side generated and is pretty lightweight. With some other projects that have to load dynamically getting all this timing correct is much more difficult to get perfect. Still, I think it’s a really worthwhile technique…

FYI here is a jQuery plugin for doing endless pagination: https://github.com/fredwu/jquery-endless-scroll

I find the endless pagination thing obnoxious on mobile devices. First of all it taxes the browser after several pages, and if you switch applications long enough for the browser to think it needs to reload, you’re stuck with the first collection and have to scroll a ton to get back to where you were. I also have a problem with the way some endless pagination techniques work on the desktop as well; Facebook’s new way of doing lists is damn near impossible to scroll by grabbing the scroll bar and dragging.

I would like to see a smarter endless pagination where it’s not just added to the bottom in an ever-growing page, maybe instead it also pops the last one/set off the top, so you’ve always got a set number of results visible and you can “scroll” through that, or something similar. Seems like that would make the next/previous sets easily cache-friendly for speed and should still be state-friendly.

Doesn’t pagination also allow new Ads to load with each page? How does this work with endless scrolling?

What I can’t stand is all those article-based sites (such as news sites) that insist on breaking their articles up into bite-size chunks at arbitrary points, when they’re really not so long that they can’t be put on a single page. Usually the actual text content is just a small part of the page, surrounded by all sorts of wasteful crap that makes each page take too long to load; a well-designed page with the entire article in one page, and less superfluous junk around it, would actually load faster than the individual pages of the broken-up article.

That really depends on the type of site. When you go to a shopping website, and sort the results by price, you might want to go to the middle page to see what’s available in that range. You can’t really do that conveniently with infinite scrolling.

who the heck is visiting page 964 of 3810?

When I’m looking at all the lolcats or demotivational posters. One of my favorite lolcats doesn’t show up in indexing, but you have to search and then click “yes I want to click on this”.
http://icanhascheezburger.com/tag/mapquest/

Skip a week of browsing such a fine waste of time, and you can easily end up looking through 30-50 pages of time wasting stuffs.

There are sites I’m not happy with because cut off your browsing at page 20 (such as “overheard in NY” or “overheard in the office”).

I agree with Maffyoot:
in many contexts, infinite pagination is actually a hindrance.

Think about a list of 300 items, which I want to review, one by one.
In this case there is no “perfect search term” to use to shrink the list.

My favorite interface let me decide how many items per page I want, say 100, after which I can open the complete list in 3 tabs in the browser.

Having everything in a single page would make the list too long, and besides the problem of server processing resources / network lag, it would make it hard for both me and the browser to scroll up/down with enough speed and precision to any given desired line.
I would also have a hard time remembering the visual whereabouts of a given item in the page (that’s quite a problem with infinite scrolling in any context: a line which used to be “close to the bottom of the page” will be “close to the top of the page” after a bit more scrolling).
Otoh having 100 items per page, with many pages open, feels much more natural - just like one would browse, say, a book!

Last thing: all the nice “perks” which make infinite scrolling bearable, like allowing deep linking and spidering, currently cost a lot of development time, and many developers fail to grok the concept properly (or just are not given enough time/money for that), so we see a lot of bad implementations, which give us worse user experiences that we had before.
I still see plenty of sites that only allow a single sorting order in their search results, and have no support for facets/ drill down. Those features are much more useful than infinite scrolling…

Don’t forget Duckduckgo’s endless scrolling too. So you can get a rough-ish idea of what life would be like if Google actually implemented that.

Either the page loads more items automatically when you scroll down to the bottom

There is an addon that does that. It’s called auto patch work and it’s one of the most useful addon I ever used.

Didn’t searchmash.com do seamless pagination. Or at least load more content when you pressed Space?