网站建设

百度站长平台推出链接提交自动推送JS代码

Jager · 10月28日 · 2015年 · · 3419次已读

张戈博客之前分享过百度的各种链接提交推送的代码或插件,有原创代码,也有改良插件:

WordPress 发布文章主动推送到百度,加快收录保护原创

WordPress 百度链接主动提交插件:Baidu-links-submit 优化版

BaiduSubmit:百度 WordPress 结构化数据插件(改进版)

不过都是基于 WordPress 建站程序的,其他建站程序不免只能捶胸顿足无奈乎...

百度站长平台推出链接提交自动推送JS代码

不过,前几天偶然在百度执行 site 命令时,发现百度又推出了新鲜玩意,点开一看发现不错,公告内容如下:

亲爱的网站管理员:

为了更快速的发现站点每天产生的最新内容,百度站长平台推出了技术门槛更低的 JS 自动推送工具。站长只需一步安装便可实现页面自动推送,成本低、收益高,弥补了部分站长反馈的使用主动推送方式提交时技术门槛较高的问题。

自动推送 JS 代码是百度站长平台最新推出的轻量级链接提交组件,站长只需将自动推送的 JS 代码放置在站点每一个页面源代码中,当页面被访问时,页面链接会自动推送给百度,有利于新页面更快被百度发现。

按照经验,打开百度站长平台,点击【链接提交】栏目,果然发现多了一个自动提交选项:

百度站长平台推出链接提交自动推送JS代码

简单看了下,发现部署非常简单,只要将如下 js 代码添加到网站的每一个前台页面即可,最值得称赞的是支持所有 html 页面,而不再受限于建站程序!

<script>
(function(){
    var bp = document.createElement('script');
    bp.src = '//push.zhanzhang.baidu.com/push.js';
    var s = document.getElementsByTagName("script")[0];
    s.parentNode.insertBefore(bp, s);
})();
</script>

如果你不知道放到哪,那么最简单的方法就是将上述代码放到你平常用于站点访问统计的代码旁边,比如 CNZZ 的站点统计。当然,其实就是将代码放置到建站程序的公用部分即可,比如 header 或 footer 等公共模块。

从页面加载优化来说,则建议放置到 footer 模块内,让其后置加载请求。

百度也终于开窍了一次,php 也好,asp 也好,都受限于开发语言,总是无法一劳永逸。这次推出这个 js 推送方案就真正实现了全面兼容了。

这段代码的工作原理也非常简单:基于自动推送的实现原理问题,安装代码的页面在任意平台(浏览器、微信、微博)被加载时,页面链接会被第一时间推送给百度,从而提高站点新内容的发现速度。无需站长汇总 URL 再进行主动推送操作。借助用户的浏览行为来触发推送动作,省去了站长人工操作的时间。

那么,当你部署此代码后,每次发布文章后,只要第一时间访问一下文章页面,即可在前台触发推送机制,将最新文章推送给百度。

百度站长平台推出链接提交自动推送JS代码

按照百度的说法:

自动推送和链接提交有什么区别?

已经在使用链接提交的网站还需要再部署自动推送代码吗?

二者之间互不冲突,互为补充。已经使用主动推送的站点,依然可以部署自动推送的 JS 代码,二者一起使用。

什么样的网站更适合使用自动推送?

自动推送由于实现便捷和后续维护成本低的特点,适合技术能力相对薄弱,无能力支持全天候实时主动推送程序的站长。

站长仅需一次部署自动推送 JS 代码的操作,就可以实现新页面被浏览即推送的效果,低成本实现链接自动提交。

同时,我们也支持主动推送和自动推送代码配合使用,二者互不影响。

貌似张戈博客经常提到的“重复推送数据到百度,会导致文章进入收录沙盒”的说法又不那么坚定了。从上面的 FAQ 来看,百度倒是提倡多种链接推送同时使用,互为补充。

但是,按照经验来看,感觉不那么靠谱,个中曲直就自己把握了,我觉得二者选其一即可。

问题补充:

顺便看了下百度这段 js 的代码:

