现场是这样的。多语言站共用一个 robots.txt,Sitemap 行只写了中文那份。英文、日文分片从来没被主动发现,只能靠 hreflang 慢慢爬,两个月只收了三十条。

中间走过弯路,把「sitemap 索引文件里漏了英文分片」当成主因,改完现象没变。

原因不止一个,得分开看。robots 里只声明了一个 Sitemap 地址;语言分片 sitemap 没有互相引用;各语言目录共用同一份 robots 规则。

动手时先看 robots 里的 Sitemap 行

curl -s https://www.example.com/robots.txt | grep -i sitemap

然后把各语言分片都写进去

Sitemap: https://www.example.com/en/sitemap.xml
Sitemap: https://www.example.com/ja/sitemap.xml

再往下确认索引文件引用完整

curl -s https://www.example.com/sitemap_index.xml | grep -c '<sitemap>'

末了分别提交到各语言资源

https://search.google.com/search-console

同事提醒我看一下最近一次发布,时间点确实对得上。

命令输出我都留了记录,免得改完记不清原来的值。

改之前先确认了最近有没有人动过配置,避免白查一遍。

怎么算真的好了,看的是同一批现象。robots 里能看到三条 Sitemap,英文与日文分片都被抓取,收录量一个月内翻倍。

robots 可以写多行 Sitemap,多语言站别只留默认语言那一份。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。

作者 9823189