蜘蛛
robots.txt简介
robots.txt
文件是一个提供给搜索引擎蜘蛛读取并遵循严格的语法内容所组成的文本文件,也称为“机器人排除协议”。它不是任何组织制定的官方标准,但是所有主流的搜索引擎都遵循它的规则。它是告诉搜索引擎蜘蛛,该网站哪些内容是可以抓取,哪些内容是禁止抓取的的方法之一。它是一个纯文本文件,存放在站点根目录下。它的设置虽然很简单,但作用却非常强大,因此要谨慎设置,不然对你的网站影响很大。
使用 robots.txt 的利与弊
利:管理抓取预算
众所周知,搜索蜘蛛会以预定的“准则”进入网站,以获取要爬取的页面数(根据网站的权限/大小/声誉得出的抓取页面数),SEO 将此称为抓取预算。这就意味着,如果您阻止网站的某些部分的抓取,搜索蜘蛛就会抓取其他部分来补充页面数。
一般来说,阻止搜索引擎抓取您网站有问题的部分是非常有益,特别是在必须进行大量 SEO 清理的网站上。整理完所有内容后,您就可以解除阻止。
利:有关阻止查询参数的说明
特别重要的一种 robots.txt
应用是:您的站点使用大量参数进行查询。假设您有 10 个不同的查询参数,每个参数都可能有不同的值而生成不同的 URL,这将导致数百甚至数千个毫无意义的 URL。阻止所有查询参数页面的抓取将有助于确保搜索引擎仅收录您网站的主要 URL,而不会陷入一个巨大陷阱。
例如,这行指令阻止您网站上包含查询字符串的所有 URL:
Disallow: /*?*
弊:不从搜索结果中删除页面
即使您可以使用该 robots.txt
文件告诉搜索蜘蛛不能在网站上访问的位置,也不能使用它告诉搜索引擎哪些 URL 不在搜索结果中显示。换句话说,阻止它不会阻止它被索引。搜索引擎仍然会在搜索结果中显示,但不显示其内容。
弊:不传播链接价值
如果搜索引擎无法抓取页面,则无法在该页面上的链接之间散布链接值。当页面通过 robots.txt
被阻止时,这是死路一条。任何可能流到(并通过)该页面的链接值都会丢失。
使用方法
robots.txt
文件应该放在网站根目录下,并且该文件是可以通过互联网进行访问的。
例如:
我的网站地址是 https://www.arbays.com/
那么,该文件必须能够通过 https://www.arbays.com/robots.txt
打开并看到里面的内容。
格式
-
User-agent
用于描述搜索引擎蜘蛛的名字。在robots.txt
文件中,如果有多条User-agent
记录,说明有多个搜索引擎蜘蛛会受到该协议的限制。对该文件来说,至少要有一条User-agent
记录。如果该项的值设为*
,则该协议对任何搜索引擎蜘蛛均有效,"User-agent:*"
这样的记录只能有一条。 -
Disallow
用于描述不希望被访问到的一个 URL,这个 URL 可以是一条完整的路径,也可以是部分的,任何以Disallow
开头的 URL 均不会被机器人访问到。举例:
- 例一:
Disallow:/arbays
是指/arbays.html
和/arbays/index.html
都不允许搜索引擎蜘蛛抓取。 - 例二:
Disallow:/arbays/
是指允许搜索引擎蜘蛛抓取/arbays.html
,而不能抓取/arbays/index.html
。 - 例三:
Disallow
记录为空说明该网站的所有页面都允许被搜索引擎抓取,在/robots.txt
文件中,至少要有一条Disallow
记录。如果/robots.txt
是一个空文件,则对于所有的搜索引擎蜘蛛,该网站都是开放的可以被抓取的。
- 例一:
-
#
robots.txt
协议中的注释符。
综合例子
-
例一:通过
/robots.txt
禁止所有搜索引擎蜘蛛抓取/bin/cgi/
目录,以及/tmp/
目录和/foo.html
文件,设置方法如下:User-agent: * Disallow: /bin/cgi/ Disallow: /tmp/ Disallow: /foo.html
-
例二:通过
/robots.txt
只允许某个搜索引擎抓取,而禁止其他的搜索引擎抓取/cgi/
目录下的内容,设置方法如下:User-agent: * Disallow: /cgi/ User-agent: slurp Disallow:
-
例三:禁止任何搜索引擎抓取我的网站,设置方法如下:
User-agent: * Disallow: /
-
例四:只禁止某个搜索引擎抓取我的网站,如只禁止名为“slurp”的搜索引擎蜘蛛抓取,设置方法如下:
User-agent: slurp Disallow: /
Allow
尽管不在最初的“规范”中,大多数搜索引擎都了解 allow
指令,并允许使用简单且可读性强的指令,例如:
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
在没有 allow
指令的情况下获得的结果就是阻止 wp-admin
文件夹中的每个文件的抓取。
Host
由 Yandex(不受 Google 支持)支持,该指令可让您决定搜索引擎显示哪个域名。只需像这样指定即可:
Host: 域名
但因为仅 Yandex 支持该 host
指令,所以我们不建议您依赖该指令,尤其是因为它也不允许您定义协议(到底是 http 还是 https)。一个更好的解决方案是,为所有搜索引擎的工作原理提供一个 301 重定向,将不常用域名重定向到常用域名上。
Crawl-delay
Yahoo!、Bing 和 Yandex 都响应 crawl-delay
指令,这会使抓取变慢。尽管这些搜索引擎在读取指令方面的方式略有不同,但最终结果基本相同。
例如,这行指令将指示 Yahoo! 和 Bing 在抓取操作后等待 10 秒,而 Yandex 每 10 秒只会访问您的网站一次。这是语义上的差异,但仍然很有趣。这是示例 crawl-delay
行:
Crawl-delay: 10
使用 crawl-delay
指令时请务必小心。通过将抓取延迟设置为 10 秒,您仅允许这些搜索引擎每天访问 8,640 页。对于小型网站来说,这似乎足够了,但是在大型网站上,它并不是很多。另一方面,如果您的网站抓取频繁,那么这是节省带宽的好方法。
SitemapXML Sitemaps 的指令
使用 sitemap
指令,您可以告诉搜索引擎 — 特别是 Bing、Yandex 和 Google — 在哪里可以找到 XML 网站地图。当然,您也可以使用各自的网站管理员工具解决方案将 XML 网站地图提交给每个搜索引擎,我们强烈建议您这样做,因为搜索引擎网站管理员工具程序会为您提供有关网站的许多有价值的信息。如果您不想这样做,则在 robots.txt
中添加一条 sitemap
是一个不错的快速选择。
评论区