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

投稿  懿古今 2016-07-15 07:21 阅读 933 次 评论 57 条

百度和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.wang/843.html
温馨提示:文章内容仅代表作者个人观点,不代表boke112导航赞同其观点和对其真实性负责!
版权声明:本文为投稿文章,感谢 懿古今 的投稿,版权归原作者所有,欢迎分享本文,转载请保留出处!
WordPress免费响应式主题:Nana

发表评论


表情

  1. 小韭菜
    小韭菜 【农民】 @回复

    借鉴一下

  2. 李明
    李明 【市长】 @回复

    我也用了,效果不错的。

  3. zblog主题
    zblog主题 【农民】 @回复

    没有必要这样做,这是极其消耗资源的

  4. 我爱动感单车网
    我爱动感单车网 【省长】 @回复

    [疑问] [疑问] [疑问] 昨晚已经试着使用了上面的代码,但查看今早发表的文章的源代码,只看到有百度自动推送的js代码,而360自动收录的js代码怎么没有显示出来呢?万望博主回复一声,告知原因,谢谢!

    • 我爱动感单车网
      我爱动感单车网 【省长】2016-08-05 13:07  回复

      @我爱动感单车网还望知道的朋友,不惜赐教一二(雪儿在线等哦,等的好心焦 [抓狂] )!

    • boke112导航
      boke112导航【站长】2016-08-07 16:04  回复

      @我爱动感单车网360的收录查询不是十分准确,如果发现有文章没有被收录也没有显示JS代码,你可以人工复制这篇文章的URL到360搜索看看是否有“提交网址”这个出现,如果没有,就不会显示JS代码,哪怕这个URL没有被收录也一样。

  5. 易淘金股票博客
    易淘金股票博客 【县长】 @回复

    很实用

  6. Amals
    Amals 【镇长】 @回复

    这个很有用,学习了

  7. 动图小咖
    动图小咖 【队长】 @回复

    强力顶起,非常有用的一篇

  8. 龙砚庭
    龙砚庭 【市长】 @回复

    仔细看了下,如果这里写好360的自动提交js,是不是footer.php就不用在加js代码了?

  9. 龙砚庭
    龙砚庭 【市长】 @回复

    我突然想起一个事,这个教程跟以前我们使用的主动推送代码会不会冲突?感觉又多了一个自定义项目栏目。

    • boke112导航
      boke112导航【站长】2016-07-22 15:54  回复

      @龙砚庭目前不知道,而且百度官方也说建议多个渠道同时推送

      • 龙砚庭
        龙砚庭 【市长】2016-07-22 16:27  回复

        @boke112导航昨晚在折腾的时候,突然意识到原先主题就带有百度手动推送的js,加了这段会不会重复了。然后试着两个合二为一(主要是原先的js带有百度收录情况显示),发现没折腾成功,就放弃啦。现在是两段代码都扔着,没发现不妥,就是自定义栏目没出现baidu_record为1。。比较囧!
        对比了下两段代码,感觉张戈大神应该考虑到了,应该是共存的而非替换。

  10. 明月登楼的博客
    明月登楼的博客 【总理】 @回复

    我是用的主动推送和sitemap,其它的几乎都没有怎么用!

  11. 防静电工作台
    防静电工作台 【村长】 @回复

    这个挺使用的

  12. 纯洁博客
    纯洁博客 【市长】 @回复

    家里没网好几天没来逛了

  13. 网扑蜘
    网扑蜘 【镇长】 @回复

    好东西,收藏了!

  14. 捌零男人
    捌零男人 【县长】 @回复

    还没用过这个,一般新发,三天内能收录

  15. 大熊
    大熊 【镇长】 @回复

    需要学习!感谢博主及时分享!

  16. 热腾网
    热腾网 【市长】 @回复

    现在比较关注搜狗,一直不收录,起初收录了首页,后来什么都没有了。

  17. 时光
    时光 【农民】 @回复

    感谢分享!

  18. 卢松松博客
    卢松松博客 【农民】 @回复

    最近正遇到这个问题,谢谢博主分享!

  19. 孟子非博客
    孟子非博客 【市长】 @回复

    有插件推送,省事点

  20. 刘传鹏博客
    刘传鹏博客 【镇长】 @回复

    其实在文章发布的时候推送是最好的

  21. benen005
    benen005 【县长】 @回复

    这技术可以

  22. 半夏
    半夏 【村长】 @回复

    还有,那个360的key在第几行改啊?没看到?

  23. 我爱动感单车网
    我爱动感单车网 【省长】 @回复

    真的很佩服博主的技术,令小白的我实在羡慕 [色] 呀!

  24. 半夏
    半夏 【村长】 @回复

    已经使用张戈博客的百度JS优化版自动推送的,等会换过来~~

  25. Web前端开发
    Web前端开发 【队长】 @回复

    有时间折腾试试

  26. saber
    saber 【队长】 @回复

    博主,评论上的那个麒麟主机被360报这个。
    当前页面含有大量未经证实的信息,访问该网站可能会给您造成财产损失,请您谨慎访问。
    您访问的网址是:http://www.chuaps.com/index.php/buy/index/

    • 半夏
      半夏 【村长】2016-07-15 14:43  回复

      @saber这么好(ja)的(ji)的系统,swapidc 醉了,我自己自建一个给人免费用~还TM收费~也是醉了~

    • boke112导航
      boke112导航【站长】2016-07-16 17:49  回复

      @saber这个是广告主的站点有问题,不过我点击过继续访问后没啥问题。

  27. 龙笑天
    龙笑天 【市长】 @回复

    不错,收藏了~~有时间就折腾下

  28. 真我风采
    真我风采 【县长】 @回复

    有时间看一下。感觉还是有必要的。

  29. 小C博客
    小C博客 【县长】 @回复

    还没使用!等等有时间折腾上去!

  30. 本质游戏
    本质游戏 【村长】 @回复

    对我有帮助

  31. Koolight
    Koolight 【省长】 @回复

    看来我也要把代码加进去了。我博客那个查询百度是否收录的不作用了,不论有没收录,发表文章刷新后,都由未收录变成已收录。以前是正常的,不知道什么时候开始就出问题了。

    • boke112导航
      boke112导航【站长】2016-07-15 11:38  回复

      @Koolight有时候不一定准确,因为是通过判断搜索结果是否有提交网址等关键词来判断,所以准确度应该不是很高