5

百度链接提交与统计

 3 years ago
source link: https://note.qidong.name/2017/06/29/baidu_push/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

百度链接提交与统计

2017-06-29 23:16:20 +08  字数:1354  标签: Hugo Web

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

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

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

(本来在账户这件事上就起步晚,还要搞独立账户,也不知道百度是怎么想的。 而且,默认还是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》。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK