How to really defer loading javascript
Many people say "just use defer" or "just use async" or others say "just put your javascript at bottom of page". None of the above are solutions to the problem of actually allowing a webpage to fully load and then (and only then) loading external JS. Nor will any of the above always get you past that "Defer loading of javascript" warning you are getting from the Google page speed tool. This solution will and is the recommended solution from the Google help pages.
Source: www.feedthebot.com