2. robots.txt创建与管理

Author: 影子 11 views

什么是robots.txt

robots.txt 文件规定了搜索引擎抓取工具可以访问您网站上的哪些网址。 此文件主要用于避免您的网站收到过多请求;它并不是一种阻止 Google 抓取某个网页的机制。若想阻止 Google 访问某个网页,请使用 noindex 禁止将其编入索引,或使用密码保护该网页。

robots.txt 文件有什么作用?

robots.txt 文件主要用于管理流向您网站的抓取工具流量,通常用于阻止 Google 访问某个文件(具体取决于文件类型):

了解 robots.txt 文件的限制

在创建或修改 robots.txt 文件之前,您应了解这种网址屏蔽方法的限制。根据您的目标和具体情况,您可能需要考虑采用其他机制来确保搜索引擎无法在网络上找到您的网址。

  • 并非所有搜索引擎都支持 robots.txt 指令。
    robots.txt 文件中的命令并不能强制规范抓取工具对网站采取的行为;是否遵循这些命令由抓取工具自行决定。Googlebot 和其他正规的网页抓取工具都会遵循 robots.txt 文件中的命令,但其他抓取工具未必如此。因此,如果您想确保特定信息不会被网页抓取工具抓取,我们建议您采用其他屏蔽方法,例如用密码保护服务器上的隐私文件
  • 不同的抓取工具会以不同的方式解析语法。
    虽然正规的网页抓取工具会遵循 robots.txt 文件中的指令,但每种抓取工具可能会以不同的方式解析这些指令。您需要好好了解一下适用于不同网页抓取工具的正确语法,因为有些抓取工具可能会无法理解某些命令。
  • 如果其他网站上有链接指向被 robots.txt 文件屏蔽的网页,则此网页仍可能会被编入索引
    尽管 Google 不会抓取被 robots.txt 文件屏蔽的内容或将其编入索引,但如果网络上的其他位置有链接指向被禁止访问的网址,我们仍可能会找到该网址并将其编入索引。因此,相关网址和其他公开显示的信息(如相关页面链接中的定位文字)仍可能会出现在 Google 搜索结果中。若要正确阻止您的网址出现在 Google 搜索结果中,您应为服务器上的文件设置密码保护使用 noindex 元标记或响应标头,或者彻底移除网页。

如何创建 robots.txt 文件

如果您使用了 Wix 或 Blogger 等网站托管服务,则可能无需(或无法)直接修改 robots.txt 文件。您的托管服务提供商可能会通过显示搜索设置页面或借用其他某种方式,让您告知搜索引擎是否应抓取您的网页。

如果您想向搜索引擎隐藏/取消隐藏您的某个网页,请搜索以下说明:如何在托管服务上修改网页在搜索引擎中的可见性,例如搜索“Wix 向搜索引擎隐藏网页”。

您可以使用 robots.txt 文件控制抓取工具可以访问您网站上的哪些文件。robots.txt 文件应位于网站的根目录下。因此,对于网站 www.example.com,robots.txt 文件的路径应为 www.example.com/robots.txt。robots.txt 是一种遵循漫游器排除标准的纯文本文件,由一条或多条规则组成。每条规则可禁止或允许特定抓取工具抓取相应网站的指定文件路径下的文件。除非您在 robots.txt 文件中另行指定,否则所有文件均隐式允许抓取。

下面是一个包含两条规则的简单 robots.txt 文件:

User-agent: Googlebot Disallow: /nogooglebot/ User-agent: * Allow: / Sitemap: http://www.example.com/sitemap.xml

以下是该 robots.txt 文件的含义

  1. 名为 Googlebot 的用户代理不能抓取任何以 http://example.com/nogooglebot/ 开头的网址。
  2. 所有其他用户代理均可抓取整个网站。不指定这条规则也无妨,结果是一样的;默认行为是用户代理可以抓取整个网站。
  3. 该网站的站点地图文件路径为 http://www.example.com/sitemap.xml

创建 robots.txt 文件的基本准则

要创建 robots.txt 文件并使其在一般情况下具备可访问性和实用性,需要完成 4 个步骤:

  1. 创建一个名为 robots.txt 的文件。
  2. 向 robots.txt 文件添加规则。
  3. 将 robots.txt 文件上传到您的网站。
  4. 测试 robots.txt 文件。

创建 robots.txt 文件

您几乎可以使用任意文本编辑器创建 robots.txt 文件。例如,Notepad、TextEdit、vi 和 emacs 可用来创建有效的 robots.txt 文件。请勿使用文字处理软件,因为此类软件通常会将文件保存为专有格式,且可能会向文件中添加非预期的字符(如弯引号),这样可能会给抓取工具带来问题。如果保存文件时出现相应系统提示,请务必使用 UTF-8 编码保存文件。

