什么是 SEO 中的 Robots.txt:如何创建和优化它

已发表: 2022-04-22

今天的话题与流量变现没有直接关系。 但是 robots.txt 会影响您网站的 SEO,并最终影响它收到的流量。 由于bottom.txt条目,许多网络管理员破坏了他们网站的排名。 本指南将帮助您避免所有这些陷阱。 一定要读到最后!

内容
  • 什么是 robots.txt 文件?
  • robots.txt 文件的外观如何?
  • 如何找到您的 robots.txt 文件
  • Robots.txt 文件如何工作?
  • Robots.txt 语法
  • 支持的指令
  • 用户代理*
  • 允许
  • 不允许
  • 网站地图
  • 不支持的指令
  • 爬行延迟
  • 无索引
  • 不关注
  • 您需要 robots.txt 文件吗?
  • 创建 robots.txt 文件
  • Robots.txt 文件:SEO 最佳实践
  • 为每个指令使用一个新行
  • 使用通配符来简化指令
  • 使用美元符号“$”指定 URL 的结尾
  • 每个用户代理只使用一次
  • 使用特定说明来避免意外错误
  • 在 robots.txt 文件中输入带有哈希的注释
  • 为每个子域使用不同的 robots.txt 文件
  • 不要屏蔽好的内容
  • 不要过度使用抓取延迟
  • 注意区分大小写
  • 其他最佳实践:
  • 使用 robots.txt 防止内容索引
  • 使用 robots.txt 屏蔽私密内容
  • 使用 robots.txt 隐藏恶意重复内容
  • 所有机器人的所有访问权限
  • 所有机器人都无法访问
  • 阻止所有机器人的一个子目录
  • 阻止所有机器人的一个子目录(允许一个文件)
  • 为所有机器人阻止一个文件
  • 为所有机器人阻止一种文件类型 (PDF)
  • 仅阻止 Googlebot 的所有参数化网址
  • 如何测试您的 robots.txt 文件是否有错误
  • 提交的 URL 被 robots.txt 阻止
  • 被 robots.txt 屏蔽
  • 已编入索引,但已被 robots.txt 阻止
  • Robots.txt vs meta robots vs x-robots
  • 进一步阅读
  • 包起来

什么是 robots.txt 文件?

robots.txt 或机器人排除协议是一组网络标准,用于控制搜索引擎机器人如何抓取每个网页,直至该页面上的架构标记。 它是一个标准的文本文件,甚至可以阻止网络爬虫访问您的整个网站或部分网站。

在调整 SEO 和解决技术问题的同时,您可以开始从广告中获得被动收入。 您网站上的一行代码会返回定期付款!

从广告中获利
到目录↑

robots.txt 文件的外观如何?

语法很简单:你通过指定它们的用户代理和指令来给机器人规则。 该文件具有以下基本格式:

站点地图:[站点地图的 URL 位置]

用户代理:[机器人标识符]

[指令 1]

[指令 2]

[指令……]

用户代理:[另一个机器人标识符]

[指令 1]

[指令 2]

[指令……]

如何找到您的 robots.txt 文件

如果您的网站已经有一个 robots.txt 文件,您可以通过在浏览器中访问以下 URL: https ://yourdomainname.com/robots.txt 找到它。 例如,这是我们的文件

机器人 txt 文件
到目录↑

Robots.txt 文件如何工作?

robots.txt 文件是一个纯文本文件,不包含任何 HTML 标记代码(因此扩展名为 .txt)。 该文件与网站上的所有其他文件一样,存储在网络服务器上。 用户不太可能访问此页面,因为它没有链接到您的任何页面,但大多数网络爬虫机器人会在爬取整个网站之前搜索它。

robots.txt 文件可以为机器人提供指令,但不能强制执行这些指令。 一个好的机器人,例如网络爬虫或新闻提要机器人,会在访问任何域页面之前检查文件并按照说明进行操作。 但恶意机器人会忽略或处理文件以查找被禁止的网页。

