今天我在打开网站的时候发现速度很慢,通过F12浏览器分析,发现有这么一个地址:“ s.w.org ”。然后查看网页源代码,也发现有这么一段代码在WordPress网站头部。
<link rel='dns-prefetch' href='//s.w.org' />
什么是dns-prefetch?
DNS Prefetch 是一种 DNS 预解析技术。当你浏览网页时,浏览器会在加载网页时对网页中的域名进行解析缓存,这样在你单击当前网页中的连接时就无需进行 DNS 的解析,减少用户等待时间,提高用户体验。
目前每次DNS解析,通常在200ms以下。针对DNS解析耗时问题,一些浏览器通过DNS Prefetch 来提高访问的流畅性。
在网站速度优化中,dns-prefetch对网页预获取,在提高大型网站浏览速度方面有帮助。但是在wordpress中的s.w.org指向的是wordpress的国外官方网站,这对于我们来说毫无用处。
去除dns-prefetch
在 functions.php 文件中加入以下代码即可去除 DNS Prefetch:
remove_action( 'wp_head', 'wp_resource_hints', 2 );
听说下面的代码兼容性更好,你可以二选一试试。
function remove_dns_prefetch( $hints, $relation_type ) { if ( 'dns-prefetch' === $relation_type ) { return array_diff( wp_dependencies_unique_hosts(), $hints ); } return $hints; } add_filter( 'wp_resource_hints', 'remove_dns_prefetch', 10, 2 );