格式和位置规则

  • 文件必须命名为 robots.txt。
  • 网站只能有 1 个 robots.txt 文件。
  • robots.txt 文件必须位于其要应用到的网站主机的根目录下。例如,若要控制对 https://www.example.com/ 下所有网址的抓取,就必须将 robots.txt 文件放在 https://www.example.com/robots.txt 下,而不能将其放在子目录中(例如 https://example.com/pages/robots.txt 下)。如果您不确定如何访问自己的网站根目录,或者需要相应权限才能访问,请与网站托管服务提供商联系。如果您无法访问网站根目录,请改用其他屏蔽方法(例如元标记)。
  • robots.txt 文件可应用到子网域(例如 https://website.example.com/robots.txt)或非标准端口(例如 http://example.com:8181/robots.txt)。
  • robots.txt 文件必须是采用 UTF-8 编码(包括 ASCII)的文本文件。Google 可能会忽略不属于 UTF-8 范围的字符,从而可能会导致 robots.txt 规则无效。

向 robots.txt 文件添加规则

规则是关于抓取工具可以抓取网站哪些部分的说明。向 robots.txt 文件中添加规则时,请遵循以下准则:

  • robots.txt 文件包含一个或多个组。
  • 每个组由多条规则或指令(命令)组成,每条指令各占一行。每个组都以 User-agent 行开头,该行指定了组适用的目标。
  • 每个组包含以下信息:
    • 组的适用对象(用户代理)
    • 代理可以访问的目录或文件。
    • 代理无法访问的目录或文件。
  • 抓取工具会按从上到下的顺序处理组。一个用户代理只能匹配 1 个规则集(即与相应用户代理匹配的首个最具体组)。
  • 系统的默认假设是:用户代理可以抓取所有未被 disallow 规则屏蔽的网页或目录。
  • 规则区分大小写。例如,disallow: /file.asp 适用于 https://www.example.com/file.asp,但不适用于 https://www.example.com/FILE.asp
  • # 字符表示注释的开始处。

Google 的抓取工具支持 robots.txt 文件中的以下指令

  • user-agent: [必需,每个组需含一个或多个 User-agent 条目] 该指令指定了规则适用的自动客户端(即搜索引擎抓取工具)的名称。这是每个规则组的首行内容。Google 用户代理列表中列出了 Google 用户代理名称。 使用星号 (*) 会匹配除各种 AdsBot 抓取工具之外的所有抓取工具,AdsBot 抓取工具必须明确指定。例如:
# 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、https、www、非 www 网址变体。站点地图是一种指示 Google 应抓取哪些内容的不错方式,但并不用于指示 Google 可以抓取或不能抓取哪些内容。详细了解站点地图。 示例
Sitemap: https://example.com/sitemap.xml Sitemap: http://www.example.com/sitemap.xml

除 sitemap 之外的所有指令都支持使用通配符 * 表示路径前缀、后缀或整个字符串。

与这些指令均不匹配的行将被忽略。

如需有关每个指令的完整说明,请参阅 Google 对 robots.txt 规范的解释页面。

上传 robots.txt 文件

将 robots.txt 文件保存到计算机后,您便可以将其提供给搜索引擎抓取工具。没有一个统一工具可以帮助您完成这项工作,因为如何将 robots.txt 文件上传到网站取决于您的网站和服务器架构。请与您的托管公司联系,或在托管公司的文档中进行搜索;例如,搜索“上传文件 infomaniak”。

上传 robots.txt 文件后,请测试该文件是否可公开访问,以及 Google 能否解析该文件。

测试 robots.txt 标记 

要测试新上传的 robots.txt 文件是否可公开访问,请在浏览器中打开无痕浏览窗口(或等效窗口),然后转到 robots.txt 文件的位置。例如:https://example.com/robots.txt。如果您看到 robots.txt 文件的内容,就可准备测试标记了。

Google 提供了两种测试 robots.txt 标记的方式:

  1. Search Console 中的 robots.txt 测试工具。您只能针对您网站上可供访问的 robots.txt 文件使用此工具。
  2. 如果您是开发者,请了解并构建 Google 的开源 robots.txt 库,该库也用在 Google 搜索中。您可以使用此工具在计算机上本地测试 robots.txt 文件。

向 Google 提交 robots.txt 文件

在您上传并测试 robots.txt 文件后,Google 的抓取工具会自动找到并开始使用您的 robots.txt 文件。您无需采取任何操作。如果您更新了 robots.txt 文件,并需要尽快刷新 Google 的缓存副本,请了解如何提交更新后的 robots.txt 文件

实用的 robots.txt 规则

如何更新 robots.txt 文件

若要更新现有 robots.txt 文件中的规则,请从您的网站下载 robots.txt 文件的副本,然后进行必要的修改。

下载 robots.txt 文件

您可以通过多种方式下载 robots.txt 文件,例如:

  • 导航到 robots.txt 文件(例如 https://example.com/robots.txt),并将其内容复制到计算机上的新文本文件中。在创建新的本地文件时,请务必遵循与文件格式相关的准则。
  • 使用 cURL 等工具下载 robots.txt 文件的实际副本。例如:curl https://example.com/robots.txt -o robots.txt
  • 使用 Search Console 中的 robots.txt 测试工具下载 robots.txt 文件的副本。
    1. 点击 robots.txt 编辑器右下角的提交。系统会打开“提交”对话框。
    2. 点击提交对话框中的下载,从 robots.txt 测试工具页面下载 robots.txt 代码。

修改 robots.txt 文件

在文本编辑器中打开从您的网站下载的 robots.txt 文件,然后对规则进行必要的修改。请确保使用正确的语法,并以 UTF-8 编码格式保存文件。

上传 robots.txt 文件

将新的 robots.txt 文件以文本文件的形式上传到您所在网域的根目录下,名称仍为 robots.txt 将文件上传到网站的方式在很大程度上取决于平台和服务器。请查看有关将 robots.txt 文件上传到网站的帮助提示。

Leave a Comment