什么是robots.txt文件?

Robots.txt是网站管理员创建的一个文本文件,知识兔用于指导网络机器人(通常是搜索引擎机器人)如何对其网站上的页面进行爬网。robots.txt文件是robots exclusion protocol(REP)的一部分,REP是一组web标准,知识兔用于规范robots如何对web进行爬网、访问和索引内容,并向用户分享这些内容。REP还包括诸如meta robots之类的指令,知识兔以及关于搜索引擎应该如何处理链接的页面、子目录或站点范围的指令(例如“follow”或“nofollow”)。

实际上,robots.txt文件指示某些用户代理(网络抓取软件)是否可以抓取网站的一部分。通过“禁止”或“允许”某些(或所有)用户代理的行为来指定这些爬网指令。

基本格式:
User-agent: [user-agent name]Disallow: [URL string not to be crawled]

这两行在一起被认为是完整的robots.txt文件 -尽管一个robots文件可以包含多行用户代理和指令(即,禁止,允许,爬网延迟等)。

在robots.txt文件中,每组用户代理指令均显示为离散集,由换行符分隔:

由换行符指定的用户代理指令。

在具有多个用户代理指令的robots.txt文件中,每个禁止或允许规则仅适用于该特定的以换行符分隔的集合中指定的用户代理。如果知识兔文件包含适用于多个用户代理的规则,则搜寻器将仅关注(并遵循其中最具体的一组指令)。

这是一个例子:

Robots.txt.png?mtime = 20170427090303#asset:5201:large

Msnbot,discobot和Slurp都被专门调出,因此那些用户代理将仅注意robots.txt文件中其部分中的指令。所有其他用户代理将遵循用户代理:*组中的指令。

示例robots.txt:

以下是www.example.com网站上使用的robots.txt的一些示例:

Robots.txt文件网址:www.example.com/robots.txt
阻止所有内容的所有Web搜寻器

用户代理:*禁止:/

在robots.txt文件中使用此语法会告诉所有网络抓取工具不要抓取www.example.com上的任何页面(包括首页)。

允许所有网络爬虫访问所有内容

用户代理:*禁止:

在robots.txt文件中使用此语法会告诉网络抓取工具抓取www.example.com上的所有页面  (包括首页)。

阻止特定文件夹中的特定Web搜寻器

用户代理:Googlebot不允许:/ example-subfolder /

此语法仅告诉Google的搜寻器(用户代理名称Googlebot)不要搜寻任何包含URL字符串www.example.com/example-subfol …的网页。

用户代理:BingbotDisallow:/example-subfolder/blocked-page.html

该语法仅告诉Bing的抓取工具(用户代理名称Bing),避免对www.example.com/example-subfol上的特定页面进行抓取… robots.txt是否有效?

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

  1. 爬行网络以发现内容;
  2. 为该内容建立索引,知识兔以便将其分享给正在寻找信息的搜索者。

为了抓取网站,搜索引擎会按照链接从一个网站到另一个网站进行搜索,最终会在数十亿个链接和网站之间进行爬网。这种爬行行为有时被称为“蜘蛛”。

到达网站后但爬网之前,搜索搜寻器将查找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添加到任何根域的末尾即可查看该网站的指令(如果知识兔该网站有 robots.txt文件!)。这意味着任何人都可以看到您正在或不希望对其进行爬网的页面,因此请不要使用它们来隐藏私人用户信息。
  • 根域上的每个子域都使用单独的robots.txt文件。这意味着blog.example.com和example.com都应具有自己的robots.txt文件(位于blog.example.com/robots.txt和example.com/robots.txt)。
  • 通常,最佳做法是在robots.txt文件的底部指示与此域相关联的所有站点地图的位置。这是一个例子:

robots.txt中的站点地图

技术robots.txt语法

可以将Robots.txt语法视为robots.txt文件的“语言”。您可能会在robots文件中遇到五个常用术语。他们包括:

  • 用户代理:您要向其分享爬网指令的特定Web爬网程序(通常是搜索引擎)。知识兔可以在此处找到大多数用户代理的列表。
  • 不允许:用于告诉用户代理不要抓取特定URL的命令。每个URL仅允许一个“ Disallow:”行。
  • 允许(仅适用于Googlebot):告诉Googlebot可以访问页面或子文件夹的命令,即使知识兔可能不允许其父页面或子文件夹。
  • 抓取延迟:抓取工具在加载和抓取页面内容之前应等待几秒钟。请注意,Googlebot不认可此命令,但是可以在Google Search Console中设置抓取速度。
  • 站点地图:用于调出与此URL关联的任何XML站点地图的位置。请注意,只有 Google,Ask,Bing和Yahoo 支持此命令。

