Design Scroll Restoration
Navigation & IA · navigation, performance, loading
Updated 2026-07-28
- Put people back where they were. Opening item forty in a long list and returning to the top of that list is the fastest way to make browsing feel punishing.
- Restore the position after the content is back, not before. Setting the scroll offset on an empty page leaves the user at the top when the list finally renders.
- Anchor to the item, not to a pixel offset. If the list has changed length, the number is meaningless and the item is still findable.
- Highlight where they came from briefly. A subtle marker on the row just visited confirms the position without demanding attention.
- Keep the loaded pages. If the user had loaded six pages of results, returning to page one and asking them to load five more is worse than not restoring at all.
- Do not restore on a fresh navigation. Arriving at a section from the menu should start at the top, and only going back should return to a saved position.
- Cache the state for a sensible window. Restoring a position from three days ago is more confusing than starting fresh.
- Handle the infinite list honestly. If you cannot restore deep positions, keep pagination in the address so the user can at least return to the right region.
Losing someone's place is a small bug that turns browsing into a chore, and it is almost always fixable.
Related guides