Code xoá dns-prefetch s.w.org trong WordPress

Trong WordPress, <link rel="dns-prefetch"> được sử dụng để cải thiện tốc độ tải trang web bằng cách nạp trước DNS giúp cải thiện DNS query

Khi trình duyệt thấy một thẻ <link rel="dns-prefetch">, nó sẽ bắt đầu quá trình thực hiện prefetch DNS, nghĩa là nó sẽ nạp thông tin DNS từ máy chủ mà trang web cần truy cập trước khi thực sự yêu cầu tài nguyên đó. Điều này giúp giảm thiểu độ trễ khi trình duyệt cần tải các tài nguyên từ máy chủ được đặt sẵn DNS.

Nhưng trường hợp <link rel="dns-prefetch"> sẽ nạp trước DNS cho máy chủ chứa các tài nguyên của WordPress.com (s.w.org) nhưng hầu hết việc này không cần thiết vì rất ít file tĩnh lưu trữ từ s.w.org

Đây là code mặc định do WordPress tạo ra

<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <link rel="profile" href="https://gmpg.org/xfn/11" />
    <title>Clean wp-head</title>
    <link rel='dns-prefetch' href='//s.w.org' />
    <link rel="alternate" type="application/rss+xml" title="Clean wp-head » Feed" href="https://clean-wp-head.dev/feed" />
    <link rel="alternate" type="application/rss+xml" title="Clean wp-head » Comments Feed" href="https://clean-wp-head.dev/comments/feed" />
    <script type="text/javascript">black
        window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/12.0.0-1\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/12.0.0-1\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/clean-wp-head.dev\/wp-includes\/js\/wp-emoji-release.min.js?ver=5.2"}};
        !function(a,b,c){function d(a,b){var c=String.fromCharCode;l.clearRect(0,0,k.width,k.height),l.fillText(c.apply(this,a),0,0);var d=k.toDataURL();l.clearRect(0,0,k.width,k.height),l.fillText(c.apply(this,b),0,0);var e=k.toDataURL();return d===e}function e(a){var b;if(!l||!l.fillText)return!1;switch(l.textBaseline="top",l.font="600 32px Arial",a){case"flag":return!(b=d([55356,56826,55356,56819],[55356,56826,8203,55356,56819]))&&(b=d([55356,57332,56128,56423,56128,56418,56128,56421,56128,56430,56128,56423,56128,56447],[55356,57332,8203,56128,56423,8203,56128,56418,8203,56128,56421,8203,56128,56430,8203,56128,56423,8203,56128,56447]),!b);case"emoji":return b=d([55357,56424,55356,57342,8205,55358,56605,8205,55357,56424,55356,57340],[55357,56424,55356,57342,8203,55358,56605,8203,55357,56424,55356,57340]),!b}return!1}function f(a){var c=b.createElement("script");c.src=a,c.defer=c.type="text/javascript",b.getElementsByTagName("head")[0].appendChild(c)}var g,h,i,j,k=b.createElement("canvas"),l=k.getContext&&k.getContext("2d");for(j=Array("flag","emoji"),c.supports={everything:!0,everythingExceptFlag:!0},i=0;i<j.length;i++)c.supports[j[i]]=e(j[i]),c.supports.everything=c.supports.everything&&c.supports[j[i]],"flag"!==j[i]&&(c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&c.supports[j[i]]);c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&!c.supports.flag,c.DOMReady=!1,c.readyCallback=function(){c.DOMReady=!0},c.supports.everything||(h=function(){c.readyCallback()},b.addEventListener?(b.addEventListener("DOMContentLoaded",h,!1),a.addEventListener("load",h,!1)):(a.attachEvent("onload",h),b.attachEvent("onreadystatechange",function(){"complete"===b.readyState&&c.readyCallback()})),g=c.source||{},g.concatemoji?f(g.concatemoji):g.wpemoji&&g.twemoji&&(f(g.twemoji),f(g.wpemoji)))}(window,document,window._wpemojiSettings);
    </script>
    <style type="text/css">
        img.wp-smiley,
        img.emoji {
            display: inline !important;
            border: none !important;
            box-shadow: none !important;
            height: 1em !important;
            width: 1em !important;
            margin: 0 .07em !important;
            vertical-align: -0.1em !important;
            background: none !important;
            padding: 0 !important;
        }
    </style>
    <link rel='stylesheet' id='wp-block-library-css'  href='https://clean-wp-head.dev/wp-includes/css/dist/block-library/style.min.css?ver=5.2' type='text/css' media='all' />
    <link rel='stylesheet' id='wp-block-library-theme-css'  href='https://clean-wp-head.dev/wp-includes/css/dist/block-library/theme.min.css?ver=5.2' type='text/css' media='all' />
    <link rel='stylesheet' id='twentynineteen-style-css'  href='https://clean-wp-head.dev/wp-content/themes/twentynineteen/style.css?ver=1.4' type='text/css' media='all' />
    <link rel='stylesheet' id='twentynineteen-print-style-css'  href='https://clean-wp-head.dev/wp-content/themes/twentynineteen/print.css?ver=1.4' type='text/css' media='print' />
    <link rel='https://api.w.org/' href='https://clean-wp-head.dev/wp-json/' />
    <link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://clean-wp-head.dev/xmlrpc.php?rsd" />
    <link rel="wlwmanifest" type="application/wlwmanifest+xml" href="https://clean-wp-head.dev/wp-includes/wlwmanifest.xml" />
    <meta name="generator" content="WordPress 5.2" />
</head>

Ví dụ, nếu trang web của bạn sử dụng các biểu tượng xã hội từ máy chủ s.w.org, bạn có thể thêm thẻ <link rel="dns-prefetch"> vào mã HTML của trang web của bạn để giúp trình duyệt tải DNS cho máy chủ s.w.org trước khi cần tải biểu tượng cảm xúc. Điều này có thể giúp cải thiện tốc độ tải trang web và trải nghiệm người dùng tổng thể.

Tuy nhiên, việc sử dụng <link rel="dns-prefetch"> cần phải được thực hiện cẩn thận để đảm bảo rằng bạn chỉ đặt sẵn DNS cho các tài nguyên thực sự cần thiết và không gây ra tăng tải cho máy chủ DNS của bạn.

Nói ngắn gọn nếu bạn không thấy tài nguyên nào được lưu từ s.w.org thì nên xoá <link rel="dns-prefetch"> khởi header đi sẽ có lợi hơn.

Để xoá <link rel="dns-prefetch"> bạn có thể add code phía dưới vào file functions.php là xong.

add_filter( 'wp_resource_hints','vts_remove_dns_prefetch',20,2);
function vts_remove_dns_prefetch( $urls, $relation_type ){
	$n = 0;
	$k = false;
	foreach( $urls as $url ){
		if( false !== strpos( $url,'s.w.org' ) ){
			$k = $n;
		}
		++$n;
	}
	if( $k ){
		unset( $urls[$k] );
	}
	return $urls;
}

Hy vọng code nhỏ sẽ giúp ích cho nhiều người.

Từ khóa
Nếu bạn thấy bài viết có ích hãy sao chép link và chia sẻ bài viết
daotiendung

Tiến Dũng Đào chuyên quản lý, vận hành các dịch vụ website. Anh có nhiều năm kinh nghiệm về VPS, Hosting, technical SEO, CMS. Đặc biệt yêu thích WordPress với hơn 5 năm phát triển theme và plugin. Sở thích của anh là đọc, viết blog, đi du lịch, tập võ và chia sẻ các kiến thức cho mọi người.

Bài viết liên quan