关于链接提交中js代码推送,Bird今天就和大家分享一下。
百度站长平台为链接索引提供自动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.gifHttps://sp0.baidu.com/9_Q4simg2RQJ8t7jm9iCKT-xh_/s.gif还是http://api.share.baidu.com/s.gif
同时window.location.href等信息被推送到百度。
这里我们可以发现两个问题:
第一,这个脚本会陆续调用两个百度资源,造成冗余,不利于页面加载速度。
第二,脚本会提交当前URL,但是很多URL会是各种参数的动态URL。百度爬虫虽然有自己的判断方法,但无疑增加了负担。
所以为了解决这两个问题,笔者咨询了他的朋友柴云祥,他也是前端开发者。在大牛的帮助下,我们有了以下改进版。
百度索引自动推送脚本改进版
这个改进的脚本是这样的。如果你对js一无所知,请用下图
上图添加了注释,下面开始代码解释。
这个新脚本的功能是多一步检查页面的规范网址。我们知道规范属性表示页面上有成千上万个URL模式,所以请查找href中给出的URL值。这样,搜索引擎就不会多次检查同一页面(可能已经被索引)的推送页面的具体内容。
这个新脚本的另一个变化是直接取出上面两个js的内容。因为这两个js中的代码都是静态的,没有必要每次都调用。另一方面,我们需要将r的值改为规范URL的值,这样就解决了我们上面的第二个问题。
终于,有点感觉了
自动推送是一种非常实用的方法,门槛低,易于部署,但也存在一些小问题。本文仅提供一种提高自动推送效率和效果的方法。
需要注意的是,百度可能随时更新这两个js文件的内容。虽然这个功能上线后一直没有更新,但不代表以后不会更新,需要及时手动更新代码。
以上代码可以复制到这里:
<> (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 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);})();</>& lt>。(function(){ var canonicalURL,curProtocol//获取& lt链接>tag var x = document . getelementsbytagname(" link ");//如果(x.length & gt0){ for(I = 0;i<。x .长度;i++){ if(x[I]. rel . tolowercase()= = ' canonical ' & amp;& ampx[i]。href){ canonicalURL=x[i]。href} } }//获取协议if(!canonical URl){ CurProtocol = window . location . protocol . split(':')[0];} else { CurProtocol = Canonical URl . split(':')[0];}//如果规范URL不存在,则获取当前URL,如果(!canonical URl)Canonical URl = window . location . href;//分配内容。用规范网址替换当前网址!function(){ var e =/([http | https]://[a-Za-Z0-9 _ 。]+.百度。com)/gi,r=canonicalURL,t = document.referrerif(!e . test(r)){ var n =(String(CurProtocol)。toLowerCase() === 'https ')?" https://sp0 . Baidu . com/9 _ q4sim g2rj8t7jm 9 iCKt-xh _/s . gif "://API . share . Baidu . com/s . gif ";t?(n+= "?r = "+encodeURIComponent(document . referrer),r & amp& amp(n+= " & amp;l = "+r)):r & amp;& amp(n+= "?l = "+r);var i =新图像;i.src=n}}(窗口);})();& lt/>。
1.《链接代码 手把手教你链接提交-js代码推送》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《链接代码 手把手教你链接提交-js代码推送》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/yule/806165.html