robots.txt是任何搜索引擎优化的重要组成部分,也是SEOer的重要一课。 但是,有时候robots.txt文件会被网站优化师SEOer忽视。 无论你是否刚刚起步,或者你是一个优化老手,都需要知道robots.txt文件应该怎样写。 那么,我们先来了解: robots.txt文件可以用于各种各样的事情。 例如从让搜索引擎知道去哪里找到你的网站站点地图、告诉他们哪些页面不需要抓取,以管理网站爬行预算。 搜索引擎会定期检查网站的robots.txt文件,看看是否有任何抓取网站的说明。我们称这些特别的说明为“指令”。 如果没有robots.txt文件或者没有适用的指令,搜索引擎将抓取整个网站。 Okay,那什么是爬行预算(Crawl Budget)? 简单解释下: 谷歌和其他搜索引擎一样,他们只有有限的资源可用于抓取和索引你网站的内容。 如果你的网站只有几百个网址,那么Google应该可以轻松抓取到所有网页并将其编入索引。 但是,如果网站很大,例如电子商务网站,有数千个包含大量自动生成的网页(如搜索页),那么Google可能无法抓取所有这些网页,你将失去许多潜在的流量和可见性。 所以我们要通过设置robots.txt文件用于管理网站爬行预算。 谷歌表示: 那些低价值的网址就比如像搜索页一类的页面。生成太多这些页面,谷歌蜘蛛如果去爬行的话,将消耗大量爬行预算,以至于一些重要的页面可能就不能被收录了。 使用robots.txt文件来帮助管理网站抓取预算,确保搜索引擎尽可能高效地(尤其是大型网站)抓取重要网页而不是浪费时间去抓取登录,注册或支付页面等页面。 从搜索引擎优化SEO的角度来看,robots.txt文件起着至关重要的作用。它告诉搜索引擎他们如何最好地抓取你的网站。 使用robots.txt文件可以阻止搜索引擎访问网站的某些部分,防止重复内容,并为搜索引擎提供有关如何更有效地抓取你网站的有用提示。 在对robots.txt进行更改时要小心:因为设置失误可能会使搜索引擎无法访问网站的大部分内容。 在Googlebot,Bingbot等机器人抓取网页之前,它会首先检查是否存在robots.txt文件,如果存在,则通常会遵循该文件中找到的路线。 你可以通过robots.txt文件控制以下事情: 阻止访问网站的某个部分(开发和登台环境等) 保持网站内部搜索结果页面不被抓取,编入索引或显示在搜索结果中 指定站点地图或站点地图的位置 通过阻止访问低价值页面来优化抓取预算(登录,支付页面,购物车等) 防止将网站上的某些文件(图像,PDF等)编入索引 让我们看一个例子来说明这一点: 你有一个电子商务网站,访问者可以使用筛选功能快速搜索你的产品,如通过销量、价格排列。 此筛选生成的页面基本上显示与其他页面相同的内容。 这对用户很有用,但会混淆搜索引擎,因为它会创建重复的内容。 如果搜索引擎把这些网页编入索引,将浪费你宝贵的抓取资源。 因此,应该设置规则,以便搜索引擎不访问这些页面。 如果你不熟悉robots.txt文件,或者不确定你的网站是否有该文件,可以快速查看。 方法: 将 /robots.txt 添加到首页URL的末尾。 示例:www.yoursite.com/robots.txt 如果没有显示任何内容,那么说明你的站点没有robots.txt文件。那就应该设置一个了。 创建robots.txt文件是一个相当简单的过程: 新建文本文档 ——>重命名为robots.txt(所有文件必须小写)——> 编写规则 ——>用FTP把文件上(放到根目录下)传到空间 下面的文章是谷歌官方介绍,将向你robots.txt文件的创建过程,可以帮助你轻松建立你自己的robots.txt文件: https://support.google.com/webmasters/answer/6062596?hl=zh-Hans 注意: robots.txt自身是一个文本文件。它必须位于域名的根目录中并 被命名为"robots.txt"。位于子目录中的 robots.txt 文件无效,因为爬虫只在域名的根目录中查找此文件。 例如,http://www.example.com/robots.txt 是有效位置,http://www.example.com/mysite/robots.txt 则不是。 如果你用WordPress建站,可以用virtual robots、yoast、all in one seo等插件创建和设置。 以下是可以在自己的网站上使用robots.txt文件的几个示例。 允许所有爬虫 /蜘蛛访问所有网站内容: 禁止所有爬虫 /蜘蛛访问所有网站内容: 这里可以了解到在创建站点robots.txt时出错是多么容易,因为阻止整个站点被看到的区别在于:disallow指令(Disallow:/)中的简单斜杠。 阻止谷歌爬虫 /蜘蛛访问: 阻止爬虫 /蜘蛛访问特定页面: 从服务器的一部分中排除所有爬虫: 一、说明theverge不想谷歌爬虫去抓取这些目录下的内容 二、说明theverge不想任何爬虫去抓取这些目录下的内容 三、theverge把所有的站点地图列在robots.txt里面 可以在此处查看示例文件:www.theverge.com/robots.txt 可以看到The Verge如何使用他们的robots.txt文件,专门支出Google的新闻蜘蛛“Googlebot-News”(第一点),以确保它不会抓取网站上的这些目录。 重要的是要记住,如果想确保爬虫不会抓取你网站上的某些页面或目录,那么可以在robots.txt文件的“Disallow”声明中调出这些页面和/或目录,如上面例示的做法。 另外,还可以在robots.txt规范指南中查看Google如何处理robots.txt文件,Google对robots.txt文件的当前最大文件大小限制。 Google的最大大小设置为500KB,因此请务必注意您的网站robots.txt文件的大小。 以下内容提取于谷歌官方介绍,原文: https://support.google.com/webmasters/answer/6062596?hl=zh-Hans robots.txt文件应始终放在 请注意,robots.txt文件的URL与其他任何URL一样,区分大小写。 如果在默认位置找不到robots.txt文件,搜索引擎会认为没有指令。 文件必须命名为 robots.txt。 网站只能有 1 个 robots.txt 文件。 robots.txt 文件必须位于它所应用到的网站主机的根目录下。例如,要控制对 robots.txt 文件可应用到子网域(例如 robots.txt 必须是 ASCII 或 UTF-8 文本文件。不允许包含其他字符。 robots.txt 文件由一条或多条规则组成。 每条规则由多条指令(说明)组成,每条指令各占一行。 每条规则包含以下信息: 此规则的适用对象(即User-agent) 代理可以访问的目录或文件,和/或 代理无法访问的目录或文件。 系统会按照从上到下的顺序处理这些规则,而且一个用户代理只能匹配 1 个规则集(即与相应用户代理匹配的首条最具体的规则)。 系统的默认假设是:用户代理可以抓取所有未被 规则区分大小写。例如, User-agent: * Disallow: / User-agent: * Disallow: /calendar/ Disallow: /junk/ User-agent: Googlebot-news Allow: / User-agent: * Disallow: / User-agent: Unnecessarybot Disallow: / User-agent: * Allow: / User-agent: Googlebot-Image Disallow: /images/dogs.jpg User-agent: Googlebot-Image Disallow: / User-agent: Googlebot Disallow: /*.gif$ User-agent: * Disallow: / User-agent: Mediapartners-Google Allow: / User-agent: Googlebot Disallow: /*.xls$ 重要的是要注意搜索引擎处理robots.txt文件的方式不同。默认情况下,第一个匹配指令总是有优先权。 但是Google谷歌和Bing必应,更偏重于具体的目录。 就是说:如果指令的字符长度较长,则谷歌和必应会跟看重 例子 User-agent:* Allow:/ about / company / Disallow:/ about / 在上面的示例中 例子 User-agent:* Disallow:/ about / Allow:/ about / company / 在上面的示例中,除Google和Bing之外的所有搜索引擎都不允许访问 但允许 Google和Bing 访问 你只能为每个搜索引擎定义一组指令。为一个搜索引擎设置多组指令会使它们混淆。 disallow指令也会触发部分匹配。 在定义 例子 User-agnet:* Disallow:/directory 上面的示例不允许搜索引擎访问: /directory /directory/ /directory-name-1 /directory-name.html /directory-name.php /directory-name.pdf 所以要指明那个目录是需要被禁止爬行的。 另外 网站管理员必须使蜘蛛程序远离某些服务器上的目录——保证服务器性能。比如:大多数网站服务器都有程序储存在“cgi-bin”目录下,因此在robots.txt文件中加入“Disallow: /cgi-bin”是个好主意,这样能够避免将所有程序文件被蜘蛛索引,可以节省服务器资源。一般网站中不需要蜘蛛抓取的文件有:后台管理文件、程序脚本、附件、数据库文件、编码文件、样式表文件、模板文件、导航图片和背景图片等等。 这个是什么意思? 让我们看一个明确的例子: User-agent: * Disallow:/ secret / Disallow:/ test / Disallow:/ not-started-yet / User-agent:googlebot Disallow:/ not-started-yet / 在上面的示例中,除Google之外的所有搜索引擎都不允许访问 Google不允许访问 如果您不想让googlebot访问 User-agent:* Disallow:/ secret / Disallow:/ test / Disallow:/ not-started-yet / User-agent:googlebot Disallow:/ secret / Disallow:/ not-started-yet / 页面仍出现在搜索结果中 由于robots.txt而导致搜索引擎无法访问的网页,但如果它们是从已抓取的网页进行链接,则仍会显示在搜索结果中。例子: Protip:可以使用Google Search Console的网址删除工具从Google中删除这些网址。请注意,这些网址只会被暂时删除。为了让他们不在Google的结果页面中,需要每90天删除一次网址。 缓存 谷歌表示robots.txt文件通常缓存最多24小时。在robots.txt文件中进行更改时,请务必考虑到这一点。 目前还不清楚其他搜索引擎如何处理robots.txt的缓存,但一般来说,最好避免缓存你的robots.txt文件,以避免搜索引擎花费超过必要的时间来接收更改。 文件大小 对于robots.txt文件,Google目前支持的文件大小限制为500 kb。可以忽略此最大文件大小之后的任何内容。 可以在旧版谷歌站长工具进行检查。 点击 抓取 > robots.txt测试工具 可以看到你的robots内容,下面输入想测试的url,点击测试,就能知道该url是否有被robots.txt的指令给限制了。 也可以通过下面链接直接进入: https://support.google.com/webmasters/answer/6062598?hl=zh-Hans 确保所有重要页面都是可抓取的 不要阻止网站JavaScript和CSS文件 在站长工具检查重要的URL是否被禁止抓取 正确大写目录,子目录和文件名 将robots.txt文件放在网站根目录中 Robots.txt文件区分大小写,文件必须命名为“robots.txt”(没有其他变体) 请勿使用robots.txt文件隐藏私人用户信息,因为它仍然可见 将站点地图位置添加到robots.txt文件中。 这看起来像这个 store.yoursite.com/robots.txt和yoursite.com/robots.txt。 原因是,其他页面可能链接到该信息,如果有直接链接,它将绕过robots.txt规则,并且内容可能仍会被索引。 如果您需要阻止您的网页在搜索结果中真正被编入索引,请使用不同的方法,例如添加密码保护或向这些网页添加noindex元标记。Google无法登录受密码保护的网站/网页,因此他们无法抓取或索引这些网页。 虽然有人说 谷歌尚未明确原因,但我们认为我们应该认真对待他们的建议,因为: 如果使用多种方式发出不索引的信号,那么很难跟踪哪些页面不应该被索引。 该 我们只知道Google使用该 如果你之前从未使用过robots.txt文件,可能会有点紧张,但请放心使用,而且设置相当简单。 一旦熟悉了文件的细节,就可以增强网站的搜索引擎优化。 通过正确设置robots.txt文件,将帮助搜索引擎爬虫明智地花费他们的抓取预算,并帮助确保他们不浪费时间和资源来抓取不需要抓取的网页。 这将有助于他们以尽可能最好的方式在SERP中组织和显示你的网站内容,意味着你将获得更多的曝光。 设置robots.txt文件并不一定需要花费大量的时间和精力。在大多数情况下,它是一次性设置,然后可以进行一些小的调整和更改,以帮助更好地塑造网站。 我希望本文中介绍的做法、提示和建议有助你着手创建/调整你的网站robots.txt文件。 1. 百度蜘蛛:Baiduspider网上的资料百度蜘蛛名称有BaiduSpider、baiduspider等,都洗洗睡吧,那是旧黄历了。百度蜘蛛最新名称为Baiduspider。日志中还发现了Baiduspider-image这个百度旗下蜘蛛,查了下资料(其实直接看名字就可以了……),是抓取图片的蜘蛛。常见百度旗下同类型蜘蛛还有下面这些:Baiduspider-mobile(抓取wap)、Baiduspider-image(抓取图片)、Baiduspider-video(抓取视频)、Baiduspider-news(抓取新闻)。注:以上百度蜘蛛目前常见的是Baiduspider和Baiduspider-image两种。 2. 谷歌蜘蛛:Googlebot这个争议较少,但也有说是GoogleBot的。谷歌蜘蛛最新名称为“compatible; Googlebot/2.1;”。还发现了Googlebot-Mobile,看名字是抓取wap内容的。 3. 360蜘蛛:360Spider,它是一个很“勤奋抓爬”的蜘蛛。 4、SOSO蜘蛛:Sosospider,也可为它颁一个“勤奋抓爬”奖的蜘蛛。 5、雅虎蜘蛛:“Yahoo! Slurp China”或者Yahoo!名称中带“Slurp”和空格,名称有空格robots里名称可以使用“Slurp”或者“Yahoo”单词描述,不知道有效无效。 6、有道蜘蛛:YoudaoBot,YodaoBot(两个名字都有,中文拼音少了个U字母读音差别很大嘎,这都会少?) 7、搜狗蜘蛛:Sogou News Spider搜狗蜘蛛还包括如下这些: Sogou web spider、Sogou inst spider、Sogou spider2、Sogou blog、Sogou News Spider、Sogou Orion spider,(参考一些网站的robots文件,搜狗蜘蛛名称可以用Sogou概括,无法验证不知道有没有效)看看最权威的百度的robots.txt ,http://www.baidu.com/robots.txt 就为Sogou搜狗蜘蛛费了不少字节,占了一大块领地。“Sogou web spider;Sogou inst spider;Sogou spider2;Sogou blog;Sogou News Spider;Sogou Orion spider”目前6个,名称都带空格。线上常见”Sogou web spider/4.0″ ;”Sogou News Spider/4.0″ ;”Sogou inst spider/4.0″ 可以为它颁个“占名为王”奖。 8、MSN蜘蛛:msnbot,msnbot-media(只见到msnbot-media在狂爬……) 9、必应蜘蛛:bingbot线上(compatible; bingbot/2.0;) 10、一搜蜘蛛:YisouSpider 11、Alexa蜘蛛:ia_archiver 12、宜sou蜘蛛:EasouSpider 13、即刻蜘蛛:JikeSpider 14、一淘网蜘蛛:EtaoSpider“Mozilla/5.0 (compatible; EtaoSpider/1.0; http://省略/EtaoSpider)”根据上述蜘蛛中选择几个常用的允许抓取,其余的都可以通过robots屏蔽抓取。如果你暂时空间流量还足够使用,等流量紧张了就保留几个常用的屏蔽掉其它蜘蛛以节省流量。至于那些蜘蛛抓取对网站能带来有利用的价值,网站的管理者眼睛是雪亮的。 另外还发现了如 YandexBot、AhrefsBot和ezooms.bot这些蜘蛛,据说这些蜘蛛国外,对中文网站用处很小。那不如就节省下资源。 Peace Out 给我【在看】 你也越好看!
User-agent:*
Disallow:User-agent:*
Disallow:/User-agent:Googlebot
Disallow:/User-agent:
Disallow:/thankyou.htmlUser-agent:*
Disallow:/ cgi-bin /
Disallow:/ tmp /
Disallow:/junk/这是theverge.com网站上robots.txt文件的示例:
位置规则和文件名
root
网站的位置(在主机的顶级目录中)并带有文件名robots.txt
,例如:https://www.example.com/robots.txt
。
http://www.example.com/
下所有网址的抓取,就必须将 robots.txt 文件放在根目录下(即 http://www.example.com/robots.txt
),而不能放在子目录下(例如 http://example.com/pages/robots.txt
)。http://website.example.com/robots.txt
)或非标准端口(例如 http://example.com:8181/robots.txt
)。语法
Disallow:
规则禁止访问的网页或目录。Disallow: /file.asp
适用于 http://www.example.com/file.asp
,但不适用于 http://www.example.com/FILE.asp
。
规则
示例
禁止抓取整个网站。 请注意,在某些情况下,Google 即使未抓取网站的网址,仍可能会将其编入索引。注意:这不适用于各种 AdsBot 抓取工具,此类抓取工具必须明确指定。
禁止抓取某一目录及其内容(在目录名后面添加一道正斜线)。请注意,若想禁止访问私密内容,则不应使用 robots.txt,而应改用适当的身份验证机制。对于 robots.txt 文件所禁止抓取的网址,Google 仍可能会在不进行抓取的情况下将其编入索引;另外,由于 robots.txt 文件可供任何人随意查看,因此可能会泄露您的私密内容的位置。
仅允许使用某一抓取工具
允许使用除某一抓取工具以外的其他所有抓取工具
禁止抓取某一网页(在正斜线后面列出网页):
Disallow: /private_file.html
禁止 Google 图片访问某一特定图片:
禁止 Google 图片访问您网站上的所有图片:
禁止抓取某一特定类型的文件(例如 .gif):
禁止抓取整个网站,但允许在这些网页上显示 AdSense 广告(禁止使用除 Mediapartners-Google 以外的所有网页抓取工具)。这种方法会阻止您的网页显示在搜索结果中,但 Mediapartners-Google 网页抓取工具仍能分析这些网页,以确定要向您网站上的访问者显示哪些广告。
匹配以某一特定字符串结尾的网址 - 需使用美元符号 ($)。例如,示例代码会禁止访问以 .xls 结尾的所有网址:
优先顺序
Allow
指令。/about/
,除了子目录之外,所有搜索引擎(包括Google和Bing)都不允许访问该目录/about/company/
。/about/
目录,包括/about/company/
。/about/company/
,因为该Allow
指令比Disallow
指令长,目录位置更具体。指令
User-agent
:[必需,每条规则需含一个或多个 User-agent 条目] ,填写搜索引擎蜘蛛(抓取工具)的名称。这是每条规则的首行内容。Web Robots Database 和 Google User Agent(抓取工具)列表中列出了大多数用户代理名称。支持使用星号 (*) 通配符表示路径前缀、后缀或整个字符串。像下例中那样使用星号 (*
) 可匹配除各种 AdsBot 抓取工具之外(此类抓取工具必须明确指定)的所有抓取工具。示例:# 示例 1:仅屏蔽 Googlebot
User-agent: Googlebot
Disallow: /
# 示例 2:屏蔽 Googlebot 和 Adsbot
User-agent: Googlebot
User-agent: AdsBot-Google
Disallow: /
# 示例 3:屏蔽除 AdsBot 抓取工具之外的所有抓取工具
User-agent: *
Disallow: /Disallow
:[每条规则需含至少一个或多个 Disallow 或 Allow 条目] 用户代理不应抓取的目录或网页(相对于根网域而言)。如果要指定网页,就应提供浏览器中显示的完整网页名称;如果要指定目录,则应以标记“/”结尾。支持使用通配符“*”表示路径前缀、后缀或整个字符串。Allow
:[每条规则需含至少一个或多个 Disallow 或 Allow 条目] 上文中提到的用户代理应抓取的目录或网页(相对于根网域而言)。此指令用于替换 Disallow 指令,从而允许抓取已禁止访问的目录中的子目录或网页。如果要指定网页,就应提供浏览器中显示的完整网页名称;如果要指定目录,则应以标记“/”结尾。支持使用通配符“*”表示路径前缀、后缀或整个字符串。Sitemap
:[可选,每个文件可含零个或多个 Sitemap 条目] 相应网站的站点地图的位置。必须是完全限定的网址;Google 不会假定存在或检查是否存在 http/https/www/非 www 等网址变体。站点地图是一种用于指示 Google 应抓取哪些内容(而不是可以或无法抓取哪些内容)的好方法。详细了解站点地图。 示例:Sitemap: https://example.com/sitemap.xml
Sitemap: http://www.example.com/sitemap.xml要尽可能具体
Disallow
指令时尽可能具体,以防止无意中禁止访问文件。
特定User Agent的指令,不包含在所有User Agent抓取工具的指令
/secret/
,/test/
和/not-launched-yet/
。/not-launched-yet/
,但允许访问/secret/
和/test/
。/secret/
,/not-launched-yet/
,那么需要googlebot
特别重复这些指令:检查robots.txt文件和URL
如果你有一个子域或多个子域在网站,那么你将需要对每个子域以及在主根域robots.txt文件。
不要在robots.txt中使用noindex
noindex
在robots.txt文件中使用指令是个好主意,但它不是官方标准,谷歌公开建议不要使用它。
noindex
指令不是万无一失的,因为它不是官方标准。可能它不会被谷歌100%追踪。noindex
指令,其他搜索引擎(可能)不会将其用于noindex页面。
获取更多国外SEM、SEO干货
文章为作者独立观点,不代表DLZ123立场。如有侵权,请联系我们。( 版权为作者所有,如需转载,请联系作者 )
网站运营至今,离不开小伙伴们的支持。 为了给小伙伴们提供一个互相交流的平台和资源的对接,特地开通了独立站交流群。
群里有不少运营大神,不时会分享一些运营技巧,更有一些资源收藏爱好者不时分享一些优质的学习资料。
现在可以扫码进群,备注【加群】。 ( 群完全免费,不广告不卖课!)
发表评论 取消回复