Choose what the address should carry

Category, material, size and sorting are candidates because they describe the view. Customer names, private prices, contact details and session keys should not be placed in the address. In an illustrative catalogue, parameters such as “material=steel” and “size=20” describe a selection that can be restored. These values are examples; the business must define its real product vocabulary and units.

Test sharing and browser history separately

URLSearchParams works with query-string keys and values. History.pushState() can add a browser history entry without loading the page itself. Using these tools is not enough: the application must read the address and restore the filters. Decide which changes deserve meaningful history steps rather than recording every tiny adjustment.

Example: a technical purchasing conversation

An illustrative link opens a selection for stainless steel, 20 mm and ascending product code. The buyer visits a product and returns to the same conditions. Three weeks later, a discontinued item should not turn the shared view into a blank screen: show remaining results and the active conditions. If nothing matches, offer a way to clear filters or return to the category. A URL does not freeze stock data. A fixed quotation record requires a separate document or authorised workflow.

Try it on a fresh device

  • Apply filters, change sorting and copy the address.
  • Open it in a separate browser and check the restored choices.
  • Visit a product and use Back to return to the list.
  • Test multiple values and values containing Turkish characters.
  • Try an old address containing a removed or unknown selection.
  • On a phone, check that active filters are visible and removable.

A shareable URL is not a decision to expose every filter combination as a separate search-engine page. Review indexing requirements independently.

Describe the scope precisely

Instead of requesting “filters”, ask for a selected view that can be shared by address and restored on another device. That difference can be demonstrated in acceptance testing. Our catalogue filtering guide discusses which choices belong in the interface. Include sharing, return navigation and invalid selections in the website design scope.

Let the person sharing the address see what is being shared. A summary such as “Stainless steel · 20 mm” can sit beside the copy action, with a short explanation that this is a live selection rather than a fixed quotation. If sales staff discover that they selected the wrong material, they can share a corrected address instead of expecting the customer to infer a changed meaning.

Frequently asked questions

Does a shared URL preserve the list forever?

No. It can preserve filter conditions while the underlying product data and results change.

Must every filter change create another page?

No. Shareable state, browser history and search-engine indexing are separate design decisions.

Sources & further reading

MDN — URLSearchParams ↗MDN — History.pushState() ↗
Web design & developmentLet’s discuss this service ↗