1. 首页
  2. 网络营销赋能
  3. 海外营销

通过交互式示例了解Robots.txt

关于网络发展最令我兴奋的事情之一是学习资源的增长。当我1998年上大学时,能够搜索期刊,获得价值数千美元的教科书以及下载开源软件是令人兴奋的。这些天来,像技术汗学院,iTunesU,树 和Codecademy网站采取到另一个层次。

我对来自Codecademy这样的地方的互动学习的可能性感到特别兴奋。它显然最适合学习看起来像编程语言的东西 – 计算机自然善于解释“答案” – 这让我想到了在线营销的那些部分。

计算机在我们的营销世界中要解释的东西是:

搜索查询 – 特别是那些看起来更像编程结构而不是自然语言查询的查询,例如[site:distilled.net -inurl:www]
设置分析 的现场部分- 设置自定义变量和事件,添加虚拟网页浏览,修改电子商务跟踪等
Robots.txt语法和规则
HTML构造,如链接,元页面信息,alt属性等。
像Excel公式这样的技巧,我们很多人都发现了我们日常工作的关键部分
我已经逐步为我们的在线培训平台DistilledU构建了所有这些东西的代码共享式交互式学习环境,但其中大多数只适用于付费会员。我认为这将是一个很好的开始,2013年从付费墙后面拉出其中一个模块,并将其交给SEOmoz社区。我选择了robots.txt,因为我们的应用内反馈表明它是人们学习最多的一个。

此外,尽管有多年的经验,我在编写这个模块时发现了一些我不知道的事情(特别是关于不同规则的优先级以及通配符与显式规则的交互)。我希望它对你们许多人都有用 – 初学者和专家都一样。

Robots.txt互动指南
Robots.txt是在域根目录中找到的纯文本文件(例如www.example.com/robots.txt)。这是一个广为人知的标准,允许网站管理员控制其网站的各种自动消费,而不仅仅是搜索引擎。

除了阅读协议之外,robots.txt是SEO中更容易访问的领域之一,因为您可以访问任何网站的robots.txt。完成此模块后,您将发现确保您了解某些大型网站(例如Google和亚马逊)的robots.txt文件的价值。

对于以下每个部分,修改textareas中的文本,并在得到正确答案时看到它们变为绿色。

基本排除
robots.txt最常见的用例是阻止机器人访问特定页面。最简单的版本将规则应用于所有机器人,其中一行代表User-agent:*。后续行包含累积工作的特定排除项,因此下面的代码会阻止机器人访问/secret.html。

除了/secret.html之外,添加另一个规则来阻止对/secret2.html的访问。

User-agent: *
Disallow: /secret.html

排除目录
如果您使用尾部斜杠(“/”)结束排除指令,例如Disallow:/ private /,则会阻止目录中的所有内容。

修改下面的排除规则以阻止名为secret而不是页面secret.html的文件夹。

User-agent: * Disallow: /secret.html

允许特定路径
除了禁止特定路径之外,robots.txt语法还允许允许特定路径。请注意,允许机器人访问是默认状态,因此如果文件中没有规则,则允许所有路径。

Allow:指令 的主要用途是覆盖更一般的Disallow:指令。该优先规则规定,“基于所述[路径]条目将胜过少特定的(短)规则的长度最具体的规则。优先的为规则与通配符的顺序是不确定的。”。

我们将通过使用允许:规则允许/secret/not-secret.html 修改下面的/ secret /文件夹的排除来证明这一点。由于此规则较长,因此优先。

User-agent: * Disallow: /secret/

限制为特定用户代理
我们所使用的所有指令同样适用于所有机器人。这由User-agent指定:*开始我们的命令。但是,通过替换*,我们可以设计仅适用于特定命名机器人的规则。

更换*与Googlebot的在下面的例子中创建一个只适用于谷歌的机器人的规则。

User-agent: * Disallow: /secret/

添加多个块
可以具有针对不同机器人集的多个命令块。下面的robots.txt示例将允许googlebot访问除/ secret /目录中的文件以外的所有文件,并将阻止整个站点中的所有其他机器人。请注意,因为有一组明确针对googlebot的指令,googlebot将完全忽略针对所有机器人的指令。这意味着您无法从常见排除基础中构建排除项。如果要定位命名机器人,则每个块必须指定其自己的所有规则。

添加第二个指令块,其目标是阻止整个站点的所有机器人(用户代理:*)(Disallow:/)。这将创建一个robots.txt文件,该文件可阻止除googlebot之外的所有机器人的整个网站,googlebot可以抓取除/ secret /文件夹中的页面以外的任何页面。

User-agent: googlebot Disallow: /secret/

使用更多特定用户代理
有时您希望控制特定抓取工具(例如Google的图片抓取工具)的行为与主googlebot不同。为了在robots.txt中启用此功能,这些抓取工具将选择侦听适用于它们的最具体的用户代理字符串。因此,例如,如果有一个googlebot指令块和一个googlebot-images指令块,那么图像爬虫将遵守后一组指令。如果没有针对googlebot-images(或任何其他专业googlebots)的特定说明,他们将遵守常规的googlebot指令。

请注意,爬虫只会遵守一组指令 – 没有跨组累积应用指令的概念。

