什么是 Robots.txt 以及如何创建 Robots.txt 文件

什么是 Robots.txt?

Robots.txt 是一个文本文件,其中包含搜索引擎机器人的说明,告诉他们应该抓取哪些页面,不应该抓取哪些页面。

这些指令通过“允许”或“禁止”某些(或所有)机器人的行为来指定。

robots.txt 文件如下所示:

Robots.txt 文件最初可能看起来很复杂,但语法(计算机语言)非常简单。 我们稍后会详细介绍这些细节。

在本文中,我们将介绍:

为什么 robots.txt 文件很重要 robots.txt 文件的工作原理 如何创建 robots.txt 文件 Robots.txt 最佳实践 为什么 Robots.txt 很重要? robots.txt 文件有助于管理网络爬虫活动,因此它们不会过度使用您的网站或索引不适合公众查看的页面。

以下是您想要使用 robots.txt 文件的几个原因:

1.优化抓取预算

“抓取预算”是指 Google 随时会在您的网站上抓取的页面数量。 该数量可能会根据您网站的大小、健康状况和反向链接而有所不同。

抓取预算很重要,因为如果您的页面数量超过网站的抓取预算,您的网站上就会有未编入索引的页面。

2. 没有被索引的页面不会有任何排名

通过使用 robots.txt 阻止不必要的页面,Googlebot(Google 的网络爬虫)可以将更多的抓取预算花在重要的页面上。

阻止重复和非公开页面 您不需要让搜索引擎抓取您网站上的每个页面,因为并非所有页面都需要排名。

示例包括暂存站点、内部搜索结果页面、重复页面或登录页面。

例如,WordPress 会自动禁止所有爬虫使用 /wp-admin/。

这些页面需要存在,但您不需要将它们编入索引并在搜索引擎中找到。 一个完美的例子,你会使用 robots.txt 来阻止这些页面从爬虫和机器人。

3.隐藏资源

有时您会希望 Google 从搜索结果中排除 PDF、视频和图像等资源。

也许您想将这些资源保密或让 Google 专注于更重要的内容。

在这种情况下,使用 robots.txt 是防止它们被编入索引的最佳方法。

Robots.txt 文件如何工作?

Robots.txt 文件告诉搜索引擎机器人他们可以抓取哪些 URL,更重要的是,告诉他们不能抓取哪些 URL。

搜索引擎有两个主要工作:

爬网以发现内容

索引内容,以便可以将其显示给寻找信息的搜索者 在爬行时,搜索引擎机器人会发现并跟踪链接。 这个过程将他们从站点 A 带到站点 B 再到站点 C,跨越数十亿个链接和网站。

到达任何站点后,机器人要做的第一件事就是查找 robots.txt 文件。

如果找到一个,它将在执行任何其他操作之前读取该文件。

如果您还记得,robots.txt 文件如下所示:

语法非常简单。

您可以通过声明机器人的用户代理(搜索引擎机器人)后跟指令(规则)来为机器人分配规则。

您还可以使用星号 (*) 通配符将指令分配给每个用户代理。 这意味着该规则适用于所有机器人,而不是特定的机器人。

例如,如果您希望允许除 DuckDuckGo 之外的所有机器人抓取您的网站,指令将如下所示:

注意:虽然 robots.txt 文件提供了说明,但它不能强制执行。 这就像一个行为准则。 好的机器人(如搜索引擎机器人)会遵守规则,但坏的机器人(如垃圾邮件机器人)会忽略它们。

如何查找 Robots.txt 文件

robots.txt 文件托管在您的服务器上,就像您网站上的任何其他文件一样。

您可以通过键入主页的完整 URL,然后添加 /robots.txt,例如 https://semrush.com/robots.txt,来查看任何给定网站的 robots.txt 文件。

注意:robots.txt 文件应始终位于您域的根目录下。 因此,对于站点 www.example.com,robots.txt 文件位于 www.example.com/robots.txt。 在其他任何地方,爬虫都会假设您没有。

在学习如何创建 robots.txt 文件之前,让我们先看看它们包含的语法。

Robots.txt 语法 robots.txt 文件由以下部分组成:

一个或多个“指令”(规则)块; 每个都有指定的“用户代理”(搜索引擎机器人); 以及“允许”或“不允许”指令 一个简单的块可以是这样的:

User-agent: Googlebot

Disallow: /not-for-google

User-agent: DuckDuckBot

Disallow: /not-for-duckduckgo

Sitemap: https://www.yourwebsite.com/sitemap.xml

用户代理指令 每个指令块的第一行是“用户代理”,它标识它所针对的爬虫。

