Pagination has been around since the earliest days of the web. You’d think, by now, we’d have figured it out.
We haven’t.
Infinite scroll. Numbered pages. “Load more” buttons. Cursor-based pagination. Offset-based pagination. Every approach has trade-offs, and every user hates at least one of them.
Infinite scroll feels modern until you can’t find the thing you scrolled past thirty seconds ago. “Load more” is polite but adds clicks. Numbered pages feel old-fashioned but at least give you a sense of where you are.
I’ve tried most of them. In the end, we went with numbered pages.
I work predominantly in the public sector, which means everything I build has to meet WCAG accessibility standards. That’s not a nice-to-have. It’s a legal requirement and, more importantly, the right thing to do.
Infinite scroll is a nightmare for screen readers. Focus management breaks. Users lose their place. There’s no reliable way to communicate “you’ve reached the end” when there is no end. Keyboard navigation becomes unpredictable.
Numbered pages, for all their visual simplicity, solve most of these problems. Users know where they are. They can navigate forwards and backwards. Screen readers can announce the current page. Focus stays predictable.
It’s not glamorous. But it works for the widest range of people, and that’s the metric that matters.
The real challenge isn’t choosing a pagination style. It’s what happens when you combine pagination with sorting, filtering, and search.
If someone filters a table and the results span three pages, what happens when they change the sort order? Do they stay on page two? Go back to page one? What if the item they were looking at is now on a different page entirely?
These aren’t edge cases. They’re the normal way people interact with data. Every decision I make about pagination ripples into how I handle state, URL parameters, and user expectations.
I’ve spent more time than I’d like to admit debating what constitutes “high value” data on the first page. Because if your pagination forces users to click through to page four to find what they actually need, you’ve built pagination that works technically but fails practically.
There’s a tension between showing users everything and showing them the right thing. Accessibility best practice pushes you towards clear, bounded pages of content. But stakeholders often want dashboards that display everything at once, sortable, filterable, scrollable.
The compromise is usually: paginate by default, make the page size sensible, and invest in good search and filtering so that pagination becomes the fallback rather than the primary navigation.
It’s not a perfect answer. But pagination was never going to have a perfect answer. It’s a solved problem in the same way that “how should we organise a bookshelf?” is a solved problem.
Everyone has a system. Nobody agrees on which one is right.
Somehow, after decades of building websites, the best we’ve collectively managed is “here are some numbered links at the bottom of the page.”
Which, honestly, is fine.