什么是 robots.txt? 用例子钉它的初学者指南
已发表: 2022-03-29
啊,robots.txt——一个很小的文件,却有着重大的意义。 伙计们,这是您不想弄错的一种技术 SEO 元素。
在本文中,我将解释为什么每个网站都需要 robots.txt 以及如何创建一个(不会导致 SEO 出现问题)。 我将回答常见的常见问题解答并包括如何为您的网站正确执行它的示例。 我还将为您提供涵盖所有详细信息的可下载指南。
内容:
- 什么是 robots.txt?
- 为什么 robots.txt 很重要?
- 但是,robots.txt 有必要吗?
- robots.txt 会出现什么问题?
- robots.txt 是如何工作的?
- 无错误创建 robots.txt 的提示
- robots.txt 测试器
- 机器人排除协议指南(免费下载)
什么是 robots.txt?
Robots.txt 是网站发布者创建并保存在其网站根目录的文本文件。 其目的是告诉自动网络爬虫(例如搜索引擎机器人)不要在网站上爬取哪些页面。 这也称为机器人排除协议。
Robots.txt 不保证排除的 URL 不会被编入索引以供搜索。 这是因为搜索引擎蜘蛛仍然可以通过链接到它们的其他网页找到这些页面。 或者,这些页面可能仍会从过去编入索引(稍后会详细介绍)。
Robots.txt 也不能绝对保证机器人不会抓取排除的页面,因为这是一个自愿系统。 主要搜索引擎机器人很少不遵守您的指令。 但其他不良网络机器人,如垃圾邮件机器人、恶意软件和间谍软件,通常不服从命令。
请记住,robots.txt 文件是可公开访问的。 您只需将 /robots.txt 添加到域 URL 的末尾即可查看其 robots.txt 文件(如我们的此处)。 因此,请勿包含任何可能包含业务关键信息的文件或文件夹。 并且不要依赖 robots.txt 文件来保护私人或敏感数据免受搜索引擎的攻击。
为什么 robots.txt 很重要?
搜索引擎机器人具有抓取和索引网页的指令。 使用 robots.txt 文件,您可以有选择地排除网页、目录或整个网站被抓取。
这在许多不同的情况下都很方便。 以下是您需要使用 robots.txt 的一些情况:
- 阻止某些不应被抓取/索引的页面或文件(例如不重要或类似的页面)
- 在更新时停止抓取网站的某些部分
- 告诉搜索引擎您的站点地图的位置
- 告诉搜索引擎忽略网站上的某些文件,如视频、音频文件、图像、PDF 等,而不是让它们出现在搜索结果中
- 帮助确保您的服务器不会被请求淹没*
*使用 robots.txt 阻止不必要的抓取是减轻服务器压力并帮助机器人更有效地找到您的优质内容的一种方法。 谷歌在这里提供了一个方便的图表。 此外,Bing 支持 crawl-delay 指令,这有助于防止过多的请求并避免服务器不堪重负。
当然,robots.txt 的应用有很多,我会在这篇文章中详细介绍。
但是,robots.txt 有必要吗?
每个网站都应该有一个 robots.txt 文件,即使它是空白的。 当搜索引擎机器人进入您的网站时,他们首先寻找的是 robots.txt 文件。
如果不存在,则为蜘蛛提供 404(未找到)错误。 尽管 Google 表示即使没有 robots.txt 文件,Googlebot 也可以继续抓取网站,但我们认为最好让 bot 请求加载的第一个文件而不是产生 404 错误。
robots.txt 会出现什么问题?
如果您不小心,这个简单的小文件可能会导致 SEO 出现问题。 这里有几个需要注意的情况。
1. 不小心屏蔽了你的整个网站
这个问题发生的频率比你想象的要多。 开发人员可以在开发过程中使用 robots.txt 隐藏网站的新部分或重新设计的部分,但在发布后忘记取消阻止。 如果它是一个现有的网站,这个错误可能会导致搜索引擎排名突然下降。
在准备启动新站点或站点部分时,能够关闭抓取非常方便。 只要记住在站点上线时更改您的 robots.txt 中的该命令。
2.排除已经被索引的页面
屏蔽已编入索引的 robots.txt 页面会导致它们卡在 Google 的索引中。
如果您排除已经在搜索引擎索引中的页面,它们将保留在那里。 为了真正从索引中删除它们,您应该在页面本身上设置一个元机器人“noindex”标签,让 Google 抓取并处理它。 一旦页面从索引中删除,然后在 robots.txt 中阻止它们,以防止 Google 将来请求它们。
robots.txt 是如何工作的?
要创建 robots.txt 文件,您可以使用记事本或 TextEdit 等简单的应用程序。 用文件名robots.txt保存它,然后将它作为 www.domain.com/robots.txt 上传到您网站的根目录——这是蜘蛛会寻找它的地方。
一个简单的 robots.txt 文件如下所示:
用户代理: *
禁止:/目录名称/
Google 在其关于创建 robots.txt 的帮助文件中很好地解释了组中不同行在 robots.txt 文件中的含义:
每组由多个规则或指令(指令)组成,每行一个指令。
一个组提供以下信息:
- 该组适用于谁(用户代理)
- 代理可以访问哪些目录或文件
- 代理无法访问哪些目录或文件
接下来,我将详细解释 robots.txt 文件中的不同指令。
Robots.txt 指令
robots.txt 中使用的常用语法包括:
用户代理
用户代理是指您在其中发出命令的机器人(例如,Googlebot 或 Bingbot)。 您可以为不同的用户代理设置多个指令。 但是当您使用 * 字符时(如上一节所示),这是一个包罗万象的意思,表示所有用户代理。 您可以在此处查看用户代理列表。
不允许
Disallow 规则指定要从 Web 机器人访问中排除的文件夹、文件甚至整个目录。 示例包括以下内容:

