robots.txt 文件是告诉搜索引擎它可以和不能在您的网站上的主要方式之一。 所有主流搜索引擎都支持它提供的基本功能,但其中一些搜索引擎会响应一些额外的规则,这些规则也很有用。 本指南涵盖了在您的网站上使用 robots.txt 所有方法,但是,虽然它看起来很简单,但您在 robots.txt 所犯的任何错误都可能严重损害您的网站,因此请务必先阅读并理解本文的内容。你潜入水中
什么是 robots.txt 文件?
robots.txt 文件有什么作用?
我应该把 robots.txt 文件放在哪里?
使用 robots.txt 利弊
Pro:管理抓取预算
Con:不从搜索结果中删除页面
Con:没有传播链接值
robots.txt 语法
User-agent 指令
搜索引擎蜘蛛最常见的用户代理
Disallow 指令
如何使用通配符/正则表达式
非标准 robots.txt 抓取指令
Allow 指令
host 指令
crawl-delay 指令
XML Sitemaps 的 sitemap 指令
验证您的 robots.txt
什么是 robots.txt 文件?
抓取指令
robots.txt 文件是许多爬网指令之一。 我们有所有这些指南,你会在这里找到它们:
Yoast 的爬行指令指南»
robots.txt 文件是一个文本文件,由搜索引擎蜘蛛读取并遵循严格的语法。 这些蜘蛛也被称为机器人 – 因此名称 – 文件的语法是严格的,因为它必须是计算机可读的。 这意味着这里没有错误的余地 – 有的是 1 或 0。
robots.txt 文件也称为“机器人排除协议”,是早期搜索引擎蜘蛛开发者达成共识的结果。 它不是任何标准组织设定的官方标准,但所有主要搜索引擎都遵守它。
robots.txt 文件有什么作用?
humans.txt
曾几何时,一些开发人员坐下来决定,因为网络应该是针对人类的,并且由于机器人在网站上获取文件,构建它的人也应该有一个。 因此,他们创建了 human.txt 标准,作为让人们了解谁在网站上工作的一种方式。
搜索引擎通过抓取页面,从站点 A 到站点 B 到站点 C 的链接来索引 Web,依此类推。 在搜索引擎捕获之前未遇到过的域上的任何页面之前,它将打开该域的 robots.txt 文件,该文件告诉搜索引擎该站点上允许哪些 URL 进行索引。
搜索引擎通常会缓存 robots.txt 的内容,但通常会每天刷新几次,因此更改会很快反映出来。
我应该把 robots.txt 文件放在哪里?
robots.txt 文件应始终位于您域的根目录下。 因此,如果您的域名是 www.example.com,请访问 https://www.example.com/robots.txt 。
您的 robots.txt 文件实际上名为 robots.txt 也非常重要。 该名称区分大小写,因此请正确使用或不起作用。
使用 robots.txt 利弊
Pro:管理抓取预算
通常可以理解的是,搜索蜘蛛到达一个网站,该网站具有预先确定的“允许数量”,用于表示它将抓取多少页面(或者根据网站的权限/大小/声誉,将花费多少资源/时间),和 SEO 称之为爬行预算。 这意味着,如果您从搜索引擎蜘蛛中阻止网站的各个部分,则可以允许将抓取预算用于其他部分。
阻止搜索引擎抓取您网站中有问题的部分有时非常有用,尤其是在必须进行大量 SEO 清理的网站上。 一旦你整理好了东西,就可以让他们回来。
关于阻止查询参数的说明
爬网预算特别重要的一种情况是,您的站点使用大量查询字符串参数进行筛选和排序。 假设您有 10 个不同的查询参数,每个参数都有不同的值,可以任意组合使用。 这导致数百甚至数千个可能的 URL。 阻止所有查询参数被抓取将有助于确保搜索引擎仅捕获您网站的主要 URL,并且不会进入您以其他方式创建的巨大陷阱。
此行会阻止您网站上包含查询字符串的所有网址:
不允许: /*?*
Con:不从搜索结果中删除页面
即使你可以使用 robots.txt 文件告诉蜘蛛它无法进入你的网站,你也无法使用它告诉搜索引擎哪些网址不会显示在搜索结果中 – 换句话说,阻止它不会阻止它被编入索引。 如果搜索引擎找到足够的链接到该 URL,它将包含它,它将不知道该页面上的内容。 所以你的结果看起来像这样:
如果要可靠地阻止页面显示在搜索结果中,则需要使用元机器人 noindex 标记。 这意味着,为了找到 noindex 标记,搜索引擎必须能够访问该页面,因此不要使用 robots.txt 阻止它。
Noindex 指令
对于在 robots.txt 文件中添加“noindex”指令是否可以控制索引行为,以及避免这些“碎片”出现在搜索引擎中,它仍然是搜索引擎优化的研究和争论的持续领域。 测试结果各不相同,搜索引擎不清楚支持的内容和不支持的内容。
Con:没有传播链接值
如果搜索引擎无法抓取网页,则无法在该网页上的链接上传播链接值。 当一个页面被 robots.txt 阻止时,它就是一个死胡同。 可能已经流入(并通过)该页面的任何链接值都将丢失。
robots.txt 语法
WordPress robots.txt
我们有一篇关于如何最好地为 WordPress 设置 robots.txt 文章。 不要忘记您可以在 Yoast SEO 工具→文件编辑器部分编辑您网站的 robots.txt 文件。
robots.txt 文件由一个或多个指令块组成,每个指令块都以用户代理行开头。 “user-agent”是它所针对的特定蜘蛛的名称。 您可以为所有搜索引擎使用一个块,为用户代理使用通配符,或为特定搜索引擎使用特定块。 搜索引擎蜘蛛将始终选择与其名称最匹配的块。
这些块看起来像这样(不要害怕,我们将在下面解释):
用户代理: *
不允许: /
用户代理:Googlebot
不允许:
用户代理:bingbot
禁止:/ not-for-bing /
Allow 和 Disallow 等指令不应区分大小写,因此无论您是将它们写成小写还是大写它们都取决于您。 值不区分大小写,但/photo/与/Photo/ 。 我们喜欢将指令大写,因为它使文件更容易(供人类使用)阅读。
User-agent 指令
每个指令块的第一位是用户代理,它标识一个特定的蜘蛛。 用户代理字段与特定蜘蛛(通常更长)的用户代理进行匹配,因此例如来自 Google 的最常见蜘蛛具有以下用户代理:
Mozilla / 5.0(兼容; Googlebot / 2.1; + http://www.google.com/bot.html)
因此,如果你想告诉这个蜘蛛该做什么,一个相对简单的 User-agent: Googlebot 线就可以了。
大多数搜索引擎都有多个蜘蛛。 他们将使用特定的蜘蛛作为正常索引,广告程序,图片,视频等。
搜索引擎将始终选择他们可以找到的最具体的指令块。 假设你有 3 组指令:一组用于* ,一组用于 Googlebot ,一组用于 Googlebot-News 。 如果机器人来自其用户代理是 Googlebot-Video ,它将遵循 Googlebot restrictions 。 使用用户代理 Googlebot-News 的机器人将使用更具体的 Googlebot-News 指令。
搜索引擎蜘蛛最常见的用户代理
以下是您可以在 robots.txt 文件中使用的用户代理列表,以匹配最常用的搜索引擎:
搜索引擎 领域 用户代理
百度 一般 baiduspider
百度 图片 baiduspider-image
百度 移动 baiduspider-mobile
百度 新闻 baiduspider-news
百度 视频 baiduspider-video
兵 一般 bingbot
兵 一般 msnbot
兵 图像和视频 msnbot-media
兵 广告 adidxbot
谷歌 一般 Googlebot
谷歌 图片 Googlebot-Image
谷歌 移动 Googlebot-Mobile
谷歌 新闻 Googlebot-News
谷歌 视频 Googlebot-Video
谷歌 AdSense 的 Mediapartners-Google
谷歌 AdWords 的 AdsBot-Google
雅虎 一般 slurp
Yandex 的 一般 yandex
Disallow 指令
任何指令块中的第二行是 Disallow 行。 您可以拥有一行或多行,指定指定蜘蛛无法访问的站点部分。 空的 Disallow 行意味着您不会禁止任何内容,因此基本上这意味着蜘蛛可以访问您网站的所有部分。
以下示例将阻止所有“收听” robots.txt 搜索引擎抓取您的网站。
用户代理: *
不允许: /
下面的示例只允许一个字符, 允许所有搜索引擎抓取整个网站。
用户代理: *
不允许:
下面的示例将阻止 Google 抓取您网站上的 Photo 目录 – 以及其中的所有内容。
用户代理:googlebot
禁止:/照片
这意味着/Photo 目录的所有子目录也不会被蜘蛛侠。 它不会阻止 Google 抓取/photo 目录,因为这些行区分大小写。
这也会阻止 Google 访问包含/Photo 网址,例如/Photography/ 。
如何使用通配符/正则表达式
“官方”, robots.txt 标准不支持正则表达式或通配符,但是,所有主要搜索引擎都理解它。 这意味着你可以使用这样的行来阻止文件组:
禁止:/ *。php
禁止:/copyrighted-images/*.jpg
在上面的示例中, *扩展为它匹配的任何文件名。 请注意,该行的其余部分仍区分大小写,因此上面的第二行不会阻止名为/copyrighted-images/example.JPG 的文件被爬网。
一些搜索引擎,如谷歌,允许更复杂的正则表达式,但要注意一些搜索引擎可能不理解这种逻辑。 它添加的最有用的功能是$ ,表示 URL 的结尾。 在以下示例中,您可以看到它的作用:
不允许:/*.php $
这意味着/index.php 无法编入索引,但/index.php?p=1 可能是。 当然,这仅在非常特殊的情况下才有用,而且非常危险:很容易解锁您实际上不想解锁的内容。
非标准 robots.txt 抓取指令
除 Disallow 和 User-agent 指令外,还有一些其他爬行指令可供使用。 所有搜索引擎抓取工具都不支持这些指令,因此请确保您了解其限制。
Allow 指令
虽然没有在原始的“规范”中,但很早就有一个关于 allow 指令的讨论。 大多数搜索引擎似乎都理解它,它允许这样简单,非常易读的指令:
禁止:/ wp-admin /
允许:/wp-admin/admin-ajax.php
在没有 allow 指令的情况下实现相同结果的唯一方法就是专门 disallow wp-admin 文件夹中的每个文件。
host 指令
在 Yandex(而不是 Google,尽管有些帖子说)的支持下,该指令可让您决定是否希望搜索引擎显示 example.com 或 www.example.com 。 简单地指定它就可以了:
主持人:example.com
但是因为只有 Yandex 支持 host 指令,所以我们不建议你依赖它,特别是因为它不允许你定义一个方案(http 或 https)。 适用于所有搜索引擎的更好的解决方案是 301 将您不想要的索引中的主机名重定向到您想要的版本。 在我们的案例中,我们将 www.yoast.com 重定向到 yoast.com。
crawl-delay 指令
Yahoo!,Bing 和 Yandex 有时候可能非常容易抓狂,但幸运的是它们都响应了 crawl-delay 指令,这会降低它们的速度。 虽然这些搜索引擎阅读指令的方式略有不同,但最终结果基本相同。
像下面这样的一行将指示雅虎! 并且 Bing 在爬行动作后等待 10 秒,而 Yandex 只会在每 10 秒钟访问一次您的站点。 这是一个语义差异,但仍然有趣。 这是 crawl-delay 的示例:
爬行延迟:10
使用 crawl-delay 指令时要小心。 通过设置 10 秒的爬网延迟,您只允许这些搜索引擎每天访问 8,640 页。 这对于一个小型网站来说似乎很多,但在大型网站上它并不是很多。 另一方面,如果您接下来没有来自这些搜索引擎的流量,这是节省一些带宽的好方法。
XML Sitemaps 的 sitemap 指令
使用 sitemap 指令,您可以告诉搜索引擎 – 特别是 Bing,Yandex 和 Google – 在哪里可以找到您的 XML 站点地图。 当然,您也可以使用各自的网站管理员工具解决方案将 XML 站点地图提交给每个搜索引擎,我们强烈建议您这样做,因为搜索引擎网站管理员工具程序会为您提供有关您网站的大量有价值信息。 如果您不想这样做,将 sitemap 行添加到您的 robots.txt 是一个很好的快速替代方案。
验证您的 robots.txt
有各种各样的工具可以帮助您验证 robots.txt ,但在验证爬网指令时,我们总是更喜欢转到源代码。 Google 在其 Google 搜索控制台中有一个 robots.txt 测试工具(在“旧版本”菜单下),我们强烈推荐使用它:
robots.txt 测试员
在您将其更改之前,请务必彻底测试您的更改! 你不会是第一个不小心使用 robots.txt 阻止整个网站,并进入搜索引擎遗忘!
本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/70312.html
如有侵犯您的合法权益请发邮件951076433@qq.com联系删除