WordPress Logo

ご存知の方も多いかと思いますが、 WordPress のバージョン4.6以降から『DNSプリフェッチ』に対応して、外部ドメインの先行読み込みが実装されました。
この機能をサイトに付与するために、新たに <head> 〜 </head> 内にメタタグが自動的に挿入されるようになっています。

環境によって出力される情報が若干異なるようですが、概ね次のようなコードが出力されます。

<link rel='dns-prefetch' href='//ajax.googleapis.com' />
<link rel='dns-prefetch' href='//cdn.jsdelivr.net'/>
<link rel='dns-prefetch' href='//s0.wp.com' />
<link rel='dns-prefetch' href='//s.w.org' />

外部サイトの写真やスクリプト等の情報を大量に扱うサイトでは『DNSルックアップ』が頻繁に行われるため、この『DNSプリフェッチ』は非常に有効な機能となり得ます。
しかし外部コンテンツをそれほど使用していないサイトでは無用の機能です。

そこで、いつも通りテーマファイル内の『functions.php』にちょっとしたコードを追加して、この機能を無効化してしましましょう。

具体的には下記のコードを使います。

add_filter( 'wp_resource_hints', 'remove_dns_prefetch', 10, 2 );
function remove_dns_prefetch( $hints, $relation_type ) {
	if ( 'dns-prefetch' === $relation_type ) {
		return array_diff( wp_dependencies_unique_hosts(), $hints );
	}
	return $hints;
}

以下追記:

上で紹介したコードではなく、以下の1行を追加しただけでもdns-prefetchを非表示にできます。

remove_action('wp_head', 'wp_resource_hints', 2);

このコードを『functions.php』に記述後、出力されているHTMLをチェックすると link rel='dns-prefetch' 〜 が消えているのを確認できるはずです。
ぜひお試しください。