允许机器人爬取整个网站:
用户代理: *
不允许:
禁止来自整个网站的所有机器人:
用户代理: *
不允许: /
禁止“/myfolder/”和“myfolder”的所有子目录中的所有机器人:
用户代理: *
禁止:/myfolder/
禁止所有机器人访问任何以“myfile.html”开头的文件:
用户代理: *
禁止:/myfile.html
禁止 Googlebot 访问以“my”开头的文件和文件夹:
用户代理:googlebot
不允许:/我的
允许
此命令仅适用于 Googlebot,并告诉它即使其父目录或网页被禁止,它也可以访问子目录文件夹或网页。
举个例子:禁止 /scripts/文件夹中的所有机器人,除了 page.php:
禁止:/scripts/
允许:/scripts/page.php
爬行延迟
这告诉机器人要等待多长时间才能抓取网页。 网站可能会使用它来保留服务器带宽。 Googlebot 无法识别此命令,并且 Google 会要求您通过 Search Console 更改抓取速度。 尽可能避免抓取延迟或谨慎使用它,因为它会严重影响网站的及时有效抓取。
网站地图
告诉搜索引擎机器人在 robots.txt 文件中的何处可以找到您的 XML 站点地图。 例子:
用户代理: *
禁止:/目录名称/
站点地图:https://www.domain.com/sitemap.xml
要了解有关创建 XML 站点地图的更多信息,请参阅:什么是 XML 站点地图以及如何制作?
通配符
有两个字符可以帮助指导机器人如何处理特定的 URL 类型:
性格。 如前所述,它可以通过一组规则将指令应用于多个机器人。 另一个用途是匹配 URL 中的字符序列以禁止这些 URL。
例如,以下规则将禁止 Googlebot 访问任何包含“页面”的 URL:
用户代理:googlebot
禁止:/*页面
$ 字符。 $ 告诉机器人匹配 URL 末尾的任何序列。 例如,您可能希望阻止抓取网站上的所有 PDF:
用户代理: *
禁止:/*.pdf$
请注意,您可以组合 $ 和 * 通配符,它们可以组合用于允许和禁止指令。
例如,禁止所有 asp 文件:
用户代理: *
禁止:/*asp$
- 由于 $ 指定结尾,这不会排除带有查询字符串或文件夹的文件
- 由于 asp – /pretty-wasp 前面的通配符而被排除
- 由于 asp – /login.asp 前面的通配符而被排除
- 由于 $ 和包含查询字符串 (?forgotten-password=1) – /login.asp?forgotten-password=1 的 URL 不排除
不爬行与不索引
如果您不希望 Google 将页面编入索引,那么除了 robots.txt 文件之外,还有其他补救措施。 正如谷歌在这里指出的那样:
我应该使用哪种方法来阻止爬虫?
- robots.txt:如果对您的内容的抓取导致您的服务器出现问题,请使用它。 例如,您可能希望禁止抓取无限日历脚本。 您不应使用 robots.txt 阻止私有内容(改用服务器端身份验证)或处理规范化。 要确保 URL 未被编入索引,请改用 robots 元标记或 X-Robots-Tag HTTP 标头。
- robots 元标记:如果您需要控制单个 HTML 页面在搜索结果中的显示方式(或确保不显示),请使用它。
- X-Robots-Tag HTTP 标头:如果您需要控制非 HTML 内容在搜索结果中的显示方式(或确保不显示),请使用它。
以下是来自 Google 的更多指导:
阻止 Google 抓取页面可能会将该页面从 Google 的索引中删除。
但是,robots.txt Disallow 并不能保证页面不会出现在结果中:Google 仍可能根据外部信息(例如传入链接)确定它是相关的。 如果您希望明确阻止页面被索引,则应使用 noindex robots 元标记或 X-Robots-Tag HTTP 标头。 在这种情况下,您不应禁止 robots.txt 中的页面,因为必须抓取该页面才能看到并遵守标签。
创建没有错误的 robots.txt 的提示
在创建 robots.txt 文件时,请牢记以下提示:
- 命令区分大小写。 例如,您需要在Disallow中使用大写“D”。
- 在命令中的冒号后始终包含一个空格。
- 排除整个目录时,在目录名前后加上正斜杠,如下所示: /directory-name/
- 所有未明确排除的文件都将包含在内,供机器人抓取。
robots.txt 测试器
始终测试您的 robots.txt 文件。 更常见的情况是,您可能认为网站发布者会犯此错误,这可能会破坏您的 SEO 策略(例如,如果您禁止抓取重要页面或整个网站)。
使用 Google 的 robots.txt 测试工具。 您可以在此处找到相关信息。
机器人排除协议指南
如果您需要比本文更深入的了解,请下载我们的机器人排除协议指南。 这是一个免费的 PDF,您可以保存和打印以供参考,为您提供有关如何构建 robots.txt 的大量细节。
结束的想法
robots.txt 文件看似简单,但它允许网站发布者就他们希望机器人如何抓取网站给出复杂的指令。 正确获取此文件至关重要,因为如果做错了,它可能会破坏您的 SEO 程序。
因为关于如何使用 robots.txt 有很多细微差别,请务必阅读 Google 对 robots.txt 的介绍。
您是否有索引问题或其他需要技术 SEO 专业知识的问题? 如果您想要免费咨询和服务报价,请立即联系我们。