Discovery often involves comparison. A listener opens a show, reads its description, returns to search, and opens another. Losing the query or list position makes that simple task feel like starting from zero.

Separate shareable state from temporary screen state. The query, result type, and sort can usually live in the URL. The loaded pages and scroll position can stay in your router or application state.

Restore a complete view

When someone returns, show the same input and selected filters. If cached results are still available, restore the list before adjusting scroll position. Scrolling an empty page first often sends the visitor back to the top when cards appear.

Use stable record IDs for item identity. An array index can refer to a different show after a refresh. If your layout changes with artwork loading, reserve image space so the restored position does not jump.

Decide how long results remain useful. A quick return from a detail page is different from reopening a saved tab a week later. You may keep the old list visible while offering a refresh, but make it clear when the order has changed.

Test beyond the back button

Try the browser's back and forward controls, a result opened in a new tab, and a direct link copied from the search URL. On mobile, also test the operating system's navigation gesture.

A direct link should rebuild a valid search from the URL without requiring an old memory cache. A return visit can restore richer temporary state.

This split keeps sharing predictable while making everyday browsing comfortable. It also reduces repeated API calls during a listener's short comparison session.