Possible Duplicate:
Pagination Best Practice

There seem to be quite a few implementations of this feature. Some sites like like Stackexchange have it laid out like this:

[1][2][3][4][5] ... [954][Next]

Other sites like game forums may have something like this:

[1][2][3] ... [10] ... [50] ... [500] ... [954][Next]

Some sites like webcomics (XKCD comes to mind) have it laid out like this:


Reddit has a very simple pagination with only:


Sites like Stackexchange and Google also allow you to change how many results you want per page. Personally, I have never used this feature. Is it even worth including or does it just further confuse the design with needless features?

Personally, I have only ever seen the need for the webcomic style (without the random). If I need to go to a specific page (which is very, very rare) then I can just edit the address bar. Is it good design to make something more complex for rare occasions where it might make save the user some time? Is having to edit the address bar to navigate the site effectively in some circumstances bad design?

  • 1
    This is called pagination, not navigation
    – Eran Galperin
    Mar 20, 2011 at 2:10
  • I have always hated these types of navigation because I don't always know which pages I want to go to (such as stackexchange where the page a question is on changes). Google images and others are moving to Ajax-based solutions. Looking at pdr's solution, maybe we could use a tree-based mouse solution so we wouldn't have to wait for those intermediate pages to load. There are lots of possibilities, maybe it will give me some things to try.
    – WuHoUnited
    Mar 20, 2011 at 4:58
  • possible duplicate: ui.stackexchange.com/questions/789/pagination-best-practice Mar 20, 2011 at 18:29

4 Answers 4


The best way to answer that question is to let your users do so, not by direct Q&A, but by indirect observation techniques commonly known as hallway tests.

The direct approach forces your user to overthink the problem. If you directly ask me, "Will you need to jump to page 117?", I'll likely scratch my head and say maybe.

But the indirect approach involves having your users use the software in their day to day activities. In this scenario, find out how much data your users have to upload into your system and prepare the system with that amount of data. Ask them questions. If this is a Customer Relation Management system that returns search results, consider asking them to locate a specific record and observe their actions. You may find that they're able to search for exactly what they're looking for. If they spend a lot of time searching, then maybe you need something more specific.

Whatever you do, don't help them! Let them figure this out on their own. The most important part of a hallway test is that you observe and tell the guinea pig to pretend you aren't there.

By watching and observing your users stumble around the software, you'll learn a lot of valuable points about what needs to be fixed to make the system user-friendly and complete. Remember, it depends on what the purpose of the software is and what the goals of your users are. You may find that what frustrates your users the most is something completely different than the pagination problem.

Finally, keep in mind that a simplistic design is more friendly than an overly complex one. Don't give the users complex controls unless you see evidence that they need them; otherwise, you may subconsciously overwhelm your users with noise and useless information.

Of course, most of your users won't have a degree in graphics design, so they likely won't tell you "the extreme pagination is giving me a headache"; instead, they'll just have a bad feeling and won't know why.


This is a really good question; I've been thinking about this a lot lately. I dislike systems where I can't get to page 454 in a few clicks, so




or even Lolcats'

1 [2][3][4][Next][Last]

where clicking on [4] will give you

[First][Prev][1][2][3] 4 [5][6][7][Next][Last]

are all annoying.

However, I'm also not keen on having links to every page on every page. So I'm growing increasingly enamoured with

1 [2][3][4][5][6][7][8][9][10][20][30][40][50][60][70][80][90][100][200][300][400][500][600][700][800][900][954]

Click on 400 and get

[1][100][200][300] 400 [401][402][403][404][405][406][407][408][409][410][420][430][440][450][460][470][480][490][500][600][700][800][900][954]

Click on 450 and get

[1][100][200][300][400][410][420][430][440] 450 [451][452][453][454][455][456][457][458][459][460][470][480][490][500][600][700][800][900][954]

And then you can click on 454.

That said, personally, I'd be as happy with a variation on the Lolcats theme but where it replaces First and Last with actual numbers and a box where I can enter a specific page number.

[< Prev][1]...[6][7][8] 9 [10][11][12]...[954][Next >] Or Enter Page Number [_] and [GO]

And yes, I know I can change the URL, but most people don't which makes a box very useful.

  • That'd be nice, except it's usually impossible to know which page number you want anyway. If it won't fit on one page, let me search interactively (thanks, jQuery!)
    – Donal Fellows
    Mar 20, 2011 at 7:13
  • Atlassian Bamboo (for one) supports the "enter page number" functionality. It says "Plan status: #3028 was successful". When clicking on the "page number" it turns into an input field making it easy to view status for build #123. I have not been able to find a live example, though :(
    – jensgram
    Mar 21, 2011 at 7:38

Since (in the paging) we start counting from the latest entry and back to the first one, the numbers go from 1 to n, which can be a problem when we bookmark a link from a list with a pager. Lets say that there are 100 hundred titles in a database. We list (page) them 10 on a page, which creates 10 pages of titles(since 100/10=10). Lets say that the database is filled with titles very often and in one week the title that was on the first page now is on the second or third. This tells us that the paging style we use currently is flawed. The direction should go from N to 1 so the first 10 titles will always be on the page number 1, and not n.

Since there can be a lot of pages in the "pager" we need a system how to reach all the pages in that list. We have the previously mentioned methods

[1][2][3][4][5] ... [954][Next]

[1][2][3] ... [10] ... [50] ... [500] ... [954][Next]



[First][Prev][1][2][3] 4 [5][6][7][Next][Last]

and then my method:

page n out of n

[Prev][Next] or enter page[__]

This method is good because:

  • tells the user exactly where he/she is
  • gives the control to go back and forward
  • ...or enter arbitrary number in the range 1 to n

if we combine this with numbering pages chronologically, where the first page we see is with the largest page-id, and the last is with the smallest, we'll get a pretty user friendly method for paging.


The key determinants would be your users as jmort253 mentioned and an analysis of the type of information you're paginating (I don't know if this is a word... but if not it should be! ;). For example there are times where a user might be able to determine that they need to jump x number of pages forward to get to what they're looking for. Listings with dates, names, ratings etc. in order lead to the possibility of the user being able to reasonably guess how far they need to jump a large number of pages to get to what they want faster. However, theres times where this isn't the case. On here for example the listing order is constantly changing so really one wouldn't likely be able to do what I just described (at least not as far as I can see). Another thing to consider is that you may want to sometimes force your users to view content in a certain order (can't think of any examples right now but the idea still is possible). Overall in my opinion I like pdr's suggestion of:

[< Prev][1]...[6][7][8] 9 [10][11][12]...[954][Next >] Or Enter Page Number [_] and [GO]

the best! But with what ever you choose remember that it's impossible to please everyone so be simple, practical and expect people to complain! ;)

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