Leverage Browser Caching

It means to let users cache certain assets that don’t change dynamically. Such as .css, .js, and images.

I’ve only ever done this at the server level. You need to set the max-age headers.

However, you can run into issues where if you set an age too far in the future, your assets won’t be updated on all your user’s computer when you update them. URL fingerprinting is a good way to get around this and keep large (1 week or more) max-age headers.

https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/http-caching#invalidating-and-updating-cached-responses