【哥飞SEO教程】多语言网站 robots.txt 设置指南:如何正确阻止不希望被抓取的页面

大家好,我是哥飞。

最近哥飞在例行查看 Google Search Console (下文简称 GSC)数据时,发现之前哥飞上线的一个新网站,未编入索引的页面数量有点儿多。

再看具体原因,发现被 noindex 标记的页面有一百多个。

这就有点奇怪了,于是继续点进去看,到底是哪些网址出现问题了。

看到这些网址列表,哥飞终于知道原因了。

之前哥飞要求小伙伴们把 /people/ 页面都暂时禁止抓取,在 robots.txt 设置了禁止抓取,也在页面里 meta 信息中返回了 noindex 标记。

所以默认语言下的 people 目录的确没抓取,但是多语言下的被抓取了。

而 robots.txt 是这么写的:

看出问题来了吗?

上面的这种写法,只会禁止默认语言下的 /people/ 目录下的页面。

但这个网站是加了多语言支持的,并且是用子目录形式放多语言的,上面的规则无法禁止像日语 /ja/people/ 、韩语 /ko/people/ 等语言下的 people 目录。

那么,为了达到禁止多语言下的 people 目录,你的 robots.txt 需要改成下面这样才行:

User-Agent: *Allow: /Disallow: /people/Disallow: /ja/people/Disallow: /fr/people/Disallow: /ko/people/Disallow: /zh/people/


有多少种语言就写多少行禁止规则。

另外注意,别偷懒,如果你写成下面这样,很有可能会出现不可预知的问题:

User-Agent: *Allow: /Disallow: /*/people/

举个例子,你有一个页面是 /abc/def/people/ 也会被这个规则覆盖到,而这个页面其实你是想被抓取的。

所以,最好的方式是手动列出每一种语言,并且注意定期更新,如果你的网站增加了别的语言的支持,这里也需要增加一行。

注意,这里的 people 只是举例,你需要自己判断你的网站哪些页面不给抓取。一般来说,所有不是拿来获取流量的页面,都不应该被抓取。

好友Aladdin 补充说,如果你用的是 Next.js 框架,在app目录下面可以用 robots.ts/js 来动态生成,里面就可以写逻辑了。

网站声明: 1.本站大部分资源搜集于网络,仅代表作者观点,如有侵权请提交修改。 2.网站内容仅网站站长做个人学习摘记,任何人不得用于其他商业用途,网站发表的内容全权归原作者所有。 3.有任何疑问,可以点击右侧边栏的联系QQ进行咨询 4.本网站部分内容来自于其他网站平台的,版权归原网站所有,本网站只作信息记录,自己学习使用,特此申明,本站用户也不得使用此信息内容做其他商业用途。
白丁学者 » 【哥飞SEO教程】多语言网站 robots.txt 设置指南:如何正确阻止不希望被抓取的页面

发表回复

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据