robots.txt是任何搜索引擎优化的重要组成部分,也是SEOer的重要一课。

但是,有时候robots.txt文件会被网站优化师SEOer忽视。

无论你是否刚刚起步,或者你是一个优化老手,都需要知道robots.txt文件应该怎样写。

那么,我们先来了解:


什么是robots.txt文件?


robots.txt文件可以用于各种各样的事情。

例如从让搜索引擎知道去哪里找到你的网站站点地图、告诉他们哪些页面不需要抓取,以管理网站爬行预算。

搜索引擎会定期检查网站的robots.txt文件,看看是否有任何抓取网站的说明。我们称这些特别的说明为“指令”。

如果没有robots.txt文件或者没有适用的指令,搜索引擎将抓取整个网站。


Okay,那什么是爬行预算(Crawl Budget)

简单解释下:

谷歌和其他搜索引擎一样,他们只有有限的资源可用于抓取和索引你网站的内容。

如果你的网站只有几百个网址,那么Google应该可以轻松抓取到所有网页并将其编入索引。

但是,如果网站很大,例如电子商务网站,有数千个包含大量自动生成的网页(如搜索页),那么Google可能无法抓取所有这些网页,你将失去许多潜在的流量和可见性。


所以我们要通过设置robots.txt文件用于管理网站爬行预算。


谷歌表示:

“ 拥有许多低价值的网址会对网站的抓取和索引产生负面影响。“


那些低价值的网址就比如像搜索页一类的页面。生成太多这些页面,谷歌蜘蛛如果去爬行的话,将消耗大量爬行预算,以至于一些重要的页面可能就不能被收录了。

使用robots.txt文件来帮助管理网站抓取预算,确保搜索引擎尽可能高效地(尤其是大型网站)抓取重要网页而不是浪费时间去抓取登录,注册或支付页面等页面。


你为什么需要robots.txt?


从搜索引擎优化SEO的角度来看,robots.txt文件起着至关重要的作用。它告诉搜索引擎他们如何最好地抓取你的网站。

使用robots.txt文件可以阻止搜索引擎访问网站的某些部分防止重复内容,并为搜索引擎提供有关如何更有效地抓取你网站的有用提示

在对robots.txt进行更改时要小心:因为设置失误可能会使搜索引擎无法访问网站的大部分内容。


在Googlebot,Bingbot等机器人抓取网页之前,它会首先检查是否存在robots.txt文件,如果存在,则通常会遵循该文件中找到的路线。

你可以通过robots.txt文件控制以下事情:

  1. 阻止访问网站的某个部分(开发和登台环境等)

  2. 保持网站内部搜索结果页面不被抓取,编入索引或显示在搜索结果中

  3. 指定站点地图或站点地图的位置

  4. 通过阻止访问低价值页面来优化抓取预算(登录,支付页面,购物车等)

  5. 防止将网站上的某些文件(图像,PDF等)编入索引


让我们看一个例子来说明这一点:

你有一个电子商务网站,访问者可以使用筛选功能快速搜索你的产品,如通过销量、价格排列。

此筛选生成的页面基本上显示与其他页面相同的内容。

这对用户很有用,但会混淆搜索引擎,因为它会创建重复的内容。

如果搜索引擎把这些网页编入索引,将浪费你宝贵的抓取资源。

因此,应该设置规则,以便搜索引擎不访问这些页面。


检查您是否有robots.txt文件


如果你不熟悉robots.txt文件,或者不确定你的网站是否有该文件,可以快速查看。

方法:

将 /robots.txt 添加到首页URL的末尾。

示例:www.yoursite.com/robots.txt

如果没有显示任何内容,那么说明你的站点没有robots.txt文件。那就应该设置一个了。


如何创建robots.txt文件


创建robots.txt文件是一个相当简单的过程:

新建文本文档 ——>重命名为robots.txt(所有文件必须小写)——> 编写规则 ——>用FTP把文件上(放到根目录下)传到空间


下面的文章是谷歌官方介绍,将向你robots.txt文件的创建过程,可以帮助你轻松建立你自己的robots.txt文件:

https://support.google.com/webmasters/answer/6062596?hl=zh-Hans


注意:

robots.txt自身是一个文本文件。它必须位于域名的根目录中并 被命名为"robots.txt"。位于子目录中的 robots.txt 文件无效,因为爬虫只在域名的根目录中查找此文件。

例如,http://www.example.com/robots.txt 是有效位置,http://www.example.com/mysite/robots.txt 则不是。


如果你用WordPress建站,可以用virtual robots、yoast、all in one seo等插件创建和设置。