鉴于以下robots.txt,googlebot-images将遵守googlebot指令(换句话说,不会抓取/ secret /文件夹。修改此以便googlebot(和googlebot-news等)的说明保持不变但googlebot- images有一组特定的指令意味着它不会抓取/ secret /文件夹或/ copyright /文件夹:

User-agent: googlebot Disallow: /secret/

基本通配符
尾随通配符(用*表示)将被忽略,因此Disallow:/ private *与Disallow:/ private相同。然而,通配符对于一次匹配多种页面非常有用。星号(*)匹配0个或更多任何有效字符的实例(包括/,?等)。

例如,Disallow:news * .html blocks:

news.html
news1.html
news1234.html
newsy.html
news1234.html?ID = 1
但也不能阻止:

newshtml 注意缺少“。”
News.html 匹配区分大小写
/directory/news.html
修改以下模式以仅阻止在博客目录中而不是整个博客目录中以.html结尾的页面:

User-agent: * Disallow: /blog/

阻止某些参数
通配符的一个常见用例是阻止某些参数。例如,处理分面导航的一种方法是阻止4个或更多个方面的组合。一种方法是让你的系统为4个方面的所有组合添加一个参数,例如?crawl = no。这意味着例如3个方面的URL可能是/ facet1 / facet2 / facet3 /,但是当添加第四个时,这变为/ facet1 / facet2 / facet3 / facet4 /?crawl = no。

机器人规则阻止这应该寻找* crawl = no(不*?crawl = no,因为查询字符串?sort = asc&crawl = no将是有效的)。

将Disallow:规则添加到下面的robots.txt,以防止任何包含crawl = no的网页被抓取。

User-agent: * Disallow: /secret/

匹配整个文件名
正如我们看到的文件夹排除(其中像/ private /这样的模式将匹配该文件夹中包含的文件路径,如/private/privatefile.html),默认情况下,我们在robots.txt中指定的模式很乐意仅匹配一部分文件名,即使没有明确的通配符,也允许随后发生任何事情。

有时我们希望能够强制匹配整个文件名的模式(带或不带通配符)。例如,以下robots.txt看起来像是阻止jpg文件被抓取,但实际上也会阻止抓取名为explain-of-.jpg.html的文件,因为它也与模式匹配。

如果你想要一个模式匹配文件名的末尾,那么我们应该用$符号结束它,这表示“行结束”。例如,将Disallow:/private.html中的排除项修改为Disallow:/private.html $会停止匹配/private.html?sort=asc的模式,从而允许对该页面进行爬网。

修改下面的模式以排除实际的.jpg文件(即以.jpg结尾的文件)。

User-agent: * Disallow: *.jpg

添加XML站点地图
许多robots.txt文件中的最后一行是指定站点的XML站点地图的位置的指令。为您的网站添加站点地图以及将其列在robots.txt文件中有很多充分的理由。您可以在此处阅读有关XML站点地图的更多信息。

您可以使用Sitemap:<path>形式的指令指定站点地图的位置。

将sitemap指令添加到以下robots.txt中,以获取名为my-sitemap.xml的站点地图,该站点地址可在http://www.distilled.net/my-sitemap.xml中找到。

User-agent: * Disallow: /private/

添加视频站点地图
实际上,您可以使用此语法添加多个XML站点地图(每个站点地图都在各自的行上)。继续修改下面的robots.txt,还要包含一个名为my-video-sitemap.xml的视频站点地图,该站点地图位于/my-video-sitemap.xml。

User-agent: * Disallow: /private/ Sitemap: /my-sitemap.xml

如果您遇到任何这些测试,该怎么办?
首先,我有可能在JavaScript测试中犯了错误,无法以正确的方式对某些正确的解决方案进行评分。很抱歉,如果是这种情况 – 如果您让我知道,我会尝试解决这些问题。

无论你认为你的答案是否正确(但盒子没有变绿),或者你被困住了,并且还没有得到如何处理的线索,请只需:

检查评论,看看是否有其他人有同样的问题; 如果不:
发表评论,说明您要完成的测试以及最佳猜测答案
这将让我尽快帮助你。

强制免责声明
请不要在您自己的网站上使用上面的任何robots.txt片段 – 它们只是说明性的(有些会是一个非常糟糕的主意)。这篇文章的想法是教授有关如何解释robots.txt文件的一般原则,而不是解释使用它们的最佳方法。对于后者的更多内容,我建议以下帖子:

如何阻止搜索结果中的内容(专业提示 – 尽管上面的例子不包括“秘密”文件和文件夹,但不要依赖robots.txt)
详细了解您可能希望阻止来自网站某些区域的机器人
避免意外地使用阻止机器人的各种不同方式提供相互矛盾的指令
阅读一些“不应该”(旧的但仍然相关):robots.txt滥用,意外阻止链接汁
无论你是初学者还是专业人士,我希望你在这些练习中找到了一些有用的东西。我期待在评论中听到您的反馈意见。

本文来自投稿,不代表穷思笔记立场,如若转载,请注明出处:https://www.chons.cn/14421.html

发表评论

登录后才能评论

联系我们

 

在线咨询:点击这里给我发消息

邮件:2267450086@qq.com

QR code