模式匹配

当要阻止或允许实际的URL时,robots.txt文件会变得相当复杂,因为它们允许使用模式匹配来覆盖可能的URL选项范围。Google和Bing都使用两个正则表达式,可用于标识SEO希望排除的页面或子文件夹。这两个字符是星号(*)和美元符号($)。

  • *是通配符,表示任何字符序列
  • $匹配URL的末尾

Google 在此处分享了大量可能的模式匹配语法和示例。

robots.txt在网站上的哪个位置?

每当他们进入网站时,搜索引擎和其他网络爬虫(例如Facebook的爬虫 Faceface)都知道要查找robots.txt文件。但是,他们只会在一个特定位置查找该文件:主目录(通常是您的根域或主页)。如果知识兔用户代理访问www.example.com/robots.txt并在此处找不到漫游器文件,则它将假定该站点没有一个漫游器文件,并继续抓取页面上(甚至整个站点)的所有内容。即使知识兔robots.txt页面确实存在于例如example.com/index/robots.txt或www.example.com/homepage/robots.txt,用户代理也不会发现该页面,因此将对该站点进行处理好像根本没有机器人文件一样。

为了确保找到robots.txt文件,请始终将其包含在主目录或根域中。

为什么需要robots.txt?

Robots.txt文件控制抓取工具对网站某些区域的访问。如果知识兔您不小心禁止Googlebot抓取您的整个网站(!!),这可能非常危险,但是在某些情况下,robots.txt文件非常有用。

一些常见的用例包括:

  • 防止重复内容出现在SERP中(请注意,元机器人通常是更好的选择)
  • 将网站的整个部分保密(例如,工程团队的临时站点)
  • 防止内部搜索结果页显示在公共SERP上
  • 指定站点地图的位置
  • 防止搜索引擎索引您网站上的某些文件(图像,PDF等)
  • 指定爬网延迟,知识兔以防止爬网程序一次加载多个内容时服务器过载

如果知识兔您网站上没有要控制用户代理访问的区域,则可能根本不需要robots.txt文件。

检查您是否有robots.txt文件

不知道您是否有robots.txt文件?只需输入您的根域,然后知识兔将/robots.txt添加到URL的末尾。例如,Moz的漫游器文件位于moz.com/robots.txt。

如果知识兔没有.txt页面出现,则表明您当前没有(活动的)robots.txt页面。

如何创建robots.txt文件

如果知识兔发现您没有robots.txt文件,或者想要更改它,则创建一个简单的过程。Google的这篇文章介绍了robots.txt文件的创建过程,该工具可让您测试文件的设置是否正确。

寻找一些创建机器人文件的练习吗?这篇博客文章介绍了一些交互式示例。

SEO最佳做法

  • 确保您没有阻止要爬网的任何内容或网站部分。
  • 不会跟踪被robots.txt阻止的页面上的链接。这意味着1.)除非它们也与其他搜索引擎可访问的页面(即未通过robots.txt,元漫游器或其他方式阻止的页面)也链接在一起,否则链接的资源将不会被抓取,也可能不会被索引。2.)无法将链接资产从被阻止的页面传递到链接目标。如果知识兔您要向其传递资产的页面,请使用robots.txt以外的其他阻止机制。
  • 请勿使用robots.txt阻止敏感数据(例如私人用户信息)出现在SERP结果中。由于其他页面可能会直接链接到包含私人信息的页面(从而绕过您的根域或主页上的robots.txt指令),因此该页面仍可能会被索引。如果知识兔要阻止页面进入搜索结果,请使用其他方法,例如密码保护或noindex meta指令。
  • 一些搜索引擎具有多个用户代理。例如,Google使用Googlebot进行自然搜索,并使用Googlebot-Image进行图像搜索。来自同一搜索引擎的大多数用户代理都遵循相同的规则,因此无需为搜索引擎的多个搜寻器中的每一个指定指令,但是具有这样做的能力可以让您微调网站内容的搜寻方式。
  • 搜索引擎将缓存robots.txt内容,但通常每天至少更新一次缓存的内容。如果知识兔您更改文件并希望比实际更新速度更快,知识兔可以将robots.txt网址提交给Google。

Robots.txt,元机器人,X机器人

这么多的机器人!这三种机器人指令之间有什么区别?首先,robots.txt是一个实际的文本文件,而meta和x-robots是meta指令。除了它们实际的功能之外,这三个功能都具有不同的功能。Robots.txt指示站点或目录范围的爬网行为,而meta和x-robots可以指示单个页面(或页面元素)级别的索引行为。

下载体验

请输入密码查看下载!

如何免费获取密码?

点击下载

评论