在 robots.txt 文件包含冲突命令的情况下,机器人将使用最具体的指令集。

到目录↑

Robots.txt 语法

robots.txt 文件由多个“指令”部分组成,每个部分都以用户代理开头。 用户代理指定与代码通信的爬网机器人。 您可以一次处理所有搜索引擎,也可以管理单个搜索引擎。

每当机器人爬取网站时,它都会作用于正在调用它的网站部分。

用户代理: *

不允许: /

用户代理:Googlebot

不允许:

用户代理:Bingbot

禁止:/not-for-bing/

支持的指令

指令是您希望您声明的用户代理遵循的准则。 Google 目前支持以下指令。

用户代理*

当程序连接到 Web 服务器(机器人或常规 Web 浏览器)时,它会发送一个名为“user-agent”的 HTTP 标头,其中包含有关其身份的基本信息。 每个搜索引擎都有一个用户代理。 Google 的机器人被称为 Googlebot,Yahoo 的称为 Slurp,Bing 的称为 BingBot。 用户代理启动一系列指令,这些指令可以应用于特定的用户代理或所有用户代理。

允许

allow 指令告诉搜索引擎抓取页面或子目录,甚至是受限目录。 例如,如果您希望搜索引擎无法访问除一篇之外的所有博客文章,您的 robots.txt 文件可能如下所示:

用户代理: *

禁止:/博客

允许:/blog/allowed-post

但是,搜索引擎可以访问 /blog/allowed-post 但他们无法访问:

/博客/另一个帖子

/博客/又一个帖子

/blog/download-me.pd

不允许

disallow 指令(添加到网站的 robots.txt 文件中)告诉搜索引擎不要抓取特定页面。 在大多数情况下,这也会阻止页面出现在搜索结果中。

您可以使用此指令指示搜索引擎不要抓取您对公众隐藏的特定文件夹中的文件和页面。 例如,您仍在处理但错误发布的内容。 如果您想阻止所有搜索引擎访问您的博客,您的 robots.txt 文件可能如下所示:

用户代理: *

禁止:/博客

这意味着 /blog 目录的所有子目录也不会被抓取。 这也将阻止 Google 访问包含 /blog 的 URL。

到目录↑

网站地图

站点地图是您希望搜索引擎抓取和索引的页面列表。 如果您使用站点地图指令,搜索引擎将知道您的 XML 站点地图的位置。 最好的选择是将它们提交给搜索引擎的网站管理员工具,因为每个工具都可以为访问者提供有关您网站的有价值的信息。

需要注意的是,为每个用户代理重复站点地图指令是不必要的,它不适用于一个搜索代理。 在 robots.txt 文件的开头或结尾添加站点地图指令。

文件中的站点地图指令示例:

站点地图:https://www.domain.com/sitemap.xml

用户代理:Googlebot

禁止:/blog/

允许:/blog/post-title/

用户代理:Bingbot

禁止:/服务/

到目录↑

不支持的指令

以下是Google 不再支持的指令——其中一些在技术上从未得到认可。

爬行延迟

雅虎、必应和 Yandex 快速响应网站的索引并响应爬虫延迟指令,从而使它们在一段时间内处于检查状态。

将此行应用于您的块:

用户代理:Bingbot

爬行延迟:10

这意味着搜索引擎可以等待十秒再爬取网站,也可以等待十秒再爬取后重新访问网站,这是一样的,但根据使用的用户代理略有不同。

无索引

noindex 元标记是防止搜索引擎索引您的一个页面的好方法。 该标签允许机器人访问网页,但它也通知机器人不要索引它们。

  • 带有 noindex 标记的 HTTP 响应标头。 您可以通过两种方式实现此标记:带有 X-Robots-Tag 的 HTTP 响应标头或放置在 <head> 部分中的 <meta> 标记。 这就是您的 <meta> 标记的外观:

