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 中查看报告是你唯一可靠的确认方式。
站点地图中必须使用完整的绝对 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 的"站点地图"模块中,点击你已提交的站点地图,然后选择"请求重新抓取"即可。