I recently did an overhaul of the website and one of the issues I was getting from Google Page Insights was that I needed to prioritise visible content.
Which was confusing as I could see a lot of the content (in this case, a blog post). So I set about trying to find out what it was. I made my way through the templates deleting things one by one until I deleted Typekit.
You’ll recognise this
(function(d) { var config = { kitId: 'xxxxxxx', scriptTimeout: 3000, async: true }, h=d.documentElement,t=setTimeout(function(){h.className=h.className.replace(/\bwf-loading\b/g,"")+" wf-inactive";},config.scriptTimeout),tk=d.createElement("script"),f=false,s=d.getElementsByTagName("script")[0],a;h.className+=" wf-loading";tk.src='https://use.typekit.net/'+config.kitId+'.js';tk.async=true;tk.onload=tk.onreadystatechange=function(){a=this.readyState;if(f||a&&a!="complete"&&a!="loaded")return;f=true;clearTimeout(t);try{Typekit.load(config)}catch(e){}};s.parentNode.insertBefore(tk,s) })(document);
Low and behold, no longer did I need to prioritise visible content. Also, no longer did I have a nice font.
Bugger!
But I wasn’t deterred and it wasn’t long before I had a solution. Turns out, you can use the Google Font loader with Typekit and amazingly, it doesn’t cause the issue I was getting. This is the code
WebFontConfig = { typekit: { id: 'xxxxxx' } }; (function(d) { var wf = d.createElement('script'), s = d.scripts[0]; wf.src = 'https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js'; wf.async = true; s.parentNode.insertBefore(wf, s); })(document);
So basically, use the latter bit of code if working with Typekit if you get the prioritise issue.