Expires headers tell the browser whether they should request a specific file from the server or whether they should grab it from the browser’s cache.
The whole idea behind Expires Headers is not only to reduce the load of downloads from the server (constantly downloading the same file when it’s unmodified is wasting precious load time) but rather to reduce the number of HTTP requests for the server.
When you visit a website your browser is responsible for communicating with the webserver to download all the required files. It then compiles those files to display the web page. As web pages become richer in graphics and content, more and more files are being transferred between your machine and the webserver.
In the past, you would have an HTML file and maybe a few images to serve for your website, however many modern websites might have 50+ files per page to transfer. The files themselves can be a huge load increase by themselves but for each file, you must create a request and even if requests are fractions of a second, they can soon add up.
There’s a plugin that does this
Add Expires Headers
But this article advises against it so I leave them.
Expires Headers for SEO: Why You Should Think Twice Before Using Them