skip to content
rainbow ゆめこ

多语种hreflang

/ 5 min read

gmail demo: https://www.google.com/gmail/sitemap.xml

为你的多语言单页面网站构建正确的 Sitemap

当你的网站实质上只有一个核心页面,但提供了多种语言版本时(例如 yumeko.online, yumeko.online/ja, yumeko.online/es),如何构建 Sitemap 以便搜索引擎正确理解这些版本之间的关系,并向用户展示正确的语言,就显得至关重要。

虽然从用户角度看,这只是“同一个页面”的不同翻译,但搜索引擎需要更明确的信号。以下是如何正确配置你的多语言 Sitemap:

1. 基本概念:hreflang 的重要性

hreflang 标签用于告知搜索引擎你有同一个内容的多个语言或区域变体。这有助于:

  • 避免重复内容问题: 搜索引擎知道这些页面是彼此的翻译版本,而不是独立的重复内容。

  • 提升用户体验: 将用户导向他们语言版本的页面。

2. Sitemap 结构:看似重复,实则必要

对于每一个语言版本的URL,你都需要在 Sitemap 中创建一个  条目。并且,在每一个这样的  条目内部,你需要列出所有相关的 <xhtml:link rel=“alternate” hreflang=”…” href=”…” /> 标签,包括指向它自身的以及指向所有其他语言版本的链接。

这意味着:如果你有 N 个语言版本,你的 Sitemap(仅针对这一个核心页面)将有 N 个  块,每个块里面有 N 个 xhtml:link 声明。

3. x-default:指定默认页面

为每个页面的语言版本集群添加一个 hreflang=“x-default” 链接。这个链接指向当用户语言和地区设置与你提供的任何特定语言版本都不匹配时,应该默认展示给用户的页面。这通常是你的主要语言版本或一个语言选择器页面。

4. 示例 Sitemap 结构

假设你的网站 https://yumeko.online 有英文(默认)、日文 (/ja/)和西班牙文 (/es/) 版本。Sitemap 结构(部分)如下:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<!-- 英文版页面 -->
<url>
<loc>https://yumeko.online/</loc>
<xhtml:link rel="alternate"
hreflang="en"
href="https://yumeko.online/" />
<xhtml:link rel="alternate"
hreflang="ja"
href="https://yumeko.online/ja/" />
<xhtml:link rel="alternate"
hreflang="es"
href="https://yumeko.online/es/" />
<!-- ... 其他所有语言版本 ... -->
<xhtml:link rel="alternate"
hreflang="x-default"
href="https://yumeko.online/" />
</url>
<!-- 日文版页面 -->
<url>
<loc>https://yumeko.online/ja/</loc>
<xhtml:link rel="alternate"
hreflang="en"
href="https://yumeko.online/" />
<xhtml:link rel="alternate"
hreflang="ja"
href="https://yumeko.online/ja/" />
<xhtml:link rel="alternate"
hreflang="es"
href="https://yumeko.online/es/" />
<!-- ... 其他所有语言版本 ... -->
<xhtml:link rel="alternate"
hreflang="x-default"
href="https://yumeko.online/" />
</url>
<!-- 西班牙文版页面 -->
<url>
<loc>https://yumeko.online/es/</loc>
<xhtml:link rel="alternate"
hreflang="en"
href="https://yumeko.online/" />
<xhtml:link rel="alternate"
hreflang="ja"
href="https://yumeko.online/ja/" />
<xhtml:link rel="alternate"
hreflang="es"
href="https://yumeko.online/es/" />
<!-- ... 其他所有语言版本 ... -->
<xhtml:link rel="alternate"
hreflang="x-default"
href="https://yumeko.online/" />
</url>
<!-- 为其他每个语言版本重复 <url> 块 -->
</urlset>

5. 特别注意:语言代码和URL路径的一致性

确保 hreflang 属性中指定的语言代码(如 en, ja, zh-Hant)与 href 属性指向的URL上的实际内容语言严格一致。

例如,如果你为繁体中文 (zh-Hant) 设置的 hreflang 声明指向的URL是 https://yumeko.online/zh/,请确保该页面确实是繁体中文内容。如果该路径实际上是简体中文,hreflang 应为 zh 或 zh-Hans。如果同时提供简体和繁体中文,它们应该有各自不同的URL和对应的 hreflang 声明。

结论

虽然为单页面的多语言版本构建 Sitemap 看起来有些繁琐和“重复”,但这种明确、结构化的声明对于搜索引擎来说是至关重要的。它能确保每个语言版本都被正确发现、理解其与其他版本的关系,并最终将正确的语言内容呈现给目标用户。