Robots.txt示例


以下是可以在自己的网站上使用robots.txt文件的几个示例。

允许所有爬虫 /蜘蛛访问所有网站内容:

User-agent:*
Disallow:

禁止所有爬虫 /蜘蛛访问所有网站内容:

User-agent:*
Disallow:/

这里可以了解到在创建站点robots.txt时出错是多么容易,因为阻止整个站点被看到的区别在于:disallow指令(Disallow:/)中的简单斜杠。


阻止谷歌爬虫 /蜘蛛访问:

User-agent:Googlebot
Disallow:/

阻止爬虫 /蜘蛛访问特定页面:

User-agent:
Disallow:/thankyou.html

从服务器的一部分中排除所有爬虫:

User-agent:*
Disallow:/ cgi-bin /
Disallow:/ tmp /
Disallow:/junk/


这是theverge.com网站上robots.txt文件的示例:



一、说明theverge不想谷歌爬虫去抓取这些目录下的内容

二、说明theverge不想任何爬虫去抓取这些目录下的内容

三、theverge把所有的站点地图列在robots.txt里面



可以在此处查看示例文件:www.theverge.com/robots.txt

可以看到The Verge如何使用他们的robots.txt文件,专门支出Google的新闻蜘蛛“Googlebot-News”(第一点),以确保它不会抓取网站上的这些目录。

重要的是要记住,如果想确保爬虫不会抓取你网站上的某些页面或目录,那么可以在robots.txt文件的“Disallow”声明中调出这些页面和/或目录,如上面例示的做法。

另外,还可以在robots.txt规范指南中查看Google如何处理robots.txt文件,Google对robots.txt文件的当前最大文件大小限制。

Google的最大大小设置为500KB,因此请务必注意您的网站robots.txt文件的大小。


robots.txt文件的最佳做法


以下内容提取于谷歌官方介绍,原文:

https://support.google.com/webmasters/answer/6062596?hl=zh-Hans


位置规则和文件名


robots.txt文件应始终放在root网站的位置(在主机的顶级目录中)并带有文件名robots.txt,例如:https://www.example.com/robots.txt

请注意,robots.txt文件的URL与其他任何URL一样,区分大小写。

