教程

多语言网站 robots.txt 设置教程:逐语言规则写法与常见坑

多语言子目录站点(/en/、/ja/、/es/)的 robots.txt 不能只写默认语言规则,否则抓取控制完全失效。本文讲清逐语言写法、通配符风险与验证方法。

A dark navy gradient cover with HTML tag motifs and the title text "Robots.txt Guide" in white monospace font.

一、为什么多语言网站需要单独的 robots.txt 策略

出海工具站或内容站通常按语言划分子目录,比如:

https://example.com/en/  (英文)
https://example.com/ja/  (日文)
https://example.com/es/  (西班牙文)

这种结构下,每个语言目录是独立路径前缀。很多站长想屏蔽一些低价值模板页面(如人物列表页 /people/),目的是节省抓取配额、避免低质页面被收录。

但问题来了:如果只在 robots.txt 里写一条 Disallow: /people/,它只对默认语言(通常是根目录)生效,完全管不到 /ja/people/、/es/people/ 这些路径。Googlebot 会照常抓取这些非默认语言的低质页面,你的屏蔽意图落空。

二、常见错误:只写默认语言规则

看下面这个典型的错误配置:

User-agent: *
Disallow: /people/

这个规则只屏蔽了 https://example.com/people/,但以下 URL 全部不受影响:

  • https://example.com/ja/people/
  • https://example.com/es/people/
  • https://example.com/de/people/

结果就是:日文版、西班牙文版的人物列表页照样被抓、被收录,占用抓取配额,还可能稀释站内权重。

三、通配符写法:不推荐,风险大

有些站长会想用 Disallow: /*/people/ 这种通配符一网打尽。但强烈不建议这么做,原因有两点:

  1. 误伤风险:/*/people/ 会匹配所有包含 /people/ 的路径,包括一些正常页面。比如 /team/people/ 或 /about/people/ 这类内容页也可能被误屏蔽。
  2. 排查困难:通配符规则一旦生效,你很难快速定位是哪个规则屏蔽了哪个 URL,调试成本高。

正确做法是:逐语言写明确规则,路径清晰、行为可预期、排查方便。

四、正确的逐语言规则写法

在域名根目录的 robots.txt 中,为每种语言单独写一条 Disallow:

User-agent: *
Disallow: /people/
Disallow: /en/people/
Disallow: /ja/people/
Disallow: /es/people/
Disallow: /de/people/
Disallow: /fr/people/

这样每个语言目录下的 /people/ 路径都被明确屏蔽,不会误伤其他路径,也方便后续增删语言版本。

五、三种实现方式对比

方式一:单一 robots.txt 逐语言写规则(推荐)

在域名根目录放一个 robots.txt,里面按语言列全所有 Disallow 规则。适合大多数站点,维护简单,逻辑清晰。

方式二:每种语言一份 robots.txt

在 /en/robots.txt、/ja/robots.txt 等路径分别放置。适合语言版本差异大、需要不同抓取策略的站点。但要注意:如果语言版本很多,维护成本会上升。

方式三:动态生成 robots.txt

用 Next.js 的 robots.ts 或类似机制,根据请求的 locale 动态输出对应规则。适合工程化程度高的团队,可以做到按语言精细控制,但需要开发投入。

六、验证方法与常见误区

改完 robots.txt 后,用 Google Search Console 的 robots.txt 测试工具或网址检查功能验证:

  • 输入 https://example.com/ja/people/,确认返回“已屏蔽”
  • 输入 https://example.com/ja/,确认正常可抓取

关键误区:robots.txt 是抓取指令,不是索引指令。

  • robots.txt 只能阻止 Googlebot 抓取,不能让已收录的页面从索引中移除
  • 如果某个页面已经被收录,想移除必须用 noindex 标签(放在页面 head 中)或 GSC 的移除工具
  • 只靠 robots.txt 屏蔽,页面可能会以“仅 URL”形式留在索引中(无标题无摘要)

七、检查清单

上线前对照检查:

  • 根目录 robots.txt 是否覆盖了所有语言子目录?
  • 是否用了通配符?如果用了,是否确认不会误伤正常页面?
  • 每种语言的 Disallow 路径是否与实际 URL 结构一致?
  • 用 GSC 验证了至少一个被屏蔽 URL 和一个正常 URL?
  • 确认 robots.txt 屏蔽的页面是否需要 noindex 来移除已收录结果?

(文中案例与数字均为来源材料中提及,未经独立核实。)

系列:出海建站

返回文章列表