Infinite Scroll and Pagination
Three ways to handle long result sets, each with a different cost, and the right choice depends on the task.
Definition
Long lists can be paginated, extended by a load-more control, or loaded continuously as the user scrolls. The decision affects findability, accessibility, and whether users can return to a position.
Craft convention. True because the industry converged on it. Breaking it costs familiarity, not correctness.
On this plate
Reach for this when
- Result sets exceed one screen.
- Deciding how users move through long lists.
- The content is a stream that is browsed rather than searched, and no item needs to be found again by position.
Common mistakes
- Infinite scroll on goal-directed search results.
- Losing position when returning from a detail view.
- Unreachable footer content.
Choosing between them
| Approach | Good for | Cost |
|---|---|---|
| Pagination | Goal-directed search, results users return to, anything needing a footer | Extra interaction per page. Feels dated in feeds. |
| Load more | Browsing where position matters | Manual, but preserves scroll position and keeps the footer reachable. |
| Infinite scroll | Exploratory feeds with no destination | Unreachable footer, lost position on return, memory growth, poor keyboard experience. |
If the stream is the right shape
Do
- Restore the position when the reader returns from an item.
- Provide a route to anything that would otherwise live in the footer.
- Announce new items through a live region, and keep them reachable by keyboard.
- Offer Load more as the manual variant when position matters.
Do not
- Use it where the reader needs to find their way back to a specific item.
- Put essential links in a footer the reader can never reach.
- Load endlessly on a slow connection with no indication of cost.
- Reset the scroll position on navigation back, which is the single most common complaint.
Making return navigation work
Losing the reader's place is the defect that makes people abandon a stream, and it is entirely fixable.
- 1
Give every item a URL
Opening an item is navigation, not a state change, so the reader can share it and come back to it.
- 2
Record the anchor, not the pixel offset
Store which item was at the top. Offsets break the moment an image loads at a different height.
- 3
Restore the pages that were loaded
Returning to page one of a stream the reader had scrolled through ten pages of is the complaint, not the scroll position itself.
- 4
Virtualise, and cap what is retained
Long sessions otherwise grow memory until the tab becomes unusable on mid-range phones.
- 5
Give the footer somewhere else to live
Anything essential that would sit below the stream moves into the header or a sidebar, since the bottom is unreachable by design.
The complaint, drawn
In practice
- i.
Load more as the middle ground
CataloguesA load-more button keeps scroll position on back navigation, keeps the footer reachable and still avoids page reloads. It is frequently the right answer when a team is arguing between the other two.
- ii.
Back, and back to the top
Lost positionOpening an item from position four hundred and returning to the top of the list makes the pattern unusable for browsing. Position restoration is not a refinement here, it is the requirement.
Commonly confused with
Close neighbours that get substituted for each other. The difference is stated first, then the condition that picks one over the other.
Pagination
ComponentContent split into numbered pages, each one a stable, linkable position.
Key difference
Pagination gives every item an address you can return to, count and share. Infinite scroll removes the interruption and gives that up: position, footer access and the ability to say where you were.
Use Infinite Scroll and Pagination when
- The stream is browsed rather than searched, as in a feed.
- No individual item needs to be found again by position.
- Nothing important sits below the list.
Use Pagination when
- Readers need to return to, cite or share a position in the set.
- How much is left matters, as in search results or an archive.
- There is a footer people are expected to reach.
Local chart
PAT·021 · Region III · Grid E1
This entry and the entries it is stated to connect with. Each line is labelled with what the connection means.
Continue from here
Each link says what the connection is, so you can tell a principle from an alternative from a thing people mix this up with.
Applies when you are designing
Principles behind this
The reasoning this solution is an application of.
- Performance as User ExperienceFND·054 · UI foundation
Depends on
Get these right first, or this one will not hold.
- Keyboard NavigationA11Y·002 · Accessibility
Often used with
These usually appear in the same screen or the same decision.
- CarouselCMP·027 · Component
- FilteringPAT·004 · Pattern
- Loading StatesPAT·011 · Pattern
- SearchPAT·002 · Pattern
Check your work
Review passes that test whether this was done properly.
- Mobile UX ChecklistCHK·003 · Checklist
Short definition
The one-paragraph version, for when that is all you need.
- Infinite ScrollTERM·052 · Term
- Lazy LoadingTERM·128 · Term