如果在默认位置找不到robots.txt文件,搜索引擎会认为没有指令。

  • 文件必须命名为 robots.txt。

  • 网站只能有 1 个 robots.txt 文件。

  • robots.txt 文件必须位于它所应用到的网站主机的根目录下。例如,要控制对 http://www.example.com/ 下所有网址的抓取,就必须将 robots.txt 文件放在根目录下(即 http://www.example.com/robots.txt),而不能放在子目录下(例如 http://example.com/pages/robots.txt)。

  • robots.txt 文件可应用到子网域(例如 http://website.example.com/robots.txt)或非标准端口(例如 http://example.com:8181/robots.txt)。


语法


  • robots.txt 必须是 ASCII 或 UTF-8 文本文件。不允许包含其他字符。

  • robots.txt 文件由一条或多条规则组成。

  • 每条规则由多条指令(说明)组成,每条指令各占一行。

  • 每条规则包含以下信息:

    • 此规则的适用对象(即User-agent

    • 代理可以访问的目录或文件,和/或

    • 代理无法访问的目录或文件。

  • 系统会按照从上到下的顺序处理这些规则,而且一个用户代理只能匹配 1 个规则集(即与相应用户代理匹配的首条最具体的规则)。

  • 系统的默认假设是:用户代理可以抓取所有未被 Disallow: 规则禁止访问的网页或目录。

  • 规则区分大小写。例如,Disallow: /file.asp 适用于 http://www.example.com/file.asp,但不适用于 http://www.example.com/FILE.asp


规则 示例
禁止抓取整个网站。 请注意,在某些情况下,Google 即使未抓取网站的网址,仍可能会将其编入索引。注意:这不适用于各种 AdsBot 抓取工具,此类抓取工具必须明确指定。

User-agent: *

Disallow: /

禁止抓取某一目录及其内容(在目录名后面添加一道正斜线)。请注意,若想禁止访问私密内容,则不应使用 robots.txt,而应改用适当的身份验证机制。对于 robots.txt 文件所禁止抓取的网址,Google 仍可能会在不进行抓取的情况下将其编入索引;另外,由于 robots.txt 文件可供任何人随意查看,因此可能会泄露您的私密内容的位置。

User-agent: *

Disallow: /calendar/

Disallow: /junk/

仅允许使用某一抓取工具

User-agent: Googlebot-news

Allow: /


User-agent: *

Disallow: /

允许使用除某一抓取工具以外的其他所有抓取工具

User-agent: Unnecessarybot

Disallow: /


User-agent: *

Allow: /


禁止抓取某一网页(在正斜线后面列出网页): Disallow: /private_file.html
禁止 Google 图片访问某一特定图片:

User-agent: Googlebot-Image

Disallow: /images/dogs.jpg

禁止 Google 图片访问您网站上的所有图片:

User-agent: Googlebot-Image

Disallow: /

禁止抓取某一特定类型的文件(例如 .gif):

User-agent: Googlebot

Disallow: /*.gif$

禁止抓取整个网站,但允许在这些网页上显示 AdSense 广告(禁止使用除 Mediapartners-Google 以外的所有网页抓取工具)。这种方法会阻止您的网页显示在搜索结果中,但 Mediapartners-Google 网页抓取工具仍能分析这些网页,以确定要向您网站上的访问者显示哪些广告。

User-agent: *

Disallow: /


User-agent: Mediapartners-Google

Allow: /

匹配以某一特定字符串结尾的网址 - 需使用美元符号 ($)。例如,示例代码会禁止访问以 .xls 结尾的所有网址:

User-agent: Googlebot

Disallow: /*.xls$


优先顺序

重要的是要注意搜索引擎处理robots.txt文件的方式不同。默认情况下,第一个匹配指令总是有优先权

但是Google谷歌和Bing必应,更偏重于具体的目录。

就是说:如果指令的字符长度较长,则谷歌和必应会跟看重Allow指令。


例子

User-agent:*

Allow:/ about / company /

Disallow:/ about /

在上面的示例中/about/,除了子目录之外,所有搜索引擎(包括Google和Bing)都不允许访问该目录/about/company/


例子

User-agent:*

Disallow:/ about /

Allow:/ about / company /

在上面的示例中,除Google和Bing之外的所有搜索引擎都不允许访问/about/目录,包括/about/company/

但允许 Google和Bing 访问/about/company/因为该Allow指令比Disallow指令长,目录位置更具体。


指令


你只能为每个搜索引擎定义一组指令。为一个搜索引擎设置多组指令会使它们混淆。


  • User-agent:[必需,每条规则需含一个或多个 User-agent 条目] ,填写搜索引擎蜘蛛(抓取工具)的名称。这是每条规则的首行内容。Web Robots Database 和 Google User Agent(抓取工具)列表中列出了大多数用户代理名称。支持使用星号 (*) 通配符表示路径前缀、后缀或整个字符串。像下例中那样使用星号 (*) 可匹配除各种 AdsBot 抓取工具之外(此类抓取工具必须明确指定)的所有抓取工具。示例:


    # 示例 1:仅屏蔽 Googlebot
    User-agent: Googlebot
    Disallow: /

    # 示例 2:屏蔽 Googlebot 和 Adsbot
    User-agent: Googlebot
    User-agent: AdsBot-Google
    Disallow: /

    # 示例 3:屏蔽除 AdsBot 抓取工具之外的所有抓取工具
    User-agent: *
    Disallow: /


  • Disallow:[每条规则需含至少一个或多个 Disallow 或 Allow 条目] 用户代理不应抓取的目录或网页(相对于根网域而言)。如果要指定网页,就应提供浏览器中显示的完整网页名称;如果要指定目录,则应以标记“/”结尾。支持使用通配符“*”表示路径前缀、后缀或整个字符串。

  • Allow:[每条规则需含至少一个或多个 Disallow 或 Allow 条目] 上文中提到的用户代理应抓取的目录或网页(相对于根网域而言)。此指令用于替换 Disallow 指令,从而允许抓取已禁止访问的目录中的子目录或网页。如果要指定网页,就应提供浏览器中显示的完整网页名称;如果要指定目录,则应以标记“/”结尾。支持使用通配符“*”表示路径前缀、后缀或整个字符串。


  • Sitemap:[可选,每个文件可含零个或多个 Sitemap 条目] 相应网站的站点地图的位置。必须是完全限定的网址;Google 不会假定存在或检查是否存在 http/https/www/非 www 等网址变体。站点地图是一种用于指示 Google 应抓取哪些内容(而不是可以或无法抓取哪些内容)的好方法。详细了解站点地图。 示例:


    Sitemap: https://example.com/sitemap.xml
    Sitemap: http://www.example.com/sitemap.xml



要尽可能具体

disallow指令也会触发部分匹配。

在定义Disallow指令时尽可能具体,以防止无意中禁止访问文件。


例子

User-agnet:*

Disallow:/directory

上面的示例不允许搜索引擎访问:

  • /directory

  • /directory/

  • /directory-name-1

  • /directory-name.html

  • /directory-name.php

  • /directory-name.pdf

所以要指明那个目录是需要被禁止爬行的。


另外

网站管理员必须使蜘蛛程序远离某些服务器上的目录——保证服务器性能。比如:大多数网站服务器都有程序储存在“cgi-bin”目录下,因此在robots.txt文件中加入“Disallow: /cgi-bin”是个好主意,这样能够避免将所有程序文件被蜘蛛索引,可以节省服务器资源。一般网站中不需要蜘蛛抓取的文件有:后台管理文件、程序脚本、附件、数据库文件、编码文件、样式表文件、模板文件、导航图片和背景图片等等。


特定User Agent的指令,不包含在所有User Agent抓取工具的指令

这个是什么意思?


让我们看一个明确的例子:

User-agent: *

Disallow:/ secret /

Disallow:/ test /

Disallow:/ not-started-yet /

User-agent:googlebot

Disallow:/ not-started-yet /

在上面的示例中,除Google之外的所有搜索引擎都不允许访问/secret//test//not-launched-yet/

Google不允许访问/not-launched-yet/,但允许访问/secret//test/


如果您不想让googlebot访问/secret//not-launched-yet/,那么需要googlebot特别重复这些指令:

User-agent:*

Disallow:/ secret /

Disallow:/ test /

Disallow:/ not-started-yet /

User-agent:googlebot

Disallow:/ secret /

Disallow:/ not-started-yet /



robots.txt文件有哪些限制?


  • 页面仍出现在搜索结果中

由于robots.txt而导致搜索引擎无法访问的网页,但如果它们是从已抓取的网页进行链接,则仍会显示在搜索结果中。例子:

Protip:可以使用Google Search Console的网址删除工具从Google中删除这些网址。请注意,这些网址只会被暂时删除。为了让他们不在Google的结果页面中,需要每90天删除一次网址。

  • 缓存

谷歌表示robots.txt文件通常缓存最多24小时。在robots.txt文件中进行更改时,请务必考虑到这一点。

目前还不清楚其他搜索引擎如何处理robots.txt的缓存,但一般来说,最好避免缓存你的robots.txt文件,以避免搜索引擎花费超过必要的时间来接收更改。

  • 文件大小

对于robots.txt文件,Google目前支持的文件大小限制为500 kb。可以忽略此最大文件大小之后的任何内容。


检查robots.txt文件和URL

可以在旧版谷歌站长工具进行检查。

点击  抓取 > robots.txt测试工具

可以看到你的robots内容,下面输入想测试的url,点击测试,就能知道该url是否有被robots.txt的指令给限制了。


也可以通过下面链接直接进入:

https://support.google.com/webmasters/answer/6062598?hl=zh-Hans


总结最佳做法:


  1. 确保所有重要页面都是可抓取的

  2. 不要阻止网站JavaScript和CSS文件

  3. 在站长工具检查重要的URL是否被禁止抓取

  4. 正确大写目录,子目录和文件名

  5. 将robots.txt文件放在网站根目录中

  6. Robots.txt文件区分大小写,文件必须命名为“robots.txt”(没有其他变体)

  7. 请勿使用robots.txt文件隐藏私人用户信息,因为它仍然可见

  8. 将站点地图位置添加到robots.txt文件中。


注意事项:


如果你有一个子域多个子域在网站,那么你将需要对每个子域以及在主根域robots.txt文件。

这看起来像这个

store.yoursite.com/robots.txtyoursite.com/robots.txt。

原因是,其他页面可能链接到该信息,如果有直接链接,它将绕过robots.txt规则,并且内容可能仍会被索引。

如果您需要阻止您的网页在搜索结果中真正被编入索引,请使用不同的方法,例如添加密码保护或向这些网页添加noindex元标记。Google无法登录受密码保护的网站/网页,因此他们无法抓取或索引这些网页。


不要在robots.txt中使用noindex

虽然有人说noindex在robots.txt文件中使用指令是个好主意,但它不是官方标准,谷歌公开建议不要使用它。

谷歌尚未明确原因,但我们认为我们应该认真对待他们的建议,因为:

  • 如果使用多种方式发出不索引的信号,那么很难跟踪哪些页面不应该被索引。

  • noindex指令不是万无一失的,因为它不是官方标准。可能它不会被谷歌100%追踪。

  • 我们只知道Google使用该noindex指令,其他搜索引擎(可能)不会将其用于noindex页面。


结论


如果你之前从未使用过robots.txt文件,可能会有点紧张,但请放心使用,而且设置相当简单。

一旦熟悉了文件的细节,就可以增强网站的搜索引擎优化。

通过正确设置robots.txt文件,将帮助搜索引擎爬虫明智地花费他们的抓取预算,并帮助确保他们不浪费时间和资源来抓取不需要抓取的网页。

这将有助于他们以尽可能最好的方式在SERP中组织和显示你的网站内容,意味着你将获得更多的曝光。

设置robots.txt文件并不一定需要花费大量的时间和精力。在大多数情况下,它是一次性设置,然后可以进行一些小的调整和更改,以帮助更好地塑造网站。

我希望本文中介绍的做法、提示和建议有助你着手创建/调整你的网站robots.txt文件。


附各大搜索引擎蜘蛛特征


1. 百度蜘蛛:Baiduspider网上的资料百度蜘蛛名称有BaiduSpider、baiduspider等,都洗洗睡吧,那是旧黄历了。百度蜘蛛最新名称为Baiduspider。日志中还发现了Baiduspider-image这个百度旗下蜘蛛,查了下资料(其实直接看名字就可以了……),是抓取图片的蜘蛛。常见百度旗下同类型蜘蛛还有下面这些:Baiduspider-mobile(抓取wap)、Baiduspider-image(抓取图片)、Baiduspider-video(抓取视频)、Baiduspider-news(抓取新闻)。注:以上百度蜘蛛目前常见的是Baiduspider和Baiduspider-image两种。

2. 谷歌蜘蛛:Googlebot这个争议较少,但也有说是GoogleBot的。谷歌蜘蛛最新名称为“compatible; Googlebot/2.1;”。还发现了Googlebot-Mobile,看名字是抓取wap内容的。

3. 360蜘蛛:360Spider,它是一个很“勤奋抓爬”的蜘蛛。

4、SOSO蜘蛛:Sosospider,也可为它颁一个“勤奋抓爬”奖的蜘蛛。

5、雅虎蜘蛛:“Yahoo! Slurp China”或者Yahoo!名称中带“Slurp”和空格,名称有空格robots里名称可以使用“Slurp”或者“Yahoo”单词描述,不知道有效无效。

6、有道蜘蛛:YoudaoBot,YodaoBot(两个名字都有,中文拼音少了个U字母读音差别很大嘎,这都会少?)

7、搜狗蜘蛛:Sogou News Spider搜狗蜘蛛还包括如下这些:

Sogou web spider、Sogou inst spider、Sogou spider2、Sogou blog、Sogou News Spider、Sogou Orion spider,(参考一些网站的robots文件,搜狗蜘蛛名称可以用Sogou概括,无法验证不知道有没有效)看看最权威的百度的robots.txt ,http://www.baidu.com/robots.txt 就为Sogou搜狗蜘蛛费了不少字节,占了一大块领地。“Sogou web spider;Sogou inst spider;Sogou spider2;Sogou blog;Sogou News Spider;Sogou Orion spider”目前6个,名称都带空格。线上常见”Sogou web spider/4.0″ ;”Sogou News Spider/4.0″ ;”Sogou inst spider/4.0″ 可以为它颁个“占名为王”奖。

8、MSN蜘蛛:msnbot,msnbot-media(只见到msnbot-media在狂爬……)

9、必应蜘蛛:bingbot线上(compatible; bingbot/2.0;)

10、一搜蜘蛛:YisouSpider

11、Alexa蜘蛛:ia_archiver

12、宜sou蜘蛛:EasouSpider

13、即刻蜘蛛:JikeSpider

14、一淘网蜘蛛:EtaoSpider“Mozilla/5.0 (compatible; EtaoSpider/1.0; http://省略/EtaoSpider)”根据上述蜘蛛中选择几个常用的允许抓取,其余的都可以通过robots屏蔽抓取。如果你暂时空间流量还足够使用,等流量紧张了就保留几个常用的屏蔽掉其它蜘蛛以节省流量。至于那些蜘蛛抓取对网站能带来有利用的价值,网站的管理者眼睛是雪亮的。

另外还发现了如 YandexBot、AhrefsBot和ezooms.bot这些蜘蛛,据说这些蜘蛛国外,对中文网站用处很小。那不如就节省下资源。




Peace Out


公众号ID:yestupa
扫码关注图帕先生
获取更多国外SEM、SEO干货


给我【在看】

你也越好看!





点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

服务号

订阅号

备注【拉群】

商务洽谈

微信联系站长

发表
评论
立即
投稿
返回
顶部