因此,如果您想告诉 Googlebot 不要抓取您的 WordPress 管理页面,例如,您的指令将以:

User-agent: Googlebot

Disallow: /wp-admin/

请记住,大多数搜索引擎都有多个爬虫。 他们为他们的正常索引、图像、视频等使用不同的爬虫。

搜索引擎总是选择他们能找到的最具体的指令块。

假设您有三组指令:一组用于 *,一组用于 Googlebot,一组用于 Googlebot-Image。

如果 Googlebot-News 用户代理抓取您的网站,它将遵循 Googlebot 指令。

另一方面,Googlebot-Image 用户代理将遵循更具体的 Googlebot-Image 指令。

转到此处获取网络爬虫及其不同用户代理的详细列表。

禁止指令 任何指令块中的第二行是“禁止”行。

您可以有多个禁止指令来指定爬虫无法访问您网站的哪些部分。

一个空的“Disallow”行意味着你没有禁止任何东西——所以爬虫可以访问你网站的所有部分。

例如,如果您想允许所有搜索引擎抓取您的整个站点,您的块将如下所示:

User-agent: *

Allow: /

另一方面,如果您想阻止所有搜索引擎抓取您的网站,您的阻止将如下所示:

User-agent: *

Disallow: /

“Allow”和“Disallow”等指令不区分大小写,因此是否大写取决于您。

但是,每个指令中的值都是。

例如,/photo/ 与 /Photo/ 不同。

尽管如此,您仍会经常发现“Allow”和“Disallow”指令大写,因为它使文件更易于人们阅读。

允许指令 “允许”指令允许搜索引擎抓取子目录或特定页面,即使在其他不允许的目录中也是如此。

例如,如果您想要阻止 Googlebot 访问您博客上的所有帖子,除了一个帖子,您的指令可能如下所示:

User-agent: Googlebot

Disallow: /blog

Allow: /blog/example-post

注意:并不是所有的搜索引擎都能识别这个命令。 Google 和 Bing 确实支持此指令。

站点地图指令 “站点地图”指令告诉搜索引擎,特别是 Bing、Yandex 和 Google,在哪里可以找到您的 XML 站点地图。

站点地图通常包括您希望搜索引擎抓取和索引的页面。

您可以在 robots.txt 文件的最顶部或底部找到该指令,它看起来像这样:

话虽如此,您也可以(并且应该)使用网站管理员工具将您的 XML 站点地图提交给每个搜索引擎。

搜索引擎最终会抓取您的网站,但提交站点地图会加快抓取过程。

如果您不想,将“站点地图”指令添加到您的 robots.txt 文件是一个很好的快速替代方法。

爬行延迟指令 “crawl-delay”指令指定以秒为单位的爬行延迟。 它旨在阻止爬虫使服务器负担过重(即,减慢您的网站速度)。

但是,Google 不再支持此指令。

如果您想为 Googlebot 设置抓取速度,则必须在 Search Console 中进行。

另一方面,Bing 和 Yandex 确实支持 crawl-delay 指令。

下面是如何使用它。

如果您希望爬虫在每次爬取操作后等待 10 秒,您可以将延迟设置为 10,如下所示:

User-agent: *

Crawl-delay: 10

Noindex指令 robots.txt 文件告诉机器人它可以或不能抓取什么,但它不能告诉搜索引擎哪些 URL 不应该索引并显示在搜索结果中。

该页面仍会显示在搜索结果中,但机器人不知道上面有什么,因此您的页面将如下所示:

谷歌从未正式支持该指令,但 SEO 专业人士仍然认为它遵循了指令。

然而,在 2019 年 9 月 1 日,谷歌明确表示不支持该指令。

如果您想可靠地排除某个页面或文件出现在搜索结果中,请完全避免使用此指令并使用 meta robots no-index 标记。

如何创建 Robots.txt 文件

如果您还没有 robots.txt 文件,创建一个很容易。

您可以使用 robots.txt 生成器工具,也可以自己创建一个。

以下是如何通过四个步骤创建 robots.txt 文件:

创建一个文件并将其命名为 robots.txt 将规则添加到 robots.txt 文件

将 robots.txt 文件上传到您的站点

测试 robots.txt 文件

创建文件并命名为robots.txt 首先使用任何文本编辑器或 Web 浏览器打开一个 .txt 文档。

注意:不要使用文字处理器,因为它们通常以可以添加随机字符的专有格式保存文件。

接下来,将文件命名为 robots.txt。 它必须命名为 robots.txt 才能工作。

现在您可以开始输入指令了。

将指令添加到 Robots.txt 文件 robots.txt 文件由一组或多组指令组成,每组指令由多行指令组成。

