百度链接提交与统计

在中国互联网混,多少还是要仰仗百度的支持。

百度站长可以用个人账户,或联盟账户登录。 个人账户就是普通的百度账户, 而联盟账户则是和百度联盟百度统计等服务共用的商业账户。

为了相关的互通,孤还是用百度联盟账户吧。

(本来在账户这件事上就起步晚,还要搞独立账户,也不知道百度是怎么想的。 而且,默认还是http,真为孤的账户密码担心。)

使用百度站长

添加网站

进入百度站长平台的站点管理,点击【添加网站】。

为了验证网站域名的所有权,会需要做出一些修改。 孤选择用CNAME来验证,避免了网页内容被侵入。

获取链接提交代码

链接提交页面,有4种提交方式:

  1. 主动推送: 最为快速的提交方式,推荐您将站点当天新产出链接立即通过此方式推送给百度, 以保证新链接可以及时被百度收录。
  2. 自动推送: 最为便捷的提交方式,请将自动推送的JS代码部署在站点的每一个页面源代码中, 部署代码的页面在每次被浏览时,链接会被自动推送给百度。可以与主动推送配合使用。
  3. sitemap: 您可以定期将网站链接放到sitemap中,然后将sitemap提交给百度。 百度会周期性的抓取检查您提交的sitemap,对其中的链接进行处理,但收录速度慢于主动推送。
  4. 手动提交: 一次性提交链接给百度,可以使用此种方式。

效果做好的是主动推送,然而对静态网站来说,略显麻烦。

孤选择自动推送,得到以下代码。

<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》。


相关笔记