Important: The information in this article is over 12 months old, and may be out of date or no longer relevant.
But hey, you're here anyway, so give it a read see if it still applies to you.
I do admit that I like to be in control of the markup of a site - I like to know what is being loaded, and why – and I like to have some say in what gets loaded and where.
Google PageSpeed gives your site a rank for its performance on desktop and mobile, and one of those factors is about loading external assets – JavaScript, CSS, fonts, etc.
In a template in Joomla 3, there’s that handy line to pull in the assets needed for the site, especially those required by any component or plugin you may be using:
1<jdoc:include type="head"/>
But what if I don’t want it all in the head of my site? Sorry, Joomla 3 won’t allow me to work that way. A Google around shows that I’m not the only one wanting an alternate way. There are solutions of changing core Joomla files, but that’s such a no-no – when you update Joomla, the changes are lost. So that is totally not an option for me.
But on my dev machine, I have a sandbox for playing with different things - and one of those is the current Alpha build of Joomla 4.
What is really cool about Joomla 4 is the introduction of different includes to help placement of different parts of the code – so for example, scripts could be loaded below the fold to help with increasing the site’s Page Speed ranking and performance.
1<jdoc:include type="metas" />2<jdoc:include type="styles" />3<jdoc:include type="scripts" />
It will be so handy to have this greater control on what goes where – and have this functionality native out of the box.
But Joomla 4 is still in Alpha – and while the current roadmap aims for a RC by 4th Quarter 2018, there still seems to be a lot of work to complete. A stable release is currently planned for the first half of 2019.
This minor tweak of the include makes my life so much happier as a developer. I’m such a control freak.