尽管百度搜索的口碑好像并不怎么好但毕竟百度搜索依然还是国内用户量和搜索量都是最大的网页搜索引擎。
所以对于网页开发者和网站管理员来说如何提高百度搜索的排名以及链接收录效率始终是个至关重要的问题。
因为收录太差或者排名太差的话那么可能就不会有更多的读者,网站的自然搜索流量自然也会持续低迷状态。
而百度为了解决网站的收录问题以前上线了主动推送代码,当网页被访问时网页的地址会推送至百度服务器。
百度站长工具里提供的主动推送代码:
// 当前在百度站长工具中的主动推送代码 <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脚本, 如果你查看脚本内容的话会发现其实也只是加载Gif图。
加载的同时会将窗口所在地址提交给百度搜索服务器, 但追求极致的开发者可以继续优化推送代码减少加载。
于是百度站长社区给出了升级版的代码:(代码来源见标题下的来源地址)
// 升级版的百度主动推送代码 <script> (function(){ var canonicalURL, curProtocol; //Get the 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>
升级版的推送代码直接将原本调用的脚本内容拿了出来,因为本身这两部分内容就是静态的没必要分别调用。
同时如果网页头部带有Canonical属性的话那么会强调该属性, 也就是将指向的网址提交百度搜索的服务器。
这种情况下即使网页存在多个不同形式的地址也只会推送原地址,避免因重复推送和重复内容导致被降权了。
因为网站管理员和开发者可以直接将原推送代码换成新版, 新版加载更优秀同时可避免可能存在的重复问题。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/31431.html