【类聚SEO培训】后羿SEOrobots.txt的终极指南


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:没有传播链接值

 

【类聚SEO培训】后羿SEOrobots.txt的终极指南

如果搜索引擎无法抓取网页,则无法在该网页上的链接上传播链接值。 当一个页面被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阻止整个网站,并进入搜索引擎遗忘!


未经允许不得转载:seo教程博客网 » 【类聚SEO培训】后羿SEOrobots.txt的终极指南

评论 1

评论前必须登录!

登陆 注册
  1. 违章代办很好 支持下 学习了