百度统计是百度推出的一项免费服务,免费版虽相较于同样免费的Google Analytics统计功能要少很多,但后者在中国大陆地区体验不太好,所以百度统计依然是不错的选择。本文将介绍不影响SEO优化和性能的前提下,在WordPress添加百度统计代码的方法。
第一步、压缩百度统计JS代码
百度统计默认提供的JS代码是未经压缩的,所以第一步可以将它压缩一下。下面是压缩后的代码,只需要将代码中的ID部分替换成自己的就可以。(非常适合有代码洁癖的人,不浪费网页加载的任何一个字节)
<script>var _hmt=_hmt||[];(function(){var hm=document.createElement("script");hm.src="https://hm.baidu.com/hm.js?c3fd00d959e86a56f286df87b168";var s=document.getElementsByTagName("script")[0];s.parentNode.insertBefore(hm,s)})();</script>
其中的c3fd00d959e86a56f286df87b168
就是ID,记得换上自己的。ID在默认的百度统计代码中能找到,如下:
第二步:在WordPress添加百度统计代码,并排除管理员用户
//在wp_head添加百度统计代码,排除管理员 function zhanzhangb_wp_head() { if ( ! current_user_can( 'manage_options' ) ) { echo '<script>var _hmt=_hmt||[];(function(){var hm=document.createElement("script");hm.src="https://hm.baidu.com/hm.js?c3fd00d959e86a56f286df87b168";var s=document.getElementsByTagName("script")[0];s.parentNode.insertBefore(hm,s)})();</script>';} } add_action('wp_head', 'zhanzhangb_wp_head');
建议使用第1种方法,方便管理WordPress中的所有自定义代码;第2种方法需要在更新主题或更换主题后重新添加。
高级用法:推迟加载,不建议新手使用
在HTML中添加任何JS代码,都会影响网页加载速度,而且会造成阻塞。所以最佳的方式就是对于不影响后续内容的JS代码进行推迟加载,也就是说当网页全部加载完毕后,再加载推迟的这部分JS。
推迟加载百度统计代码可大幅提升网页速度,并消除阻塞。
新建一个baidu-tongji.js文件,并添加以下代码:
var _hmt=_hmt||[];(function(){var hm=document.createElement("script");hm.src="https://hm.baidu.com/hm.js?c3fd00d959e86a56f286df87b168";var s=document.getElementsByTagName("script")[0];s.parentNode.insertBefore(hm,s)})();
同样记得替换自己的ID。
将该文件上传至网站根目录,或其它目录(如果是其它目录,需要替换下面代码中的路径)。
function add_tongji_js() { if ( ! current_user_can( 'manage_options' ) ) { //排除管理员 wp_register_script( 'baidu-tongji','/baidu-tongji.js', array('jquery'), '1.0', true ); //注册百度统计 js wp_enqueue_script( 'baidu-tongji' ); //排队引入百度统计 js } } add_action( 'wp_enqueue_scripts', 'add_tongji_js' );
这种添加外部JS文件的方法是WordPress官方推荐的规范方法,wp_enqueue_script()函数可以安全的将JavaScript脚本添加到WordPress生成的页面。
添加以上代码的方法参考上文:添加自定义PHP代码的方法。
记得点击底部的“保存更改”按钮!
以上设置后,百度统计代码只有在用户交互后才加载(如用户一直未进行任何操作,10秒后自动加载)。用户交互是指:翻动了页面、移动了鼠标等任何操作。这样一来,统计代码对于网页的加载速度绝无半点影响。
经过最终优化后,百度统计代码不再影响任何页面的性能,同时对SEO友好,而且还不会将管理员的日常访问纳入统计。