优化解决百度自动推送和360自动收录JS重复推送问题

原创 懿古今  2016-07-15  阅读 848 次

百度和360相继上线简单易用的JS自动推送和自动收录工具,两者的大概意思都是只要在站点部署了JS代码,就可以实现在用户浏览该页面的时候即时自动推送给百度和360,以实现链接自动提交,据说可以提高收录率。

优化解决百度自动推送和360自动收录JS重复推送问题

想法是好的,可惜不论是百度还是360的这个JS工具都算是半产品,都没有考虑到重复推送问题。换句话就是说,部署了他们的JS代码,无论该页面是否已经被收录,只要有人浏览就会自动推送,这样就会造成同一个链接地址重复推送。据说有可能会让蜘蛛误以为这个文章更新频繁而且不稳定从而进入收录沙河短期内不会展示,而且还会浪费每天的可推送额度。虽然不知道这些重复推送的后果是真是假,我们作为站长的,还是宁可信其有不可信其无吧。

对于百度自动推送的重复推送问题,张戈博主也早已分享了相应的规避做法,具体请参考《WordPress百度自动推送JS优化,规避错误、重复推送问题》这篇文章进行设置。

张戈博主只分享并解决了百度自动推送的重复推送问题,而没有分享360自动收录的重复推送问题。其实这两者是十分相似的,只需要依瓢画葫芦就可以搞定。不过不是每个博主站长都会折腾代码,所以今天就顺便把百度自动推送和360自动收录JS代码造成的重复推送问题集合在一起解决。

百度自动推送和360自动收录JS代码造成的重复推送问题的解决办法如下:

只需要将以下代码添加到functions.php文件最后一个?>即可。(这个方法适用于WordPress站点,至于其他程序站点请自行研究解决)

  1. /**
  2. * 优化解决百度自动推送和360自动收录JS重复推送问题 By 懿古今
  3. * 文章地址:http://yigujin.cn/843.html
  4. * 百度自动推送的JS代码优化 By 张戈博客
  5. * 文章地址:http://zhangge.net/5100.html
  6. * 转载请保留出处,谢谢合作!
  7. **/
  8. add_action( 'wp_footer', 'bdPushData', 999);
  9. //检查百度是否已收录最新改进版本
  10. if(!function_exists('baidu_check_record')){
  11.   function baidu_check_record($url){
  12.     global $wpdb;
  13.     $post_id = ( null === $post_id ) ? get_the_ID() : $post_id;
  14.     $baidu_record  = get_post_meta($post_id,'baidu_record',true);
  15.     if$baidu_record != 1){
  16.         $url='http://www.baidu.com/s?wd='.$url;
  17.         $curl=curl_init();
  18.         curl_setopt($curl,CURLOPT_URL,$url);
  19.         curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
  20.         $rs=curl_exec($curl);
  21.         curl_close($curl);
  22.         //如果抓取到的百度结果中不存在【提交网址】这个关键词,则认为该页面已被百度收录
  23.         if(!preg_match_all('/提交网址/u',$rs,$matches) && preg_match_all('/百度为您找到相关结果/u',$rs$matches)){
  24.             update_post_meta($post_id, 'baidu_record', 1) || add_post_meta($post_id, 'baidu_record', 1, true);
  25.             return 1;
  26.         } else {
  27.             return 0;
  28.         }
  29.     } else {
  30.        return 1;
  31.     }
  32.   }
  33. }
  34. //检查360是否已收录最新改进版本
  35. if(!function_exists('sll_check_record')){
  36.   function sll_check_record($sslurl){
  37.     global $wpdb;
  38.     $post_id = ( null === $post_id ) ? get_the_ID() : $post_id;
  39.     $sll_record  = get_post_meta($post_id,'sll_record',true);
  40.     if$sll_record != 1){
  41.         $sslurl='http://www.so.com/s?q='.$sslurl;
  42.         $csslurl=curl_init();
  43.         curl_setopt($csslurl,CURLOPT_URL,$sslurl);
  44.         curl_setopt($csslurl,CURLOPT_RETURNTRANSFER,1);
  45.         $rs=curl_exec($csslurl);
  46.         curl_close($csslurl);
  47.         //如果抓取到的360结果中不存在【提交网址】这个关键词,则认为该页面已被360收录
  48.         if(!preg_match_all('/提交网址/u',$rs,$matches)){
  49.             update_post_meta($post_id, 'sll_record', 1) || add_post_meta($post_id, 'sll_record', 1, true);
  50.             return 1;
  51.         } else {
  52.             return 0;
  53.         }
  54.     } else {
  55.        return 1;
  56.     }
  57.   }
  58. }
  59. //输出百度自动推送和360自动收录的js代码
  60. if(!function_exists('bdPushData')){
  61.   function bdPushData() {
  62.     if ($_SERVER['HTTPS'] != "on") {
  63.         $currentUrl = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER["REQUEST_URI"];
  64.     } else {
  65.         $currentUrl = 'https://'.$_SERVER['HTTP_HOST'].$_SERVER["REQUEST_URI"];
  66.     }
  67.     //判断是否是百度未收录页面,并且当前页面是否等于正规url地址(get_premalink)
  68.     if(baidu_check_record(get_permalink()) == 0 && $currentUrl == get_permalink()) {
  69.         echo "<script>(function(){
  70.             var bp = document.createElement('script');
  71.             var curProtocol = window.location.protocol.split(':')[0];
  72.             if (curProtocol === 'https') {
  73.                 bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';        
  74.             } else {
  75.                 bp.src = 'http://push.zhanzhang.baidu.com/push.js';
  76.             }
  77.             var s = document.getElementsByTagName('script')[0];
  78.             s.parentNode.insertBefore(bp, s);
  79.             })();</script>";
  80.       }
  81.     //判断是否是360未收录页面,并且当前页面是否等于正规url地址(get_premalink)
  82.     if(sll_check_record(get_permalink()) == 0 && $currentUrl == get_permalink()) {
  83.         echo "<script>
  84. (function(){
  85.    var src = (document.location.protocol == 'http:') ? 'http://js.passport.qihucdn.com/11.0.1.js?9d1e70eca6a305e9ff409dcab8478888':'https://jspassport.ssl.qhimg.com/11.0.1.js?9d1e70eca6a305e9ff409dcab8478888';
  86.    document.write('<script src='' + src + '' id='sozz'><\/script>');
  87. })();
  88. </script>";
  89.       }
  90.    }
  91. }

