Hi,
Unfortunately, the safest ways would be to hire someone to inspect your theme or plugins and find out where that file comes from.
If you look at the html “view-source” page, you should be able to see the “handle” name of the css. It looks like this:
<link rel='stylesheet' id='font-awesome-css' href='//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.3.0/css/font-awesome.min.css?ver=4.3.0' type='text/css' media='all' />
You have to look at the “id” and remove the -css part, so for this specific example, the handle name is font-awesome.
You could then exclude this file from loading with https://codex.ww.wp.xz.cn/Function_Reference/wp_dequeue_style
However, you would need to create a static file for it and enqueue it on the same exact position, using priorities or dependencies.
I seriously cannot recommend this unless you’re somehow comfortable with basic coding. Also make sure you try this after you made a backup of the site… and preferably, on a staging copy.
There are some plugins that allow you to dequeue scripts and css files, such as this one: https://ww.wp.xz.cn/plugins/wp-asset-clean-up/
You would still need to enqueue the proper code in a static file.
Examples:
https://code.tutsplus.com/tutorials/loading-css-into-wordpress-the-right-way–cms-20402
Also bare in mind, some themes load different css code per page dynamically.
There’s not much you can do if the url of the css file changes from the varnish point of view. It’s a new url every time, therefore is never cached.
You could setup varnish to ignore the query strings on that particular file or directory, but easiest way is to do that via the free cloudflare.com service.
You could create a rule to force caching on a specific rule…
Unfortunately, I cannot help you further with that.
Thanks for reporting.