amppackager icon indicating copy to clipboard operation
amppackager copied to clipboard

Preconnect/dns-prefetch resource hint against web.dev best practices

Open schlessera opened this issue 3 years ago • 2 comments

I think this combined preconnect and dns-prefetch resource hint is not always doing what it is supposed to do depending on the browser:

https://github.com/ampproject/amppackager/blob/f1d819c86e9ab7f1f1a6578b7b4017e60fa02dc8/transformer/transformers/linktag.go#L69

As far as I can tell, the dns-prefetch is meant to be the fallback in case the preconnect is not supported (as the preconnect would include a DNS resolution). However, the dns-prefetch is mentioned first, which seems odd.

Also, according to web.dev, best practice is to use two separate hints with the dns-prefetch as the second hint serving as a fallback, as using a combined hint will break in Safari: https://web.dev/preconnect-and-dns-prefetch/#resolve-domain-name-early-with-reldns-prefetch

schlessera avatar Nov 30 '20 17:11 schlessera

Related issue in Node.JS optimizer: https://github.com/ampproject/amp-toolbox/issues/960

schlessera avatar Nov 30 '20 17:11 schlessera

Sorry I missed this. For reference, in Google this was originally added in http://cl/239478133 per http://b/118606783.

Since you landed a fix on the optimizer, I think it makes sense to do the same here, and it seems safe to do so.

twifkak avatar Feb 18 '21 19:02 twifkak