其中,一定要记得修改代码中的360自动收录的那个秘钥(9d1e70eca6a305e9ff409dcab847888就是秘钥,直接替换即可),每个站点都有属于自己的秘钥,具体秘钥可在360站长平台中获取,具体可见《360自动收录简介及添加360自动收录功能的详细教程》。

题外话:以上方法在boke112导航梦轩丽人都已正常运行,但是在懿古今就有点不太正常。比如同样在百度和360搜索boke112导航和梦轩丽人某篇文章的链接地址,显示的结果要么显示收录的结果,要么显示未收录需要提交网址。但是搜索懿古今某篇文章的地址都显示一大堆不相关的结果,根本看不出是否已收录也看不到有提交网址的按钮。三个站点唯一不一样的地方就是懿古今是后缀为.wang的域名,不知道是否跟这个有关?

本文地址:http://yigujin.cn/843.html
关注我们:请关注一下我们的微信公众号:扫描二维码,公众号:aiboke112
版权声明:本文为原创文章,版权归 懿古今 所有,欢迎分享本文,转载请保留出处!
WordPress免费清新BLOG/CMS响应式主题Nana专题文章
WordPress免费响应式主题:Nana

发表评论


表情

  1. 我爱动感单车网
    我爱动感单车网 【市长】 @回复

    [强] 代码很好,值得使用或是收藏备用!

  2. 楚书业
    楚书业 【县长】 @回复

    昨晚才把这个给添加进去。

    • 懿古今
      懿古今【站长】 @回复

      @楚书业 我已经折腾进去了,感觉就是每天多了几个自动推送的数据,其他效果看不出来

      • 楚书业
        楚书业 【县长】 @回复

        @懿古今 我也看不出什么效果,https的收录本身就有问题,汗。
        目前从百度站长可以看到每天自动推送几个,然后文章自定义栏目多了360的record为1.

  3. 森云
    森云 【村长】 @回复

    哈哈不小心又偷偷溜进来了

  4. 本质游戏
    本质游戏 【镇长】 @回复

    不知道怎么滴,又转进来了

  5. 李阳博客
    李阳博客 【队长】 @回复

    感谢分享,已经添加到网站,可惜360站长平台不能像百度那样查看提交详情

    • 懿古今
      懿古今【站长】 @回复

      @李阳博客 是的,这一点确实很郁闷

      • 我爱动感单车网
        我爱动感单车网 【市长】 @回复

        @懿古今 [抓狂] 360的好多东西比起百度来,还相距甚远,令我感觉郁闷的是,360好像也就三板斧那样子,近来根本没什么作为!

  6. 楚大仙
    楚大仙 【农民】 @回复

    你们怎么都有头像,我怎么没有,默认的好丑,好像NANA主题只能从文件夹改头像,装了插件不管用。

    • 懿古今
      懿古今【站长】 @回复

      @楚大仙 评论邮箱注册了gravatar头像才会有头像,要不然都是默认头像,跟主题没啥关系

      • 楚书业
        楚书业 【县长】 @回复

        @懿古今 翻个墙,弄个全球通用头像就好了!

        • 懿古今
          懿古今【站长】

          @楚书业 是的,可惜很多人都没有注册过这个全球通用头像,总是以为是主题问题,很无语

  7. 我爱动感单车网
    我爱动感单车网 【市长】 @回复

    目前,咱博客的百度自动推送使用的是张戈那分享的优化代码,360自动收录的代码还没使用优化代码,打算暂时保持这样(懒得折腾 [拳头] )。

    • 懿古今
      懿古今【站长】 @回复

      @我爱动感单车网 [呲牙] 我也是用张戈分享的代码,只不过把360的也整合进去而已

      • 楚书业
        楚书业 【县长】 @回复

        @懿古今 跟张戈大神的没啥区别,就多了360而已吧!

        • 懿古今
          懿古今【站长】

          @楚书业 [呲牙] 文中已经说明,就是在张戈大神分享的代码基础上加上360的优化而已,代码中也有张戈分享的连接说明及网址哦。

  8. 网赚博客
    网赚博客 【农民】 @回复

    好东西,最近百度的插件貌似抽风等了

  9. 野人摊影视分享
    野人摊影视分享 【村长】 @回复

    百度的龟速收录,已经不敢恭维了