使用入门 #
robots.txt 文件应位于您网站的根目录下。也就是说,如果您的网站是 www.example.com,则 robots.txt 文件的路径应为 www.example.com/robots.txt。robots.txt 是一种遵照漫游器排除标准创建的纯文本文件,由一条或多条规则组成。每条规则可禁止(或允许)特定抓取工具抓取相应网站中的指定文件路径。
下面是一个包含两条规则的简单 robots.txt 文件,具体说明请见下文:
# Group 1 User-agent: Googlebot Disallow: /nogooglebot/ # Group 2 User-agent: * Allow: / Sitemap: http://www.example.com/sitemap.xml
说明:
- 名为“Googlebot”抓取工具的用户代理不应抓取 http://example.com/nogooglebot/ 文件夹或任何子目录。
- 所有其他用户代理均可访问整个网站。(不指定这条规则也无妨,结果是一样的,因为完全访问权限是系统默认的前提。)
- 网站的 Sitemap 文件位于 http://www.example.com/sitemap.xml
我们稍后会提供一个更详细的示例。
基本的 robots.txt 准则 #
下面是一些适用于 robots.txt 文件的基本准则。我们建议您阅读 robots.txt 文件的完整语法,因为 robots.txt 语法中有一些您需要了解的细微行为。
格式和位置 #
您几乎可以使用任意文本编辑器创建 robots.txt 文件。您所用的文本编辑器应能够创建标准 UTF-8 文本文件。请勿使用文字处理软件,因为此类软件通常会将文件保存为专有格式,且可能会向文件中添加非预期的字符(如弯引号),这样可能会给抓取工具带来问题。
格式和位置规则:
文件必须命名为 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 必须是 UTF-8 编码的文本文件(包括 ASCII)。不能使用其他字符集。
robots.txt 文件包含一个或多个组。
每个组由多条规则或指令(命令)组成,每条指令各占一行。
每个组包含以下信息:
组的适用对象(用户代理)
代理可以访问的目录或文件,和/或
代理无法访问的目录或文件。
系统会按照从上到下的顺序处理这些组,而且一个用户代理只能匹配 1 个规则集(即与相应用户代理匹配的首条最具体规则)。
系统的默认假设是:用户代理可以抓取所有未被 Disallow: 规则屏蔽的网页或目录。
规则区分大小写。例如,Disallow: /file.asp 适用于 http://www.example.com/file.asp,但不适用于 http://www.example.com/FILE.asp。
robots.txt 文件中使用了下列指令:
User-agent:
[必不可少,每个组需含一个或多个 User-agent 条目] 规则适用的搜索引擎漫游器(即网页抓取工具软件)的名称。这是每条规则的首行内容。Web Robots Database 或 Google 用户代理列表中列出了大多数 Google 用户代理名称。支持使用星号 (*) 通配符表示路径前缀、后缀或整个字符串。像下方示例中那样使用星号 (*
),便可匹配除各种 AdsBot 抓取工具之外的所有抓取工具;如需匹配 AdsBot 抓取工具,必须明确指出其名称。(查看 Google 抓取工具名称列表。)示例:
# Example 1: Block only Googlebot User-agent: Googlebot Disallow: / # Example 2: Block Googlebot and Adsbot User-agent: Googlebot User-agent: AdsBot-Google Disallow: / # Example 3: Block all but AdsBot crawlers User-agent: * Disallow: /
Disallow: [每条规则需含至少一个或多个 Disallow 或 Allow 条目] 用户代理不应抓取的目录或网页(相对于根网域而言)。如果要指定网页,应提供浏览器中显示的完整网页名称;如果要指定目录,则应以标记“/”结尾。支持使用通配符“*”表示路径前缀、后缀或整个字符串。
Allow: [每条规则需含至少一个或多个 Disallow 或 Allow 条目] 上文中提到的用户代理应抓取的目录或网页(相对于根网域而言)。此指令用于替换 Disallow 指令,从而允许抓取已禁止访问的目录中的子目录或网页。如果要指定网页,应提供浏览器中显示的完整网页名称;如果要指定目录,则应以标记“/”结尾。支持使用通配符“*”表示路径前缀、后缀或整个字符串。
Sitemap: [可选,每个文件可含零个或多个 Sitemap 条目] 相应网站的站点地图的位置。必须是完全限定的网址;Google 不会假定存在或检查是否存在 http/httpswww.non-www 网址变体。站点地图是一种指示 Google 应抓取哪些内容的理想方式,但并不指示 Google 可以抓取或不能抓取哪些内容。详细了解站点地图。示例:
Sitemap: https://example.com/sitemap.xml Sitemap: http://www.example.com/sitemap.xml
其他规则会被忽略。
再看一个示例文件 #
robots.txt 文件包含一个或多个组,其中每个组都以 User-agent
行(指定组适用的目标)开头。下面是一个包含两个组的文件;内嵌的注释分别对每个组进行了说明:
# Block googlebot from example.com/directory1/... and example.com/directory2/... # but allow access to directory2/subdirectory1/... # All other directories on the site are allowed by default. User-agent: googlebot Disallow: /directory1/ Disallow: /directory2/ Allow: /directory2/subdirectory1/ # Block the entire site from anothercrawler. User-agent: anothercrawler Disallow: /
robots.txt 的完整语法 #
您可在此处找到 robots.txt 的完整语法。robots.txt 语法的某些部分比较棘手,需要重点学习,因此请一定仔细阅读整个文档。
实用的 robots.txt 规则 #
下面是一些常见的实用 robots.txt 规则:
规则 | 示例 |
---|---|
禁止抓取整个网站。请注意,在某些情况下,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: / |
禁止抓取某一网页(在正斜线后面列出该网页): |
User-agent: * 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: / |
匹配以特定字符串结尾的网址,需使用 $。例如,示例代码会屏蔽以 . |
User-agent: Googlebot Disallow: /*.xls$ |