Skip to results
UX Handbook
/
×
tfmstyle.com
→
Load more
Design Pagination Systems That Stay Reliable at Scale
Components · pagination
Updated 2026-07-28
Avoid relying only on offset pagination for large datasets. Skipping a fixed number of rows can create inconsistencies when data changes. If new records are added near the beginning of a list, users may see duplicate items or miss items entirely.
Use cursor-based pagination for dynamic data. Instead of saying “skip 500 rows,” paginate based on a stable reference, such as “load items after this ID.” This keeps results consistent even as new data is added or removed.
Choose the pagination pattern based on the user’s goal:
Use numbered pagination when users need to jump to a specific location.
Use Load More when users want controlled browsing.
Use infinite scroll for continuous discovery experiences like feeds.
Avoid overwhelming users with hundreds of page links. When there are many pages, use a condensed pagination pattern:
Keep the first page visible.
Show the user’s current page range.
Keep the last page accessible.
Use gaps or ellipses to represent hidden pages.
Preserve user position when navigating away and returning. If someone opens a detail page and goes back, restore their previous row and scroll position instead of sending them back to the top.
Keep pagination state in the URL. A page number in the address bar allows users to:
Refresh without losing their place.
Share a specific page.
Use browser navigation reliably.
Treat pagination as part of the data experience, not just a navigation control. A good system keeps users oriented, preserves context, and makes large datasets feel manageable.
Related guides
Design Pagination Versus Infinite Scroll
Design Scroll Restoration
Design Buttons Around User Intent
Design Component States Completely
Design URL Structure as an Interface