每个组都以“User-agent”开头,并包含以下信息:

该组适用于谁(用户代理) 代理可以访问哪些目录(页面)或文件 代理无法访问哪些目录(页面)或文件 站点地图(可选)告诉搜索引擎您认为哪些页面和文件很重要 爬虫程序会忽略与这些指令中的任何一个都不匹配的行。

例如,假设您希望阻止 Google 抓取您的 /clients/ 目录,因为它仅供内部使用。

第一组看起来像这样:

User-agent: Googlebot

Disallow: /clients/

如果您有更多这样的 Google 说明,您可以将它们放在下面的单独一行中,如下所示:

User-agent: Googlebot

Disallow: /clients/

Disallow: /not-for-google

完成 Google 的特定说明后,您可以按两次 Enter 键来创建一组新的指令。

让我们为所有搜索引擎制作一个,并防止它们抓取您的 /archive/ 和 /support/ 目录,因为它们是私有的并且仅供内部使用。

它看起来像这样:

User-agent: Googlebot

Disallow: /clients/

Disallow: /not-for-google

User-agent: *

Disallow: /archive/

Disallow: /support/

完成后,您可以添加站点地图。

您完成的 robots.txt 文件将如下所示:

User-agent: Googlebot

Disallow: /clients/

Disallow: /not-for-google

User-agent: *

Disallow: /archive/

Disallow: /support/

Sitemap: https://www.yourwebsite.com/sitemap.xml

保存您的 robots.txt 文件。 请记住,它必须命名为 robots.txt。

注意:爬虫从上到下读取并匹配第一组最具体的规则。 因此,首先使用特定的用户代理启动您的 robots.txt 文件,然后继续使用匹配所有爬虫的更通用的通配符 (*)。

3.上传robots.txt文件 将 robots.txt 文件保存到您的计算机后,将其上传到您的网站并使其可供搜索引擎抓取。

不幸的是,没有可以帮助完成此步骤的通用工具。

上传 robots.txt 文件取决于您网站的文件结构和虚拟主机。

在线搜索或联系您的托管服务提供商以获取有关如何上传 robots.txt 文件的帮助。

例如,您可以搜索“将 robots.txt 文件上传到 WordPress”以获取具体说明。

以下几篇文章介绍了如何在最流行的平台上上传您的 robots.txt 文件:

WordPress 中的 Robots.txt 文件

Wix 中的 Robots.txt 文件

Joomla 中的 Robots.txt 文件

Shopify 中的 Robots.txt 文件

BigCommerce 中的 Robots.txt 文件

上传 robots.txt 文件后,检查是否有人可以看到它以及 Google 是否可以读取它。

就是这样。

测试你的 Robots.txt 首先,测试您的 robots.txt 文件是否可公开访问(即是否已正确上传)。

在浏览器中打开一个私人窗口并搜索您的 robots.txt 文件。

例如,https://semrush.com/robots.txt。

如果您看到包含您添加的内容的 robots.txt 文件,则您已准备好测试标记(HTML 代码)。

Google 提供了两种测试 robots.txt 标记的选项:

Search Console 中的 robots.txt 测试器

Google 的开源 robots.txt 库(高级)

由于第二个选项更适合高级开发人员,让我们在 Search Console 中测试您的 robots.txt 文件。

注意:您必须设置 Search Console 帐户才能测试您的 robots.txt 文件。

转到 robots.txt 测试器并单击“打开 robots.txt 测试器”。

如果您尚未将您的网站链接到您的 Google Search Console 帐户,则需要先添加一个属性。

然后,您必须验证您是该网站的真正所有者。

如果您有现有的已验证属性,请从测试人员主页上的下拉列表中选择一个。

测试人员将识别任何语法警告或逻辑错误并突出显示它们。

它还会在编辑器正下方显示警告和错误的数量。

您可以直接在页面上编辑错误或警告,并根据需要多次重新测试。

请记住,在页面上所做的更改不会保存到您的网站。 该工具不会对您网站上的实际文件进行任何更改。 它仅针对工具中托管的副本进行测试。

要实施任何更改,请将它们复制并粘贴到您网站上的 robots.txt 文件中。

Robots.txt 最佳实践 在创建 robots.txt 文件时请牢记这些最佳做法以避免常见错误。

为每个指令使用新行 每个指令都应另起一行。

否则,搜索引擎将无法阅读它们,您的说明将被忽略。

坏的:

User-agent: * Disallow: /admin/

Disallow: /directory/

好的:

User-agent: *

Disallow: /admin/

Disallow: /directory/

