Generalnie magazyn localStorage nie określa maksymalnego czasu życia danych, to jest właśnie magazyn bezterminowy, czyli Ty decydujesz świadomie o usuwaniu różnych elementów z LS. Wykorzystuj więc localStorage dla danych, które chcesz trzymać długo, np. jakieś dane konfiguracyjne personalizowane dla usera, jakieś cache itp.
Zainteresuj się też sessionStorage, co działa podobnie ale jest usuwane po zamknięciu sesji.
Alternatywnie możesz też używać cookies ale tu jest troszkę uwarunkowań, np. chociażby mniej przyjazna obsługa i limity na wielkość danych, ilość ciasteczek itp.
Moim zdaniem dla cachowania danych najwygodniejsze jest właśnie localStorage lub IndexedDB jeśli są to dane trwałe (przez trwałe rozumiem też świadome zarządzanie momentem ich tworzenia i likwidacji), a dla danych bardziej tymczasowych może sessionStorage.
Ciasteczka natomiast dopiero w trzeciej kolejności, gdy powyższe technologie nie dają tego co potrzebujemy.
P.S. Zawsze możesz też tworząc dane localStorage zapamiętywać ich czas utworzenia i np. w skrypcie podczas pobierania danych sprawdzać ten czas i w razie potrzeby usuwać zapis i tworzyć nowy więc jakby zasymulujesz czas życia.