技术 SEO · 第 3 课,共 4 课

多语言网站的 XML 站点地图

XML 站点地图是多语言网站的 SEO 基石——它告诉 Google 你的所有语言版本。

广州一家出口机械设备的企业曾犯过一个在国际 SEO 中非常典型的错误。他们的网站有中文版、英文版、西班牙语版和阿拉伯语版,但在提交给 Google Search Console 的 XML 站点地图中,只有一个包含所有语言版本 URL 的扁平列表——没有 hreflang 注释,没有说明页面之间的语言对应关系。结果 Google 把英文版的产品页面当成了中文版的重复内容,阿拉伯语版本的页面迟迟不被索引。这个问题的核心在于:Google 不清楚这些不同语言的页面之间是什么关系——每个语言版本哪个是原始版本?哪个是翻译版本?它们对应的是不是同一个产品?XML 站点地图中的 hreflang 注释就是用来回答这些问题的。

多语言网站的 XML 站点地图与单语言版本的关键区别在于,它需要包含每个 URL 的语言区域标记。Google 通过这个标记知道:https://example.com/en/product-a.html 是英文版,https://example.com/de/product-a.html 是德文版,它们是同一个产品在不同语言下的对应内容,而不是不同的产品。在站点地图中,每个 URL 条目中添加 <xhtml:link rel="alternate" hreflang="..." href="..." /> 标签来声明所有语言版本的对应关系。记得每个语言版本都要包含一条指向自身的引用——这是新手最容易遗漏的细节,没有自身引用的 hreflang 声明会被 Google 视为无效。

创建多语言站点地图的最佳实践

创建多语言站点地图时,有几个关键的最佳实践需要遵守。首先是 大小限制:单个站点地图文件最大 50MB 或 50,000 条 URL。对于大型多语言网站,可能需要按语言或内容类型拆分为多个站点地图文件,然后使用一个索引站点地图(Sitemap Index)来统一管理。其次是 更新频率:永远不要把所有页面的 <changefreq> 设置为 "always" 或 "hourly",这会分散爬虫对你真正重要页面的注意力。产品页面的更新频率设置为 "monthly",首页和新闻页面设置为 "weekly",过时的页面设置为 "yearly"。

第三是 优先级信号<priority> 标签帮助你告诉爬虫哪些页面更重要。但需要注意,优先级是相对同一个站点地图中的其他页面而言的,而不是绝对优先级——不要把每个页面都设为 1.0。第四是 语言版本完整性:如果在站点地图中包含了英文产品页面 A,就必须包含该产品所有其他语言版本的页面 A,并标注它们之间的对应关系。如果某个语言版本缺少对应的页面,hreflang 声明就不完整。

提交与监控

创建完成后的下一步是将站点地图提交到搜索引擎。在 Google Search Console 中,进入"站点地图"模块,输入你的站点地图 URL 后点击提交。Google 会开始处理并在几个小时内报告结果。同时,也要提交到 Bing Webmaster Tools——Bing 在亚洲和欧洲部分地区仍有一定市场份额。提交后持续监控站点地图报告中的错误——常见的错误包括:URL 格式错误(如包含非 ASCII 字符未编码)、站点地图中的 URL 返回 404、hreflang 属性值使用了无效的语言代码。站点地图中的错误可能意味着某些重要页面完全不被搜索引擎所知。

如果你使用的是 WordPress,Yoast SEO 或 Rank Math 等插件可以自动生成多语言站点地图并添加 hreflang 注释。如果你使用 Shopify 或 Magento,也有相应的多语言 SEO 插件。对于自定义开发的网站,建议使用 Screaming Frog 等工具抓取你的多语言网站后生成带有 hreflang 注释的站点地图。无论使用哪种方式,关键步骤永远是提交到 Search Console 后的验证——不要假设插件生成了正确的代码,去 Search Console 中查看报告是你唯一可靠的确认方式。

现在就做
  1. 检查你当前的 XML 站点地图是否包含了所有语言版本的 URL,以及是否有 hreflang 注释。
  2. 如果缺少 hreflang 注释,使用工具(如 Screaming Frog 或在线站点地图生成器)重新生成带注释的站点地图。
  3. 将站点地图提交到 Google Search Console 和 Bing Webmaster Tools,并查看是否有错误报告。
  4. 为每个语言版本创建一个独立的站点地图文件(如 sitemap-en.xml、sitemap-de.xml),然后创建索引站点地图统一管理。

常见问题

站点地图中必须使用完整的绝对 URL(包含 https:// 和域名)。搜索引擎不接受相对路径。同时,URL 必须与你网站上实际可访问的地址完全一致——包括协议(https vs http)和域名(是否包含 www)。如果你的网站支持 https 和 http 两种版本,站点地图中只使用 https 版本,并在 .htaccess 或服务器设置中将 http 版本重定向到 https 版本。

两者不冲突,但 Google 官方文档建议两种方式都提供。站点地图是"告诉"搜索引擎你的网站有哪些页面,而页面 HTML 中的 hreflang link 标签是"告诉"搜索引擎当前页面与其他语言版本的关系。如果你的网站有大量页面,维护站点地图中的 hreflang 注释可能更容易集中管理。但最稳妥的做法是两种方式同时使用,确保冗余——即使其中一种有遗漏,另一种也能补充。

每次你修改了站点地图(添加了新页面、移除了失效页面、更新了 hreflang 注释),都应该在 Google Search Console 中手动请求重新提交。虽然 Google 会定期自动重新抓取站点地图(频率取决于你网站的抓取预算),但手动提交可以加速这个过程——特别是当你刚发布了新的语言版本或新增了大量产品页面时。在 Search Console 的"站点地图"模块中,点击你已提交的站点地图,然后选择"请求重新抓取"即可。