联系支持

我们通过电子邮件回复,通常两天内。

为防止滥用,Google reCAPTCHA 会检查这次提交,其间会向 Google 传输数据。脚本只在你打开此表单时才加载。

← 全部文章

一篇文章,十二个网址

这个博客的每一篇文章都住在十二个地址上。十一个带语言前缀 — /en/blog/…/de/blog/… 还有另外九个 — 第十二个完全不带前缀。那一个读浏览器的 Accept-Language 头,然后用它在里面认出的那种语言来回答,十一种里的一种。

8 月 27 日和 28 日,采集器从这个站点取走了 1,609 个博客页面。读者取走了 628 个。

每篇取走的语言版本数,共十一个 ClaudeBot 11.0 bingbot 8.7 PetalBot 6.0 Applebot 4.3 SemrushBot 1.8 Googlebot 1.5 两天里采集器取走 1,609 个博客页面,读者取走 628 个 合起来占这台服务器全部请求的 0.5%

这些页面之间已经说清楚的事

十二个页面的头部说的是同样的三件事,今天我把这三件都量了一遍,而不是相信代码。

每个页面的 canonical 指向它自己。十一行 hreflang 点名它的姐妹页,第十二行把不带前缀的那个地址点名为 x-default,因为那个地址不属于任何一种具体语言。那个地址带着 Vary: Accept-Language, Accept-Encoding 回答,好让前面任何一层缓存知道:正文取决于请求头。

协商是好用的。同一个地址带 Accept-Language: de 回来的页面标着 lang="de",带 ja 回来的是日文,带一个没人用的代码回来的是英文。四种语言轮流发十二个请求,连续三轮都拿到四个正确的正文,所以页面缓存是按语言做键的,不只是按路径。

这正是规范要求的:一个完整而互相指认的组,每个成员既点名自己,也点名所有姐妹。就是这个安排,让搜索引擎把十二个地址当成一篇文章的十二种语言,而不是十二篇互相抢位置的文章。

它并没有让谁少取一点

取的次数并没有因此变少,而访问日志在这件事上没留下多少解释空间。

ClaudeBot 对 36 篇文章发出了 396 次博客请求 — 每篇正好 11.0 个语言版本,每种语言,每一次。bingbot 对 37 篇是 8.7,PetalBot 是 6.0,Applebot 是 4.3。SemrushBot 做到 1.8。Googlebot 对 42 篇发出 72 次请求,平均每篇 1.5 个语言版本,是六个里唯一一个表现得像收到了那份标注的。

所有采集器合起来,76 篇文章里有 73 篇至少被碰过一次,其中 68 篇被用不止一种语言取过。平均是每篇 7.84 个语言版本,十一个里的。

这些都不算违规。hreflang 是关于页面之间如何相互关联的提示,说给搜索引擎里决定显示哪条结果的那一部分听。它不是给决定下载什么的那一部分的指令。一个从没见过 /uk/blog/… 的采集器,在把它取回来读到头部之前,根本无从知道那是一篇译文 — 这份标注只能在它本可以省下的那次请求之后才起作用。

这要花多少

比上一节读起来的要少。那 1,689 次采集器对博客页面的请求,占这个虚拟主机两天内应答的 373,019 次请求的 0.5%,占它发出的 4,363 MB 里的 19.9 MB。一个博客页面大约十分之一秒回来,所以整个十一倍的抓取每天大概花八十秒处理器时间。

站点地图比我预想的贵一点。它列出 3,136 个地址,上面挂着 13,248 条语言标注:1.85 MB 的 XML,压缩后 35 KB。它最多每六小时重建一次,所以一篇下午一点十分发布的文章,要几个小时之后才完整地出现在里面,而不是立刻。

这些数字没有一个值得去改。唯一能减少抓取的手段就是不要这些地址,而这些地址正是全部意义所在。

读者和采集器想要的不是一回事

同样这两天,按语言分开看,是两种相当不同的习惯。

采集器分布得几乎均匀:它们对博客的请求里,每一个带前缀的版本各占 5.5% 到 10.5%,另有 16% 落在不带前缀的那个上。这看着像有人在按一份清单往下走。

读者不是均匀的。他们 38% 的请求落在不带前缀的地址上,另有 18% 落在 /en/,也就是说一多半是用英文或者靠协商进来的。剩下的分给十种语言,最多的德文占 7%,最少的法文占 2%。

剩下这 44%,就是语言路径存在的全部理由。它也小到很容易被人劝退 — 而那和读了采集器那一栏就断定页面很受欢迎,是同一个错误。

这件事的一般化

一个正确的提示不是一条指令。这些页面头部里的东西都是正确的、互相指认的、可以核对的,而六个采集器里有五个照取不误,像什么都没写。规范描述的是这份标注的含义,不是某个具体程序看到它以后会做什么。

所以有用的问题从来不是标记写得对不对。而是每一个来取的到底来了多少次,这只有日志能回答 — 它回答之后,诚实的结论是:十一倍的抓取花掉半个百分点,应该让它去。

广告