百度收录那些事[二] 如何使用百度自动推送提交

  • A+
所属分类:WordPress 建站经验

百度自主推送相比较百度地图sitemap更为便利,比sitemap更有利于SEO优化,更有利于百度收录。并且,只要任何一个人访问站点页面,该页面就会自动向百度推送一次,不管有没有收录。既方便,又很友好,收录效果也是很不错,主动推送(sitemap)和自动推送二者没有冲突,可以一起使用!

什么是自动推送工具?

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

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

1、新建名为baidu_js_push.php到PHP文件,文件内容是下述自动推送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>

2、将baidu_js_push.php上传到网站根目录下

3、在主题footer.php最后 </body> 前 加入如下代码:

<?php include_once("baidu_js_push.php") ?>

这样,整个步骤全部完成,具体效果登录百度站长平台查看推送情况。

展开

自动推送脚本的性能考虑

通过这段脚本我们可以看出:它先是判断了目前的协议类型是https还是其他类型,然后下载了百度官方的一个js文件,再然后它将js文件的内容生成一个脚本块插入到当前页面中,最后会运行这个脚本。

这里我们可以发现两个问题:

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

于是,为了解决这两个问题,我们有了下面这个改良版 :wink:

改良版本的百度索引自动推送脚本

<script>
	(function(){
		var canonicalURL, curProtocol;
		//获取<link>标记
		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;
				}
			}
		}
		//获取协议
	    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>
  • 这个新代码的作用多了一步查看页面的canonical URL的步骤。我们知道canonical属性表示该页面纵有千种URL的花样,请搜索引擎只认准href中给出的URL值。这样一来就不会让搜索引擎为了同一个页面(或许已经索引了)多次检查你的推送页面具体内容。
  • 这个新代码的另一个更改是直接将上述两个js的内容拿了出来。由于这两个js中的代码其实是静态的,每次都去调用并不必要。另一方面,我们需要对r的值进行更改,将它更改为canonical URL的值,因此这样解决了我们上面的第二个问题。

如何使用

用这个改良的代码替换原来百度官方的代码即可,实际效果需要到度站长平台查看推送情况!

 

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: