I think is not a good practice use query strings because it affect the site performance, as you said before, it prevent to be cacheable, so every time it should be loaded (although is just a small size file).
Query strings are still a popular way to version assets, and they don’t normally cause major issues.
The query strings this plugin uses should not prevent the fontello font from being cached in most cases – the vast majority of browsers will load fontello on the first visit, but use a cached copy on subsequent page visits.
To test this yourself, you can:
1. Visit a site in Chrome that uses Simple Social Icons, such as https://www.genesisframework.com/.
2. Open the Network tab, search for Fontello, then clear your cache and refresh the page. You’ll see that the site loads the font the first time with a status of 200 and a size of 5.9KB: https://d.pr/i/qRlG
3. Refresh the page. You’ll see that the resource size now says “from cache” to indicate that the file was served from a local cache and not requested from the server this time, despite the query string. https://d.pr/i/14SqF
The only time the query string may cause an issue is if:
a. A (typically quite old) proxy server ignores the query string and caches an old copy of the font, then serves it instead of the newly updated one.
b. You’re using a CDN that’s configured to ignore query strings (not generally the default). In this case, you may also end up serving a stale version of the font if the CDN isn’t refreshed after a plugin update.
If you’re not experiencing either of these issues, the query string should pose no problem. If you’re running into those issues and this starts to affect other plugin users too, I’d be very happy to pass on your recommendation to switch to file name versioning instead of query string versioning.
I hope that explanation proves useful, and many thanks again for the feedback!