百度链接提交与统计
2017-06-29 23:16:20 +08 字数:1354 标签: Hugo Web在中国互联网混,多少还是要仰仗百度的支持。
百度站长可以用个人账户,或联盟账户登录。 个人账户就是普通的百度账户, 而联盟账户则是和百度联盟、百度统计等服务共用的商业账户。
为了相关的互通,孤还是用百度联盟账户吧。
(本来在账户这件事上就起步晚,还要搞独立账户,也不知道百度是怎么想的。 而且,默认还是http,真为孤的账户密码担心。)
使用百度站长 ¶
添加网站 ¶
为了验证网站域名的所有权,会需要做出一些修改。 孤选择用CNAME来验证,避免了网页内容被侵入。
获取链接提交代码 ¶
在链接提交页面,有4种提交方式:
- 主动推送: 最为快速的提交方式,推荐您将站点当天新产出链接立即通过此方式推送给百度, 以保证新链接可以及时被百度收录。
- 自动推送: 最为便捷的提交方式,请将自动推送的JS代码部署在站点的每一个页面源代码中, 部署代码的页面在每次被浏览时,链接会被自动推送给百度。可以与主动推送配合使用。
- sitemap: 您可以定期将网站链接放到sitemap中,然后将sitemap提交给百度。 百度会周期性的抓取检查您提交的sitemap,对其中的链接进行处理,但收录速度慢于主动推送。
- 手动提交: 一次性提交链接给百度,可以使用此种方式。
效果做好的是主动推送,然而对静态网站来说,略显麻烦。
孤选择自动推送,得到以下代码。
<script>
(function(){
var bp = document.createElement('script');
var curProtocol = window.location.protocol.split(':')[0];
if (curProtocol === 'https') {
bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
}
else {
bp.src = 'http://push.zhanzhang.baidu.com/push.js';
}
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(bp, s);
})();
</script>
添加JavaScript ¶
由于习惯于JavaScript与HTML分离,孤最终剥离成一个baidu.js
文件。
// copied from https://zhanzhang.baidu.com/linksubmit/index
baidu_push = function() {
var bp = document.createElement('script');
var curProtocol = window.location.protocol.split(':')[0];
if (curProtocol === 'https') {
bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
} else {
bp.src = 'http://push.zhanzhang.baidu.com/push.js';
}
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(bp, s);
}
baidu_push();
在模板页添加 ¶
在模板head.html
的<head>
中,添加一行:
<script src="/js/baidu.js" async="true"></script>
使用百度统计 ¶
获取统计代码 ¶
在百度统计的【管理】【代码管理】【代码获取】页面,可以得到以下代码:
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?49bf55646cf1c4a198276b1ba4ba0b4f";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
注意:该代码中包含特殊的key值49bf55646cf1c4a198276b1ba4ba0b4f
,为本站专有。切勿复制使用。
添加JavaScript ¶
同样,孤也把上面的JavaScript添加在baidu.js
中。
// Copied from https://tongji.baidu.com/
var _hmt = _hmt || [];
baidu_tongji = function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?49bf55646cf1c4a198276b1ba4ba0b4f";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
}
baidu_tongji();
验证 ¶
在百度统计获取代码的同一页面,可以找到代码安装检查。
部署代码到网站中后,可以点击验证。
添加开发过滤 ¶
为了避免在本地开发时,误触提交与统计,于是需要添加过滤条件。
if (document.domain.endsWith('qidong.name')) {
baidu_push();
baidu_tongji();
console.log('Baidu!')
} else {
console.log('Not to track.')
}
由于本站是Hugo生成的,所以还有另一种方法,使用Hugo的模板功能。
添加layouts/partials/baidu.html
文件,填上前面两段HTML代码。
使用时,再添加逻辑过滤。
{{ if not .Site.BuildDrafts }}
{{ partial "baidu.html" . }}
{{ end }}
这样,在hugo server --buildDrafts
时,就不会包含模板baidu.html
中的代码,产生上传数据。
在Hugo v0.38版本以后,有一个更好的办法:
{{ if not .Site.IsServer }}
{{ template "_internal/google_analytics_async.html" . }}
{{ end }}
查看效果 ¶
最终,百度统计可以很快确认生效,当日等待十几分钟即可。 而百度站长那边就慢很多了,第二天才能看到效果。 至于百度搜索,则一直没有显示结果。
结果,还是Google更方便、可靠。 参见另一篇笔记《Hugo中使用Google Analytics》。