<元名称=“机器人”内容=“noindex”>

  • 404 & 410 HTTP 状态码。 404 和 410 状态代码表示页面不再可用。 在抓取和处理 404/410 页面后,它们会自动将其从 Google 的索引中删除。 为了降低 404 和 410 错误页面的风险,请定期抓取您的网站,并在必要时使用 301 重定向将流量引导到现有页面。
到目录↑

不关注

Nofollow 指示搜索引擎不要跟踪特定路径下的页面和文件上的链接。 自 2020 年 3 月 1 日起,Google 不再将 nofollow 属性视为指令。 相反,它们将是提示,很像规范标签。 如果您想要页面上所有链接的“nofollow”属性,请使用机器人的元标记、x-robots 标头或rel=“nofollow”链接属性。

以前,您可以使用以下指令来阻止 Google 跟踪您博客上的所有链接:

用户代理:Googlebot

不关注:/博客/

您需要 robots.txt 文件吗?

许多不太复杂的网站不需要一个。 虽然 Google 通常不会将被 robots.txt 阻止的网页编入索引,但无法保证这些网页不会出现在搜索结果中。 拥有此文件可以让您对搜索引擎上的网站内容有更多的控制和安全性。

机器人文件还可以帮助您完成以下任务:

  • 防止抓取重复的内容。
  • 维护不同网站部分的隐私。
  • 限制内部搜索结果抓取。
  • 防止服务器过载。
  • 防止“抓取预算”浪费。
  • 将图片、视频和资源文件排除在 Google 搜索结果之外。

这些措施最终会影响您的 SEO 策略。 例如,重复的内容会使搜索引擎感到困惑,并迫使他们选择两个页面中的哪一个排名第一。 无论内容是谁创建的,Google 都可能不会选择原始页面作为热门搜索结果。

如果 Google 检测到旨在欺骗用户或操纵排名的重复内容,他们会调整您网站的索引和排名。 因此,您网站的排名可能会受到影响或完全从 Google 的索引中删除,从搜索结果中消失。

维护不同网站部分的隐私还可以提高您的网站安全性并保护其免受黑客攻击。 从长远来看,这些措施将使您的网站更安全、更值得信赖和更有利可图。

您是想要从流量中获利的网站所有者吗? 使用 Adsterra,您将从任何网站获得被动收入!

加入并赚取
到目录↑

创建 robots.txt 文件

您需要一个文本编辑器,例如记事本。

  1. 创建一个新工作表,将空白页另存为“robots.txt”,然后开始在空白 .txt 文档中输入指令。
  2. 登录到您的 cPanel,导航到站点的根目录,查找public_html文件夹。
  3. 将您的文件拖到此文件夹中,然后仔细检查文件的权限是否设置正确。

您可以作为所有者写入、读取和编辑文件,但不允许第三方。 文件中应出现“0644”权限代码。 如果没有,请右键单击该文件并选择“文件权限”。

Robots.txt 文件:SEO 最佳实践

为每个指令使用一个新行

您需要在单独的行上声明每个指令。 否则,搜索引擎会感到困惑。

用户代理: *

禁止:/目录/

禁止:/另一个目录/

使用通配符来简化指令

您可以对所有用户代理使用通配符 (*),并在声明指令时匹配 URL 模式。 通配符适用于具有统一模式的 URL。 例如,您可能希望阻止抓取所有 URL 中带有问号 (?) 的过滤器页面。

用户代理: *

