You can use cdn for any static file. Can be: any bundle build with webpack or other tool any js lib, module, your files, which you use (what you mentioned already) any css file (what you already do) any image (you also do that) any audio any video any HTML page for example if you build SPA you can use cdn for main page with main scripts and basic html literally any file used in your app, which is not generated dynamically by your backend But think it through. You do not want to put on cdn anything what need restricted access. Also it can be costly... For any dynamic content or data from API or DB use some cache. Cache will be "local" not spread around world like cdn, but you can build something on your own... For example use cache for http requests/response (like varnish) . You can duplicate such cache on multiple data centers in different regions. It will require some additional work to keep it consistant and up to date... CDN will speed up your page in context of network communication, but there is much more, what you can do, even in network context for example use http2, minimize files and use bundles like webpack, use "smaller" images (for example use webp instead of jpg) , optimize image (for example remove all metatags), use gzip with http...