查看: 2884|回复: 8

网站robots协议没写好,后果竟有这么严重!

[复制链接]
  • TA的每日心情
    开心
    前天 15:06
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2017-3-26 22:42:31 | 显示全部楼层 |阅读模式
    导读:
    Robots协议是蜘蛛访问网站的开关,决定蜘蛛可以抓取哪些内容,不可以抓取哪些内容。从网站管理者的角度,我们通过robots的书写,可以决定让蜘蛛抓取哪些文件,而不抓取哪些文件,从而更有利于网站的优化。
    目录:
    1.360与百度之间的“3百大战”
    2.robots协议是什么?它有什么用?
    3. 几个大网站的robots协议分析、书写规则和书写策略
    4.知识扩展:Nofollow与Disallow的区别
    1.360与百度之间的“3百大战”
    还记得2013年的那场360与百度之间“3百大战”()吗?这次事件的结局概是这样:2014年8月5日,奇虎360通过微博等平台恶意攻击、诋毁竞争对手百度一案在北京市海淀区人民法院开庭。法院审理认为,360的行为对百度的商业信誉造成损害,属于不正当竞争,判罚360立即停止不正当竞争行为,在网站首页及媒体显著位置公开声明消除影响,并赔偿相关损失25万元人民币。这也是360近年来第20起官司败诉。
    而此前,百度和360之间就有各种不和谐的消息传来。其中一条就是,360违反“Robots协议”抓取、复制其网站内容。
    2. robots协议是什么?它有什么用?
    Robots是站点与spider沟通的重要渠道,站点通过robots文件声明该网站中不想被搜索引擎收录的部分或者指定搜索引擎只收录特定的部分。请注意,仅当您的网站包含不希望被搜索引擎收录的内容时,才需要使用robots.txt文件。对于站长而言,出于对SEO的要求,通过需要通过书写robots协议来限制蜘蛛抓取某些不参与排名或不利于排名的文件。在某些情况下,如果不限制蜘蛛抓取特定的文件,有可能导致网站保密信息的泄漏。曾经有一个高校网站因为没有设置好robots协议,导致学生信息被蜘蛛抓取而公布到网上。如果是商业性网站,会员信息被公开被网站后果是非常严重的。因为我们站长在管理网站的过程中,要注意robots协议的书写。
    Robots是站点与spider沟通的关口,蜘蛛在访问网站之前,首先要找到robots.txt协议,通过阅读robots决定抓取哪些内容,不抓取哪些内容。当然,这个协议需要搜索引擎各方遵守才行,否则写得再好的robots.txt也是白瞎。
    3. 几个大网站的robots协议分析、书写规则和书写方法
    现在我们假设各个搜索引擎蜘蛛都是遵守规则的,那么就来讨论下如何限制蜘蛛抓取不想被抓取的内容。哪些内容需要禁止蜘蛛抓取呢?我们先来看下一些网站的robots协议是怎么写的。
    3.1 几个大网站的robots协议分析
    网站的robots协议一般以robots.txt形式的文件存放在网站根目录下,因此打开网站后,在网站首页的地址后面添加“/robots.txt”,按回车就可以看到网站的robots协议。例如输入https://www.zhihu.com/robots.txt 就可以看到知乎网站的robots协议。
    robots协议-1.png
    采用同样的方法,可以得到其他几个网站的robots协议。
    下面是某个专业论坛的robots协议:
    robots协议-2.png
    下面是新华网的robots协议:http://www.xinhuanet.com/robots.txt
    robots协议-3.png
    下面是淘宝网的robots协议:https://www.taobao.com/robots.txt
    robots协议-4.png
    3.2 robots协议的书写规则
    通过以上真实的案例,我们来全面学习下robots协议的书写规则与书写策略。
    在电脑上新建一个txt文档,命名为“robots.txt”。
    在书写之前,首先要了解书写规则。
    Robots协议书写规则包括:
    (1)书写时,文字输入过程过程在英文(半角)状态下进行,每行第一个字母要大写!要大写!要大写!
    (2)通过User-agent来定义搜索引擎名称,可以定义多个搜索引擎,语法如下:
    User-agent后紧跟一个英文冒号“:”,然后紧跟一个英文空格,接着紧跟搜索引擎的名称;如果是星号,则表示定义所有的搜索引擎蜘蛛。
    (3)通过Allow或Disallow来定义希望蜘蛛抓取或不抓取的内容,书写格式如下:
    Allow或Disallow紧跟一个英文冒号“:”,然后紧跟一个英文空格,接着跟一个左斜杠“/”,然后是文件目录或文件名。需要注意的是:在默认状态下(即在没有robots协议或robots.txt中未书写Disallow命令时),网站对搜索引擎是allow(允许)的,对所有搜索引擎都是开放的,所有的搜索引擎蜘蛛可以抓取网站上的所有内容。Allow与Disallow搭配使用,对蜘蛛的抓取实行限制和放行。
    除了上面的案例中看到各种形式以外,robots协议的书写还需要注意以下几点:
    (1)通配符*的使用,通配符*代表0个或多个任意字符(包括0个);
    (2)$表示行结束符,用来表示至此结束,后面不跟其他任何字符。结束符$有时候可以用来排除结束字符后面跟有其他字符的情况。例如对于图片meinv1.doc、meinv2.doc、meinv3.doc这些文件,有可能将某个文件另存为“meinv3.docx”,当我们采用“Disallow:/meinv*.doc$”(不允许抓取meinv1、1、3这些文件),目录存在一个与meinv3.doc内容一样的meinv3.docx文件,而这个meinv3.docx文件未被限制抓取,则meinv3.docx仍然有可能被蜘蛛抓取。因为doc$只表示以“doc”结尾的文件,不包括以“docx”结尾的文件。
    (3)目录与非空前缀的区别:从上面淘宝的robots协议可以看到,有些命令以斜杠“/”结尾,而有些则不是。它们有什么区别呢?
    举个例子,网站根目录有这样的路径wwwroot/image/meinv/,“meinv”这个文件夹存放了很多美女图片,图片名字是meinv1.jpg、meinv2.png、meinv3.gif、joymeinv.jpg……。我们想采用来限制蜘蛛抓取“meinv”文件夹中的文件,但是robots.txt文件却写成“Disallow: /image/meinv”时,就会导致robots协议仅仅禁止抓取/image/文件夹下以meinv开头的文件(包括meinv1.jpg、meinv2.png、meinv3.gif、meinvjoy.jpg等)。但是“meinv”文件夹下的“joymienv.jpg”由于并不是以“meinv”开头的,因此并未被禁止抓取。虽然书写了“Disallow: /image/meinv”这行命令,但是搜索引擎仍然可能会抓取“joymienv.jpg”这个文件,达不到预期的禁止抓取“meinv”文件夹下所有文件目的。
    3.3 robots协议的书写策略
    了解上面的规则以后,我们就来说下robots协议的书写策略。
    我们允许或禁止抓取哪些内容,要结合SEO来决定。这些内容主要包括:
    1、网站隐私内容;
    2、不参与排名的内容,例如“MEMBER(会员)”文件、“Templates(模板)”文件、数据库文件、插件文件等;
    3. 中文链接/路径、死链接、垃圾页面、重复页面。
    结合上面的知识,我们来分析上面几个网站的robots.txt协议。
    先看淘宝的robots.txt。
    robots协议-5.png
    淘宝用User-agent定义了很多蜘蛛,包括百度、谷歌、必应蜘蛛等。
    对于百度蜘蛛,采用“Allow:/article”命令允许百度蜘蛛抓取表前缀为article的文件,由于采用的是“/article”的形式,这些允许被抓取的文件是以article开头的文件或文件夹,可以是/article/目录,也可以article1、article2、articlelist等文件。
    随后的“Allow:/osthml”“Allow:/wenzhang”实现的功能与“Allow:/article”相同,不再赘言。
    采用“Disallow:/product/”来禁止抓取“product”文件夹下所有的文件,并不禁止抓取非“product”文件下的带“product”字符的文件(例如在其他文件夹的productlist.excel、product100.png等文件)。
    采用“Disallow:/”命令来禁止百度抓取网站根目录下所有文件。这也就是说,淘宝网屏蔽了百度搜索引擎。
    后面针对其他搜索引擎的命令相似,不再做分析。
    robots协议-56.png
    这里出现的“#”号是什么意思?“#”号表示注解,这行代码对蜘蛛抓取的限制不生效。
    Use-Agent:* (定义所有的搜索引擎蜘蛛)
    Allow:/  表示允许抓取网站根目录下所有文件。
    这个robots协议与网站没有robots协议效果一样。

    robots协议写完后,根据需要,就可以上传到网站的根目录了。
    看了上面的内容,是不是已经知道怎么写robots协议了呢?赶紧自己动手写一个吧。
    4.知识扩展:NofollowDisallow的区别
    Nofollow与Disallow对文件或链接都起到“屏蔽”作用,那二者有何区别?
            (1)是使用的目的不同
    一般使用Nofollow来禁止为某个链接传递权重,例如<a heref=”www.moonseo/contact”rel=”nofollow”>联系我们</a>,这是在告知搜索引擎不要去跟踪这个链接,权重不会传递到这个链接,使权重更集中。
    Robots.txt的Disallow:/contact/,是禁止蜘蛛抓取目录文件夹以及该文件夹的所有,也就是禁止抓取和收录。
    2)作用范围不同,全站和当前页面
    Nofollow属于超链接的一个属性,它只对当前链接有效,而对没有添加Nofollow的其他链接无效;当Nofollow是使用在meta标签中的时候,它的最大作用范围是当前页面的所有链接。
    Disallow的作用范围是当前站点的某个链接,而不管它出现在哪个页面上,所以当你需要禁止一个链接或者一个页面、甚至一个文件夹被抓取的时候,你需要分清楚需要影响的范围是多大。
    Disallow和Nofollow最容易混淆,如果使用不当,很可能就会造成你的网站屏蔽了蜘蛛,而你并不知情。比如你想禁止搜索引擎收录某个页面,建议使用Disallow,如果只是不想页面为某个链接传递权重,比如评论列表上的超链接,就可以使用Nofollow,当站外有一个链接指向你的网站,而你的网站robots.txt使用了Disallow,那么该条外链的价值就大打折扣了,特别是新站一定要慎用。


    点评

    作者提的问题很有创意!: 5.0
    作者提的问题很有创意!: 5
      发表于 2017-3-27 14:59

    该用户从未签到

    发表于 2018-7-24 15:13:07 | 显示全部楼层
    在家赚钱网   www.dapengseo.com  
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2018-7-24 15:14:24 | 显示全部楼层
    在家赚钱网    www.dapengseo.com   
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2018-7-31 16:58:36 | 显示全部楼层
    真的学到了,牛逼,http://www.odkseo.com/post/12.html
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2018-8-1 11:56:59 | 显示全部楼层
    学习了,感谢分享。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2018-10-10 22:17:32 | 显示全部楼层
    学习了,谢谢分享 【www.seotool99.com】
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2018-10-12 16:33:52 来自手机 | 显示全部楼层
    云券盒 yunquanhe.com
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 6 天前 | 显示全部楼层
    学习了 谢谢!健康中国万里行 www.jiankangfund.com
    回复 支持 反对

    使用道具 举报

    *滑动验证:
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    SEO研究中心(moonseo.cn)是互联网最大的搜索引擎优化研究中心,是致力于培养学员用户体验意识和提供专业技术解答的专业培训机构, 成立于2007年,2008年第一家入驻歪歪的培训机构,2014年成为腾讯课堂战略合作机构。
    © 2001-2013 Comsenz Inc. 湘ICP备13004652号-1 Powered by Discuz!X3.4 
    快速回复 返回顶部 返回列表