Google的自动抓取工具支持REP(robots协议)

来源: 搜狐专栏
2026-10-28 06:56:05

  musa访问速度有所改善

  Google的自动抓取工具支持REP(robots协议)。这意味着,在抓取某一网站之前,Google抓取工具会下载并解析该网站的robots.txt文件,以提取关于网站中哪些部分可以被抓取的信息。REP不适用于由用户控制的Google抓取工具(例如Feed订阅),也不适用于用来提高用户安全性的抓取工具(例如恶意软件分析)。本文介绍了Google对REP的解读。有关原始草稿标准的信息,请查看IETFDataTracker。如果您是首次接触robots.txt,请先阅读我们的robots.txt简介。您还可以找到关于创建robots.txt文件的提示,以及一个详尽的常见问题解答列表。什么是robots.txt文件如果您不希望抓取工具访问您网站中的部分内容,可以创建包含相应规则的robots.txt文件。robots.txt文件是一个简单的文本文件,其中包含关于哪些抓取工具可以访问网站的哪些部分的规则。例如,example.com的robots.txt文件可能如下所示:#Thisrobots.txtfilecontrolscrawlingofURLsunderhttps://example.com.#Allcrawlersaredisallowedtocrawlfilesinthe"includes"directory,such#as.css,.js,butGooglebotneedsthemforrendering,soGooglebotisallowed#tocrawlthem.User-agent:*Disallow:/includes/User-agent:GooglebotAllow:/includes/Sitemap:https://example.com/sitemap.xml文件位置和有效范围您必须将robots.txt文件放在网站的顶级目录中,并为其使用支持的协议。就Google搜索而言,支持的协议包括HTTP、HTTPS和FTP。使用HTTP和HTTPS协议时,抓取工具会使用HTTP无条件GET请求来提取robots.txt文件;使用FTP时,抓取工具会使用标准RETR(RETRIEVE)命令,并采用匿名登录方式。robots.txt文件中列出的规则只适用于该文件所在的主机、协议和端口号。和其他网址一样,robots.txt文件的网址也区分大小写。有效robots.txt网址的示例下表列出了robots.txt网址及其适用的网址路径的示例。robots.txt网址示例http://example.com/robots.txt适用于:http://example.com/http://example.com/folder/file不适用于:http://other.example.com/https://example.com/http://example.com:8181/这属于一般情况。该网址对其他子网域、协议或端口号来说无效。对同一个主机、协议和端口号上的所有子目录中的所有文件有效。http://www.example.com/robots.txt适用于:http://www.example.com/不适用于:http://example.com/http://shop.www.example.com/http://www.shop.example.com/子网域上的robots.txt只对该子网域有效。http://example.com/folder/robots.txt不是有效的robots.txt文件。抓取工具不会检查子目录中的robots.txt文件。http://www.exämple.com/robots.txt适用于:http://www.exämple.com/http://xn--exmple-cua.com/不适用于:http://www.example.com/IDN等同于其对应的Punycode版本。另请参阅RFC3492。ftp://example.com/robots.txt适用于:ftp://example.com/不适用于:http://example.com/http://212.96.82.21/robots.txt适用于:http://212.96.82.21/不适用于:http://example.com/(即使托管在212.96.82.21上)以IP地址作为主机名的robots.txt只在抓取作为主机名的该IP地址时有效。该robots.txt文件并不会自动对该IP地址上托管的所有网站有效,但该文件可能是共享的,在此情况下,它也可以在共享主机名下使用。http://example.com/robots.txt适用于:http://example.com:80/http://example.com/不适用于:http://example.com:81/标准端口号(HTTP为80,HTTPS为443,FTP为21)等同于其默认的主机名。http://example.com:8181/robots.txt适用于:http://example.com:8181/不适用于:http://example.com/非标准端口号上的robots.txt文件只对通过这些端口号提供的内容有效。错误处理和HTTP状态代码在请求robots.txt文件时,服务器响应的HTTP状态代码会影响Google抓取工具使用robots.txt文件的方式。下表总结了Googlebot针对各种HTTP状态代码处理robots.txt文件的方式。错误处理和HTTP状态代码2xx(成功)表示成功的HTTP状态代码会提示Google抓取工具处理服务器提供的robots.txt文件。3xx(重定向)Google会按照RFC1945的规定跟踪至少五次重定向,然后便会停止,并将其作为robots.txt的404错误来处理。这也适用于重定向链中任何被禁止访问的网址,因为抓取工具会由于重定向而无法提取规则。Google不会跟踪robots.txt文件中的逻辑重定向(框架、Javascript或元刷新型重定向)。4xx(客户端错误)Google抓取工具会将所有4xx错误解读为网站不存在有效的robots.txt文件,这意味着抓取将不受限制。这包括401(unauthorized)和403(forbidden)HTTP状态代码。5xx(服务器错误)由于服务器无法对Google的robots.txt请求提供明确响应,因此Google会暂时将服务器错误解读为网站完全禁止访问。Google会尝试抓取robots.txt文件,直到获得非服务器错误的HTTP状态代码。503(serviceunavailable)错误会导致非常频繁的重试操作。如果连续30天以上无法访问robots.txt,Google会使用该robots.txt的最后一个缓存副本。如果没有缓存副本,Google会假定没有任何抓取限制。如果您需要暂停抓取,建议为网站上的每个网址提供503HTTP状态代码。如果我们能够确定,某网站因为配置不正确而在缺少网页时返回5xx而不是404状态代码,就会将该网站的5xx错误作为404错误处理。例如,如果返回5xx状态代码的网页上的错误消息为"找不到网页",我们会将该状态代码解释为404(notfound)。其他错误对于因DNS或网络问题(例如超时、响应无效、重置或断开连接、HTTP组块错误等)而无法抓取的robots.txt文件,系统在处理时会将其视为服务器错误。缓存Google通常会将robots.txt文件的内容最多缓存24小时,但在无法刷新缓存版本的情况下(例如出现超时或5xx错误时),缓存时间可能会延长。已缓存的响应可由各种不同的抓取工具共享。Google会根据max-ageCache-ControlHTTP标头来延长或缩短缓存生命周期。文件格式robots.txt文件必须是采用UTF-8编码的纯文本文件,且各行代码必须以CR、CR/LF或LF分隔。Google会忽略robots.txt文件中的无效行,包括robots.txt文件开头处的Unicode字节顺序标记(BOM),并且只使用有效行。例如,如果下载的内容是Html格式而非robots.txt规则,Google会尝试解析内容并提取规则,而忽略其他所有内容。同样,如果robots.txt文件的字符编码不是UTF-8,Google可能会忽略不属于UTF-8范围的字符,从而可能会导致robots.txt规则无效。Google目前强制执行的robots.txt文件大小限制是500KiB,并忽略超过该上限的内容。您可以通过整合会导致robots.txt文件过大的指令来减小robots.txt文件的大小。例如,将已排除的内容放在一个单独的目录中。语法有效的robots.txt行由一个字段、一个冒号和一个值组成。可以选择是否使用空格,但建议使用空格,有助于提高可读性。系统会忽略行开头和结尾的空格。若要添加注释,请在注释前面加上#字符。请注意,#字符后面的所有内容都会被忽略。常见格式为:。Google支持以下字段:user-agent:标识相应规则适用于哪些抓取工具。allow:可抓取的网址路径。disallow:不可抓取的网址路径。sitemap:站点地图的完整网址。allow和disallow字段也称为指令。这些指令始终以directive:[path]的形式指定,其中[path]可以选择性使用。默认情况下,指定的抓取工具没有抓取限制。抓取工具会忽略不带[path]的指令。如果指定了[path]值,该路径值就是robots.txt文件所在网站的根目录的相对路径(使用相同的协议、端口号、主机和域名)。路径值必须以/开头来表示根目录,该值区分大小写。详细了解基于路径值的网址匹配。user-agentuser-agent行用来标识相应规则适用于哪些抓取工具。请参阅Google抓取工具和用户代理字符串,获取可在robots.txt文件中使用的用户代理字符串的完整列表。user-agent行的值不区分大小写。disallowdisallow指令用来指定不能被disallow指令所属的用户代理行所标识的抓取工具访问的路径。抓取工具会忽略不含路径的指令。Google无法将禁止抓取的网页的内容编入索引,但可能仍会将其网址编入索引并将其显示在搜索结果中,但不显示摘要。了解如何阻止编入索引。disallow指令的值区分大小写。用法:disallow:[path]allowallow指令用来指定相应抓取工具可以访问的路径。如果未指定路径,该指令将被忽略。allow指令的值区分大小写。用法:allow:[path]sitemap根据sitemaps.org规定,Google、Bing和其他主流搜索引擎支持robots.txt中的sitemap字段。sitemap字段的值区分大小写。用法:sitemap:[absoluteURL][absoluteURL]行指向站点地图或站点地图索引文件的位置。此网址必须是完全限定网址,包含协议和主机,且无需进行网址编码。此网址不需要与robots.txt文件位于同一主机上。您可以指定多个sitemap字段。sitemap字段不依赖于任何特定的用户代理,只要未被禁止抓取,所有抓取工具都可以追踪它们。例如:user-agent:otherbotdisallow:/kalesitemap:https://example.com/sitemap.xmlsitemap:https://CDN.example.org/other-sitemap.xmlsitemap:https://ja.example.org/テスト-サイトマップ.xml行和规则分组通过对每个抓取工具重复user-agent行,可将适用于多个用户代理的规则组合在一起。例如:user-agent:adisallow:/cuser-agent:bdisallow:/duser-agent:euser-agent:fdisallow:/guser-agent:h此示例中有四个不同的规则组:用户代理"a"为一组用户代理"b"为一组用户代理"e"和"f"为一组用户代理"h"为一组有关组的技术说明,请参阅REP的第2.1节。用户代理的优先顺序对于某个抓取工具而言,只有一个组是有效的。Google抓取工具会在robots.txt文件中查找包含与抓取工具的用户代理相匹配的最具体用户代理的组,从而确定正确的规则组。其他组会被忽略。所有非匹配文本都会被忽略(例如,googlebot/1.2和googlebot*均等同于googlebot)。这与robots.txt文件中的组顺序无关。如果为用户代理声明多个特定组,则这些组中适用于该特定用户代理的所有规则会在内部合并成一个组。特定于用户代理的组和全局组(*)不会合并。示例user-agent字段的匹配情况user-agent:googlebot-news(group1)user-agent:*(group2)user-agent:googlebot(group3)以下为抓取工具选择相关组的方法:每个抓取工具追踪的组GooglebotNewsgooglebot-news遵循组1,因为组1是最具体的组。Googlebot(网络)googlebot遵循组3。GooglebotImagesgooglebot-images遵循组2,因为没有具体的googlebot-images组。GooglebotNews(抓取图片时)抓取图片时,googlebot-news遵循组1。googlebot-news不会为Google图片抓取图片,因此它只遵循组1。Otherbot(网络)其他Google抓取工具遵循组2。Otherbot(新闻)抓取新闻内容但未标识为googlebot-news的其他Google抓取工具遵循组2。即使有相关抓取工具的对应条目,也只有在明确匹配时才会有效。规则分组如果robots.txt文件中有多个组与特定用户代理相关,则Google抓取工具会在内部合并这些组。例如:user-agent:googlebot-newsdisallow:/fishuser-agent:*disallow:/carrotsuser-agent:googlebot-newsdisallow:/shrimp抓取工具会根据用户代理在内部对规则进行分组,例如:user-agent:googlebot-newsdisallow:/fishdisallow:/shrimpuser-agent:*disallow:/carrotsallow、disallow和user-agent以外的其他规则会被robots.txt解析器忽略。这意味着以下robots.txt代码段被视为一个组,因此user-agenta和b均受disallow:/规则的影响:user-agent:asitemap:https://example.com/sitemap.xmluser-agent:bdisallow:/当抓取工具处理robots.txt规则时,会忽略sitemap行。例如,下面说明了抓取工具如何理解之前的robots.txt代码段:user-agent:auser-agent:bdisallow:/基于路径值的网址匹配Google会以allow和disallow指令中的路径值为基础,确定某项规则是否适用于网站上的特定网址。为此,系统会将相应规则与抓取工具尝试抓取的网址的路径部分进行比较。路径中的非7位ASCII字符可以按照RFC3986作为UTF-8字符或百分号转义的UTF-8编码字符纳入。对于路径值,Google、Bing和其他主流搜索引擎支持有限形式的通配符。这些通配符包括:*表示出现0次或多次的任何有效字符。$表示网址结束。路径匹配示例/匹配根目录以及任何下级网址。/*等同于/。结尾的通配符会被忽略。/$仅匹配根目录。任何更低级别的网址均可抓取。/fish匹配以/fish开头的任何路径。匹配项:/fish/fish.html/fish/salmon.html/fishheads/fishheads/yummy.html/fish.php?id=anything不匹配项:/Fish.asp/catfish/?id=fish/desert/fish注意:匹配时区分大小写。/fish*等同于/fish。结尾的通配符会被忽略。匹配项:/fish/fish.html/fish/salmon.html/fishheads/fishheads/yummy.html/fish.php?id=anything不匹配项:/Fish.asp/catfish/?id=fish/fish/匹配/fish/文件夹中的任何内容。匹配项:/fish//animals/fish//fish/?id=anything/fish/salmon.htm不匹配项:/fish/fish.html/Fish/Salmon.asp/*.php匹配包含.php的任何路径。匹配项:/index.php/filename.php/folder/filename.php/folder/filename.php?parameters/folder/any.php.file.html/filename.php/不匹配项:/(即使其映射到/index.php)/windows.PHP/*.php$匹配以.php结尾的任何路径。匹配项:/filename.php/folder/filename.php不匹配项:/filename.php?parameters/filename.php//filename.php5/windows.PHP/fish*.php匹配包含/fish和.php(按此顺序)的任何路径。匹配项:/fish.php/fishheads/catfish.php?parameters不匹配项:/Fish.PHP规则的优先顺序匹配robots.txt规则与网址时,抓取工具会根据规则路径的长度使用最具体的规则。如果规则(包括使用通配符的规则)存在冲突,Google将使用限制性最弱的规则。以下示例演示了Google抓取工具会对特定网址应用什么规则。示例情况http://example.com/pageallow:/pdisallow:/适用规则:allow:/p,因为它更具体。http://example.com/folder/pageallow:/folderdisallow:/folder适用规则:allow:/folder,因为存在多个匹配规则时,Google会使用限制性最弱的规则。http://example.com/page.htmallow:/pagedisallow:/*.htm适用规则:disallow:/*.htm,因为它与网址中的字符匹配得更多,因此更具体。http://example.com/page.php5allow:/pagedisallow:/*.ph适用规则:allow:/page,因为存在多个匹配规则时,Google会使用限制性最弱的规则。http://example.com/allow:/$disallow:/适用规则:allow:/$,因为它更具体。http://example.com/page.htmallow:/$disallow:/适用规则:disallow:/,因为allow规则仅适用于根网址。谷歌搜索引擎优化(SEO)创建并提交robots.txt文件

发布于:
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
用户反馈 合作

Copyright ? 2026 Sohu All Rights Reserved

搜狐公司 版权所有