//push.zhanzhang.baidu.com/push.js 代码如下:
var baiduSiteReg = /([http|https]:\/\/[a-zA-Z0-9\_\.]+\.baidu\.com)/gi,
pageUrl = window.location.href;
if (!baiduSiteReg.test(pageUrl)) {
    var url = "//api.share.baidu.com/s.gif?r=" + encodeURIComponent(document.referrer),
    img = new Image;
    img.src = url
}

发现是利用 referrer 来获取页面地址的。然后,在 network 中看了下请求地址是如下形式:

http://api.share.baidu.com/v.gif?l=http%3A%2F%2Fzhang.ge%2F5069.html

给一个图片传参?好吧,表示没看懂工作原理。但是,我突然醒悟了一件事情,通过 JS 获取页面地址其实也挺坑的,比如某篇文章是:

https://zhang.ge/5066.html

那么该文章的分页就是:

https://zhang.ge/5066.html/comment-page-2/#comments

如果用 js 来推送,势必后面的页面也有可能被推送。也就是说,js 推送的方式很可能就会推送一些我们不想被收录的页面,并没有 php 代码那么精准!

当然,如果你的网站任何页面都想被收录,那么也就无所谓了。

23 条回应
  1. 微页网站分类目录 2015-10-28 · 20:43

    这样就方便很多了

  2. 陌小雨博客 2015-10-29 · 11:57

    [color=red]恩,互联网上任何需要用户操作和互动的东西,慢慢的都会变成傻瓜话,就像相机一样哈,不过高端的布置方法肯定也会一直存在,就像高端的相机一样,不同的人群会有不同的选择。[/color]

  3. 每天签到赚10元 2015-10-30 · 10:40

    不错不错

  4. 李阳博客 2015-10-30 · 13:39

    百度一向不守规则,我明明限制了收录page和tag,结果还是收录了不少

  5. 免费资源 2015-10-31 · 12:50

    是感觉这个不太好用啊 百度能受得了这么推送吗

    • avatar
      Jager 2015-10-31 · 13:43

      怎么不好用?

  6. MC服主网 2015-10-31 · 21:39

    Jager你好,在使用之前代码版的提交时我发现一个问题,提交后过几天在站长平台的统计中看不到提交链接的数据 ,但是文章的baidusubmit已经变成1,用这个JS版本也统计不到。请问一下Jager你的也是这样么?

  7. 金选网赚博客 2015-11-3 · 12:08

    这个确实是不错的

  8. 三月福利吧 2015-11-4 · 13:57

    不错,已经使用!!!!!

  9. 黎叔 2015-11-5 · 22:12

    我是放在footer的

  10. 微部落博客 2015-11-10 · 22:43

    [color=red]Jager对百度的研究越来越透彻了。。[/color]

  11. 微部落博客 2015-11-12 · 13:09

    经过一番折腾,微部落博客已经顺利用上。。。

  12. 李明 2015-11-21 · 13:21

    我也添加了,谢谢分享!

  13. 张阳 2015-12-1 · 9:37

    那是不是就可以把这段放在文章页的模板中,之推送文章,那样还会出现你说的这种 不想被收录的页面么???文章页是必须要收的吧。你说不想被收指哪些那?

    • avatar
      Jager 2015-12-1 · 13:41

      嗯 放到文章中是可以的。

  14. 张扬 2015-12-4 · 16:16

    这个问题:多次被访问是不是就会多次进行提交,那要是提交次数过多会不会对百度不友好?

    • avatar
      Jager 2015-12-4 · 20:18

      仍然看不太懂百度,百度提倡要加就加吧。。。

  15. Vans爱好者 2016-3-27 · 1:55

    这个JS能下载下来放在本地么?因为百度不支持https,外域也影响速度。

  16. kid 2016-12-12 · 18:26

  17. 启明 2017-10-13 · 0:22

    貌似现在百度换新的代码了啊.和你贴出来的不一样啊
    bp.src = 'http://push.zhanzhang.baidu.com/push.js'; 这个JS不支持https 会导致浏览器提示不安全因素..

    • avatar
      Jager 2017-10-13 · 17:46

      bp.src = '//push.zhanzhang.baidu.com/push.js'; 文章贴出来的明明没有带http,你自己加的吧,文章是一种自适应协议。

  18. tkzj 2020-12-27 · 10:42

    你好,请问这个JS提交,是不是已经无效了? 百度站长平台里好像已经不出现了