每个用户代理使用一次 机器人不会介意您多次输入同一个用户代理。

但是,仅引用一次可以使事情变得简洁明了,并减少人为错误的可能性。

坏的:

User-agent: Googlebot

Disallow: /example-page

User-agent: Googlebot

Disallow: /example-page-2

请注意 Googlebot 用户代理是如何被列出两次的。

好的:

User-agent: Googlebot

Disallow: /example-page

Disallow: /example-page-2

在第一个示例中,Google 仍会按照说明进行操作,不会抓取任何一个页面。

但是,在同一个 User-agent 下编写所有指令会更简洁,并且可以帮助您保持井井有条。

使用通配符阐明方向 您可以使用通配符 (*) 将指令应用于所有用户代理并匹配 URL 模式。

例如,如果你想阻止搜索引擎访问带参数的 URL,你可以在技术上将它们一一列出。

坏的:

User-agent: *

Disallow: /shoes/vans?

Disallow: /shoes/nike?

Disallow: /shoes/adidas?

但这是低效的。 您可以使用通配符简化您的指示。

好的:

User-agent: *

Disallow: /shoes/*?

上面的示例阻止所有搜索引擎机器人抓取带有问号的 /shoes/ 子文件夹下的所有 URL。

使用“$”表示 URL 的结尾 添加“$”表示 URL 的结尾。

例如,如果您想阻止搜索引擎抓取您网站上的所有 .jpg 文件,您可以将它们单独列出。

但那将是低效的。

坏的:

User-agent: *

Disallow: /photo-a.jpg

Disallow: /photo-b.jpg

Disallow: /photo-c.jpg

像这样使用“$”功能会好得多:

好的:

User-agent: *

Disallow: /*.jpg$

注意:在这个例子中,/dog.jpg不能被抓取,但是/dog.jpg?p=32414可以,因为它没有以“.jpg”结尾。

“$”表达式在上述特定情况下是一个有用的功能,但它也可能很危险。

您可以轻松解锁您不想解锁的内容,因此请谨慎使用它。

使用井号 (#) 添加评论 爬虫会忽略以井号 (#) 开头的所有内容。

因此,开发人员通常会使用哈希在 robots.txt 文件中添加评论。 它有助于使文件井井有条且易于阅读。

要包含评论,请以井号 (#) 开始该行。

像这样:

User-agent: *

#Landing Pages

Disallow: /landing/

Disallow: /lp/

#Files

Disallow: /files/

Disallow: /private-files/

#Websites

Allow: /website/*

Disallow: /website/search/*

开发人员偶尔会在 robots.txt 文件中包含有趣的消息,因为他们知道用户很少看到这些消息。

例如,YouTube 的 robots.txt 文件内容如下:

“在 20 世纪 90 年代中期机器人起义消灭了所有人类之后,在遥远的未来(2000 年)创造了它。”

Nike 的 robots.txt 上写着“just crawl it”(对他们的“just do it”口号的眨眼),还包括他们的标志。

为不同的子域使用单独的 Robots.txt 文件 Robots.txt 文件仅控制其所在子域的抓取行为。

所以,如果你想控制对不同子域的抓取,你需要一个单独的 robots.txt 文件。

因此,如果您的主站点位于 domain.com 而您的博客位于子域 blog.domain.com,则您需要两个 robots.txt 文件。

一个用于主域的根目录,另一个用于博客的根目录。

保持学习 现在您已经很好地了解了 robots.txt 文件的工作原理,您可以阅读以下几篇文章以继续学习:

Robots 元标记和 X-Robots-Tag 解释 如何解决可抓取性问题 规范标签初学者指南 机器人排除协议

Robots Meta Tag and X-Robots-Tag Explained

How to Fix Crawlability Issues

A Beginner’s Guide to Canonical Tags

Robots Exclusion Protocol

Leave a Reply

Your email address will not be published. Required fields are marked *

Company

From breathtaking landscapes to the smallest creatures, we celebrate the diversity and magnificence of our planet. Through our carefully curated content, we aim to educate.

Features

Most Recent Posts

  • All Post
  • Advertising
  • Amazon
  • B2B
  • Bing
  • Content Creation
  • Content Creator
  • Facebook
  • Google
  • Graphic Design
  • Instagram
  • SEM
  • SEO
  • TikTok
  • Web Design
  • Youtube
  • 建站知识
  • 未分类

Category

About Us

Our Story

Team

Clients

Testimonials

Social Media

Services

Web Design

Social Media

PPC Advertising

Content Creation

Testimonials

Portfolio

Case Studies

Projects

Success Stories

Latest Posts

Web Design

© 2023 Created with Royal Elementor Addons