Yes, you can load non-essential scripts "later" to avoid processing them before displaying the initial page.
There are several approaches:
- You can mark the script tag as defer or async (see MDN for details) so the browser will load it asynchronously and not hold up page display for the loading or running of the script.
- You can load it dynamically only as needed.
- Load scripts at the end of the
<body>
right before the </body>
tag so the page can display before they are loaded.
Before you proceed down this path, I would highly suggest that you measure the loading resources of your page and find out where the time is really going. Premature optimization before you've measured where the time is actually going is rarely the most effective way to improve things. The Chrome debugger can show you a lot of data about resource load times.
Also, remember that a design that optimizes for effective caching can be highly effective since one your scripts are loaded for the first page on your site, they will be cached for all future pages and will load very, very quickly from the browser disk or memory cache.