百度自动推送代码+修改升级优化

百度自动推送代码+修改升级优化

什么是自动推送工具?自动推送工具解决了什么问题?

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

为了更快速的发现站点每天产生的最新内容,百度站长平台推出主动推送工具,产品上线后,部分站长反馈使用主动推送方式的技术门槛较高,于是我们顺势推出更低成本的JS自动推送工具。一步安装便可实现页面自动推送,低成本,高收益。

 

自动推送代码如何安装使用?

站长需要在每个页面的HTML代码中包含以下自动推送JS代码:

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

如果站长使用PHP语言开发的网站,可以按以下步骤操作:

  1. 创建名为“baidu_js_push.php”的文件,文件内容是上述自动推送JS代码;
  2. 在每个PHP模板页文件中的 <body> 标记后面添加一行代码:<?php include_once("baidu_js_push.php") ?>

 

为什么自动推送可以更快的将页面推送给百度搜索?

基于自动推送的实现原理问题,当新页面每次被浏览时,页面URL会自动推送给百度,无需站长汇总URL再进行主动推送操作。

借助用户的浏览行为来触发推送动作,省去了站长人工操作的时间。

 

自动推送和主动推送有什么区别?

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

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

 

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

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

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

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

 

服务对象及原理

JS链接推送代码以网页为最小对象,服务于全平台多终端,PC站和移动站均可使用。
安装代码的页面在任意平台(浏览器、微信、微博)被加载时,页面链接会被第一时间推送给百度,从而提高站点新内容的发现速度。

只要把这段代码放入你的每个页面中,每当用户访问这些页面时,就会通过这段脚本从百度下载一个1×1的gif,同时记录页面此时此刻的URL地址,然后推送给百度。

 

百度默认的代码有两个问题:

  1. 这段脚本先后会调用两个百度资源,这造成了冗余,不利于页面加载速度。
  2. 该脚本会提交目前URL,但是许多URL会是动态URL,会带各种参数。虽然百度爬虫也有自己的判断方法,但无疑这增加了其负担。

 


 

升级优化版本百度自动推送代码

<script>
(function(){
var canonicalURL, curProtocol;
//Get the <link> tag
var x=document.getElementsByTagName("link");
//Find the last canonical URL
if(x.length > 0){
for (i=0;i<x.length;i++){
if(x[i].rel.toLowerCase() == 'canonical' && x[i].href){
canonicalURL=x[i].href;
}
}
}
//Get protocol
if (!canonicalURL){
curProtocol = window.location.protocol.split(':')[0];
}
else{
curProtocol = canonicalURL.split(':')[0];
}
//Get current URL if the canonical URL does not exist
if (!canonicalURL) canonicalURL = window.location.href;
//Assign script content. Replace current URL with the canonical URL
!function(){var e=/([http|https]:\/\/[a-zA-Z0-9\_\.]+\.baidu\.com)/gi,r=canonicalURL,t=document.referrer;if(!e.test(r)){var n=(String(curProtocol).toLowerCase() === 'https')?"https://sp0.baidu.com/9_Q4simg2RQJ8t7jm9iCKT-xh_/s.gif":"//api.share.baidu.com/s.gif";t?(n+="?r="+encodeURIComponent(document.referrer),r&&(n+="&l="+r)):r&&(n+="?l="+r);var i=new Image;i.src=n}}(window);})();
</script>

 

新版代码原理

  1. 增加检索本页面的“canonical”URL的步骤。即使该页面着落URL不同(或动态、或链接后面加了一些参数)“canonical”属性表示本页面的唯一URL,帮助搜索引擎精准识别href中给出的URL值。如此便不会让百度蜘蛛为了同一个页面(或许已经索引了)多次爬取你的推送页面URL并检查网页的具体内容。
  2. 精简原代码的2个JS文件。由于这两个文件中的代码是固定的静态文件,重复调用会耗费系统资源,增加网页的加载时间。

 

新版代码优点

由于新版代码推送给百度的链接是“canonical”标签属性包含的链接,所以对于目前市面上大部分PHP+SQL的动态网站可能造成多网址着陆及评论或是其它功能导致网址后面带参数的推送并不会重复处理,避免百度索引相同页面多URL造成网站降权被K。

 

新版代码注意事项

如果原版百度推送代码更改,端口或资源变更,新版代码也会失效。请留意关注原代码的更新。

分享到:
赞(0)

评论抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址


版主资源网是全网最大的免费网络资源搜集分享平台,提供破解版免费软件程序下载,免费下载破解版辅助工具,原创图文、视频技术教程阅读下载服务。