不允许: /*?

使用美元符号“$”指定 URL 的结尾

搜索引擎无法访问以 .pdf 等扩展名结尾的 URL。 这意味着他们将无法访问 /file.pdf,但他们将能够访问不以“.pdf”结尾的 /file.pdf?id=68937586。 例如,如果您想阻止搜索引擎访问您网站上的所有 PDF 文件,您的 robots.txt 文件可能如下所示:

用户代理: *

禁止:/*.pdf$

每个用户代理只使用一次

在 Google 中,您是否多次使用同一个用户代理并不重要。 它将简单地将来自各种声明的所有规则编译成一个指令并遵循它。 然而,每个用户代理只声明一次是有意义的,因为它不那么令人困惑。

保持指令简洁明了可以降低出现严重错误的风险。 例如,如果您的 robots.txt 文件包含以下用户代理和指令。

用户代理:Googlebot

禁止:/a/

用户代理:Googlebot

禁止:/b/

使用特定说明来避免意外错误

设置指令时,未能提供具体说明可能会产生可能损害您的 SEO 的错误。 假设您有一个多语言站点,并且正在为 /de/ 子目录开发德语版本。

您不希望搜索引擎能够访问它,因为它还没有准备好。 以下 robots.txt 文件将阻止搜索引擎对该子文件夹及其内容编制索引:

用户代理: *

禁止:/de

但是,它将限制搜索引擎抓取以 /de 开头的任何页面或文件。 在这种情况下,添加尾部斜杠是简单的解决方案。

用户代理: *

禁止:/de/

到目录↑

在 robots.txt 文件中输入带有哈希的注释

注释可以帮助开发人员,甚至可能帮助您理解您的 robots.txt 文件。 以井号 (#) 开始该行以包含注释。 爬虫会忽略以散列开头的行。

# 这指示 Bing 机器人不要抓取我们的网站。

用户代理:Bingbot

不允许: /

为每个子域使用不同的 robots.txt 文件

Robots.txt 仅影响对其主机域的抓取。 您需要另一个文件来限制对不同子域的抓取。 例如,如果您在 example.com 上托管您的主网站,在 blog.example.com 上托管您的博客,您将需要两个 robots.txt 文件。 将一个放在主域的根目录中,而另一个文件应该放在博客的根目录中。

不要屏蔽好的内容

不要使用 robots.txt 文件或 noindex 标签来阻止您想要公开的任何优质内容,以避免对 SEO 结果产生负面影响。 彻底检查页面上的 noindex 标签和禁止规则。

不要过度使用抓取延迟

我们已经解释了抓取延迟,但您不应该经常使用它,因为它会限制机器人抓取所有页面。 它可能适用于某些网站,但如果您有一个大型网站,您可能会损害您的排名和流量。

注意区分大小写

Robots.txt 文件区分大小写,因此您需要确保以正确的格式创建 robots 文件。 机器人文件应命名为“robots.txt”且全部小写。 否则,它将无法正常工作。

其他最佳实践:

  • 确保您没有阻止抓取您网站的内容或部分。
  • 不要使用 robots.txt 将敏感数据(私人用户信息)排除在 SERP 结果之外。 如果其他页面直接链接到私有页面,请使用不同的方法(例如数据加密或noindex元指令)来限制访问。
  • 一些搜索引擎有不止一个用户代理。 例如,谷歌使用 Googlebot 进行自然搜索,使用 Googlebot-Image 进行图像搜索。 没有必要为每个搜索引擎的多个爬虫指定指令,因为来自同一搜索引擎的大多数用户代理都遵循相同的规则。
  • 搜索引擎会缓存 robots.txt 内容,但会每天更新。 如果您更改文件并希望更快地更新它,您可以将文件 URL 提交给 Google。
到目录↑

使用 robots.txt 防止内容索引

禁用页面是防止机器人直接抓取它的最有效方法。 但是,它在以下情况下不起作用:

  • 如果另一个来源有指向该页面的链接,机器人仍然会抓取并索引它。
  • 非法机器人将继续抓取内容并将其编入索引。

使用 robots.txt 屏蔽私密内容

即使您阻止机器人,某些私人内容(例如 PDF 或感谢页面)仍然可以索引。 将您的所有专属页面放在登录后面是加强禁止指令的最佳方法之一。 您的内容将保持可用,但您的访问者将采取额外的步骤来访问它。

使用 robots.txt 隐藏恶意重复内容

重复内容与相同语言的其他内容相同或非常相似。 谷歌试图索引和显示具有独特内容的页面。 例如,如果您的网站有每篇文章的“常规”和“打印”版本,并且 noindex 标记都不会阻止,那么他们会列出其中的一个。

示例 robots.txt 文件

以下是一些示例 robots.txt 文件。 这些主要用于创意,但如果其中一个满足您的需求,请将其复制并粘贴到文本文档中,将其保存为“robots.txt”,然后将其上传到正确的目录。

所有机器人的所有访问权限

有几种方法可以告诉搜索引擎访问所有文件,包括拥有一个空的 robots.txt 文件或没有文件。

用户代理: *

不允许:

所有机器人都无法访问

以下 robots.txt 文件指示所有搜索引擎避免访问整个站点:

用户代理: *

不允许: /

阻止所有机器人的一个子目录

用户代理: *

禁止:/文件夹/

阻止所有机器人的一个子目录(允许一个文件)

用户代理: *

禁止:/文件夹/

允许:/folder/page.html

为所有机器人阻止一个文件

用户代理: *

禁止:/this-is-a-file.pdf

为所有机器人阻止一种文件类型 (PDF)

用户代理: *

禁止:/*.pdf$

仅阻止 Googlebot 的所有参数化网址

用户代理:Googlebot

不允许: /*?

如何测试您的 robots.txt 文件是否有错误

Robots.txt 中的错误可能很严重,因此监控它们很重要。 定期检查 Search Console 中的“覆盖范围”报告,了解与 robots.txt 相关的问题。 下面列出了您可能遇到的一些错误、它们的含义以及如何修复它们。

提交的 URL 被 robots.txt 阻止

阻止网址

这表明 robots.txt 已阻止您站点地图中的至少一个网址。 如果您的站点地图正确且不包含规范化、无索引或重定向页面,则 robots.txt 不应阻止您发送的任何页面。 如果是,请确定受影响的网页并从您的 robots.txt 文件中删除该块。

您可以使用 Google 的 robots.txt 测试器来识别屏蔽指令。 编辑 robots.txt 文件时要小心,因为错误可能会影响其他页面或文件。

机器人-txt-tester
到目录↑

被 robots.txt 屏蔽

此错误表明 robots.txt 已阻止 Google 无法索引的内容。 如果此内容至关重要且应编入索引,请删除 robots.txt 中的抓取块。 (另外,检查内容是否没有索引。)

如果您想从 Google 的索引中排除内容,请使用机器人的元标记或 x-robots-header 并删除抓取块。 这是将内容排除在 Google 索引之外的唯一方法。

已编入索引,但已被 robots.txt 阻止

这意味着谷歌仍然索引了一些被 robots.txt 屏蔽的内容。 Robots.txt 不是阻止您的内容显示在 Google 搜索结果中的解决方案。

要防止索引,请删除爬网块并将其替换为元机器人标记或 x-robots-tag HTTP 标头。 如果您不小心屏蔽了此内容并希望 Google 将其编入索引,请删除 robots.txt 中的抓取屏蔽。 它可以帮助提高内容在 Google 搜索中的可见性。

Robots.txt vs meta robots vs x-robots

这三个机器人命令有什么区别? Robots.txt 是一个简单的文本文件,而 meta 和 x-robots 是元指令。 除了它们的基本作用之外,这三者还具有不同的功能。 Robots.txt 指定整个网站或目录的爬取行为,而 meta 和 x-robots 定义单个页面(或页面元素)的索引行为。

进一步阅读

有用的资源

  • 维基百科:机器人排除协议
  • 谷歌关于 Robots.txt 的文档
  • Robots.txt 上的 Bing(和 Yahoo)文档
  • 指令解释
  • Robots.txt 上的 Yandex 文档
到目录↑

包起来

我们希望您已经充分理解了 robots.txt 文件的重要性以及它对您的整体 SEO 实践和网站盈利能力的贡献。 如果您仍在努力从您的网站获得收入,则无需编码即可开始通过 Adsterra 广告获利。 在您的 HTML、WordPress 或 Blogger 网站上添加广告代码,立即开始盈利!

通过流量获利