2026-11-01 · 技术
简繁英多版本共用一个路径,缓存容易互相污染,搜索引擎还可能判重复内容。从 URL 结构、回源就近到 hreflang 标注,一次理顺。
做外贸或多地区业务,站点通常会有简体、繁体、英文几个版本,甚至同一语言下再按地区分站。这类站点的加速难点不在于节点多少,而在于缓存和搜索引擎两件事没配对,结果是要么用户看到别的语言版本,要么搜索引擎把几个版本当成重复内容。 先说缓存。CDN 默认按 URL 做缓存键,如果几个语言版本共用同一个路径、只靠 Cookie 或浏览器语言判断,缓存就会互相污染:一个用户把英文页面缓存下来,后面的用户访问同一路径也拿到英文。正确做法是让语言和地区体现在 URL 上,比如用 /cn/、/tw/、/en/ 这样的路径前缀,缓存键自然分开;确实要用同一路径的,至少把语言相关的请求头加入缓存键,但这会显著降低命中率,不如路径分离干净。 再说回源。多地区站点最好让源站或中间层按地区就近接入:亚洲用户回源到香港或新加坡节点,欧美用户回源到就近节点,避免跨洲回源把延迟拉高。如果只有一个源站,至少把静态资源交给 CDN 边缘缓存,减少回源次数。 然后是 hreflang。每个语言版本页面里,用 link 标签列出所有语言版本的地址,并标注对应的语言和地区代码,同时给出一个默认版本。这一步是告诉搜索引擎,这几个页面是同一内容的不同语言版本,避免被判为重复内容而只收录一个。注意 hreflang 里的地址要用绝对地址,且必须能正常访问、返回 200;某个版本还在建设中,先不要写进去。 还有两个容易忽略的点:语言切换时不要用重定向把用户强行带走,让用户自己选择并记住偏好;各语言版本的 sitemap 分开提交,出问题时更容易定位。 加速IDC 的 CDN 加速覆盖东南亚多个节点,配合域名解析的地区调度,多语言站点可以把缓存键、回源路径和解析策略一起理顺。