您当前的位置:主页 > 教程合集 > SEO优化网站利发国际SEO优化

网站链接提交之JS代码链接自动推送进化版

发布时间:2017-10-21编辑:余斗阅读:(0)字号:
    在以前的文章《网站链接提交之JS代码链接自动推送》中,余斗教大家如何部署百度自己的自动推送JS代码,其出发点主要是为了更快速的发现站点每天产生的最新内容,余斗也一直在使用这段代码,代码如下: 网站链接提交之JS代码链接自动推送进化版

    <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>
     
    百度站长平台提供链接索引的自动提交JS脚本已经有一段时日了。用百度自己的话讲:JS链接推送代码以网页为最小对象,服务于全平台多终端,PC站和移动站均可使用。安装代码的页面在任意平台(浏览器、微信、微博)被加载时,页面链接会被第一时间推送给百度,从而提高站点新内容的发现速度。 只要把这段代码放入你的每个页面中,每当用户访问这些页面时,就会通过这段脚本从百度下载一个1x1的gif,同时记录页面此时此刻的URL地址。 自动推送脚本的性能考虑 通过这段脚本我们可以看出: 1、它先是判断了目前的协议类型是https还是其他类型(如,http,ftp等) 2、然后下载了百度官方的一个js文件 3、再然后它将js文件的内容生成一个脚本块插入到当前页面中 4、最后会运行这个脚本块 我们可以访问这两个js文件查看其内容,也就是短短的一行。它会读取这样一个gif。 https://sp0.baidu.com/9_Q4simg2RQJ8t7jm9iCKT-xh_/s.gif 或者http://api.share.baidu.com/s.gif 同时将window.location.href等信息推送给了百度。 这里我们可以发现两个问题: 其一是这段脚本先后会调用两个百度资源,这造成了冗余,不利于页面加载速度。 其二是该脚本会提交目前URL,但是许多URL会是动态URL,会带各种参数。虽然百度爬虫也有自己的判断方法,但无疑这增加了其负担。 于是,为了解决这两个问题,我们有了下面这个改良版本。 改良版本的百度索引自动推送脚本 这个改良的脚本长下面这样,如果你对js一窍不通,那么请用下图<script>...</script>部分(行6-30)替换原来百度官方的代码。 网站链接提交之JS代码链接自动推送进化版 在上图中已加入了注释,下面开始代码解说。 这个新脚本的作用是多了一步查看页面的canonical URL的步骤。我们知道canonical属性表示该页面纵有千种URL的花样,请搜索引擎只认准href中给出的URL值。这样一来就不会让搜索引擎为了同一个页面(或许已经索引了)多次检查你的推送页面具体内容。 这个新脚本的另一个更改是直接将上述两个js的内容拿了出来。由于这两个js中的代码其实是静态的,每次都去调用并不必要。另一方面,我们需要对r的值进行更改,将它更改为canonical URL的值,因此这样解决了我们上面的第二个问题。 最后,一点感想 自动推送是一个很实用的方法,它门槛低,容易部署,但是也有一些小问题。本文只是提供了一种方法来改进自动推送的效率和效果。 需要注意的是百度随时可能更新这两个js文件的内容,虽然该功能上线后一直没有更新不代表以后不会更新,因此需要手动及时更新代码。 代码如下:

    <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>
     
    最终效果对比: 网站链接提交之JS代码链接自动推送进化版 原代码 网站链接提交之JS代码链接自动推送进化版 完善后代码
关键字词JS自动推送网站链接
余斗余斗
  1. 转载请注明:网站链接提交之JS代码链接自动推送进化版
  2. 版权声明:本站原创文章,由发表在SEO优化分类下,于2017-10-21最后更新
百度上线 “闪电算法”
百度熊掌号之初体验
手机扫一扫 随身带着看

利发国际

百度360搜索搜狗搜索