1. 主页
  2. 文档
  3. SEO实战
  4. Robots.txt知识点
  5. Disallow:/XXX及Disallow: /XXX/等变体介绍与用法

Disallow:/XXX及Disallow: /XXX/等变体介绍与用法

大家好,我是飞小优,经常有用户问到关于Robots文件中Disallow的用法,其中有些会让大家摸不着北,比如以下几种类型,究竟是什么意思以及在实际操作过程中怎么解决?

在robots.txt 文件中,Disallow指令用于告诉搜索引擎哪些页面不应被收录,这很好理解。

先说/aa和/aa/

Disallow: /aa 和 Disallow: /aa/ 之间的区别在于后者包含了一个额外的斜杠,这可能会影响到匹配的URL路径。举例说明:

假设您有一个网站,其 URL 结构如下:

在 robots.txt 文件中添加 Disallow: /aa/ 规则时,搜索引擎爬虫将不会抓取 /aa/index.html 和 /aa/bb。然而,/aa/bb.html 仍将被抓取,因为它以 /aa/ 结尾,但并非以 /aa/ 开头。

Disallow: /aa 指示搜索引擎不要抓取以/aa开头的所有URL。例如,/aa/bb.html 和/aa/cc/dd.html 都会被包括在内。/aa包含了/aa/bb.html/aa/cc/dd.html

Disallow: /aa/ 则指示搜索引擎不要抓取以/aa/开头的所有URL。这里的斜杠意味着URL必须以/aa/准确无误地结束,所以像/aa/index.html 或/aa/bb这样的URL将不会被包括在内,但/aa/bb.html 会被包含在内。

也就是意味着,如果想要禁止抓取特定目录下的所有内容,请使用 Disallow: /aa/。如果想要禁止抓取以特定字符串开始的所有URL(无论它们是否是目录),请使用 Disallow: /aa

若还不能够理解,那就在看以下例子 ,例如:

搜索引擎蜘蛛将不会抓取以下路径:

但是,如果存在一个目录名为 “aaa” 的情况,则该目录不在禁止抓取的范围内,因为它的名称与 “/aa/” 不匹配。也就是说,搜索引擎蜘蛛仍然可以抓取如下的路径:

总结来说:

  • Disallow: /aa/:禁止爬取以 /aa/ 开头的任何目录及其子目录;
  • Disallow: /aa:禁止爬取 /aa 目录本身,但允许爬取其子目录。

换言之 ,Disallow:/aa/屏蔽不包含自身,表示以/aa/开头的具体目录和具体文件,Disallow: /aa是包含所有以aa开头的所有目录及所有文件。

因此在robots文件配置中需要书写不同规则来应用到实际项目需求中。

再谈相关变体区别

但是关于Disallow: /aa和其变体的解释有所区分:

  1. Disallow: /aa/这个指令表示禁止任何搜索引擎蜘蛛抓取以”/aa/”开头的任何目录及其下的所有文件。例如,”/aa/about.html” 、”/aa/images/”等都会被禁止抓取。
  2. Disallow: /aa/*这个指令表示禁止任何搜索引擎蜘蛛抓取以”/aa/”开头的任何目录及其下的所有文件。与Disallow: /aa/类似,它也会阻止对”/aa/123.html” 、”/aa/def/123.html” 等子目录和文件的访问。
  3. Disallow: /aa/$这个指令稍微有所不同。$符号表示通配符,它可以匹配任何字符串。因此,Disallow: /aa/$将会禁止任何以”/aa/”开头的目录及其最后一个文件的访问。这意味着,只有当文件名在”/aa/”之后且没有其他内容时,才会生效。例如,”/aa/images.jpg” 会被禁止抓取,但”/aa/images/”不会。

so,这三个指令的主要目的是告诉搜索引擎蜘蛛不要抓取以”/aa/”开头的任何内容。它们之间的主要区别在于对子目录和文件的处理方式。

  • Disallow: /aa/Disallow: /aa/*会阻止所有子目录和文件的访问;
  • Disallow: /aa/$只会阻止最后一个文件的访问。

如何理解“Disallow: /aa/$只会阻止最后一个文件的访问?”

让我们来看几个例子以便更好地理解:

  1. 禁止抓取的示例:
    • /aa/image.jpg: 这个网址被禁止抓取,因为”/aa/”后面紧跟的是”image.jpg” ,这符合$通配符的规则;
    • /aa/temp/file.txt: 同样,这个网址也被禁止抓取,因为”/aa/”后面紧跟的是”temp/file.txt” 。
  2. 允许抓取的示例:
    • /aa/images: 这个网址是允许被抓取的,因为”/aa/”后面并没有紧跟任何文件名,而是另一个目录名”images”。在这种情况下,$通配符没有匹配到末尾的元素,因此该网址不受Disallow规则的限制;
    • /aa/otherdir: 类似地,这个网址也是允许被抓取的,因为”/aa/”后面跟着的是另一个目录名”otherdir”而不是文件名。

所以,Disallow: /aa/$ 指令目的在于禁止搜索引擎机器人抓取任何位于”/aa/”目录下的文件,但不影响其子目录的抓取。如果希望禁止整个”/aa/”目录及其所有内容(包括子目录和文件),则需要使用Disallow: /aa/ 就可以了。

应用场景举例

比如经常遇到的网站资讯下的列表分页器问题,如:https://xxx.com/news/page/2

网站页码分页器

本质上爬虫是可以抓取的,但是针对于这种无意义的页面可以 告诉爬虫不要抓取,因此在此种情形下就需要用到该规则Disallow: /tutorial/page/

以上就是关于Disallow:/XXX与Disallow: /XXX/等变体的介绍及Robots.txt配置方法。更多问题可以详细关注SEO实战教程。

飞优数字营销主理人

Rapheal

飞优数字营销主理人

前腾讯智汇鹅数字营销负责人 ,10+年国内外数字营销服务实操经验,精通B2B建站及前端设计,擅长Adtech业务(SEO&SEM),曾服务腾讯等大厂数字营销增长业务,成功实现200+ROI效果。

标签 ,

我们要如何帮助您?

发表回复

Please Login to Comment