Hreflang 标签和 GEO 标记搭配使用有哪些实操方法
Hreflang负责按语言/地区分流URL,GEO标记声明页面地理位置;实操应按地区一一对应,每个hreflang地区值配一组geo标记,同地区各语言版本共用坐标,并遵守格式、自引用、双向确认和绝对URL等规则。
Hreflang 和 GEO 标记搭配使用的核心原则只有一条:按"地区"一一对应——一个 hreflang 地区值配一套 geo.* 标记,同一地区下的所有语言版本共用同一组地理坐标。需要先明确的是,GEO 标记(geo meta tags,一组声明页面地理位置的 meta 标签)不是 Google 认可的排名因素,它的价值在于 Yandex、本地目录站、地图插件和区域性聚合平台;而 hreflang 才是搜索引擎用来选择"给哪个语言/地区用户看哪个 URL"的信号。
Hreflang 和 GEO 标记有什么区别?
结论:hreflang 是 URL 维度的版本选择器,GEO 标记是页面维度的位置声明,两者维度不同,不能互相替代。
Hreflang 的写法是"语言(ISO 639-1)+可选地区(ISO 3166-1 Alpha-2)",例如 zh-Hans-CN、zh-Hant-TW、en-US。它告诉搜索引擎:这个 URL 是简体中文版,主要面向中国大陆用户。一个页面可以出现在多组 hreflang 关系里,是"多对多"的。
GEO 标记是四条 meta 标签:geo.region、geo.placename、geo.position、ICBM。它描述的是"这个页面属于哪个地点",一个页面只能声明一个位置,是"一对一"的。这是两者能搭配的基础——hreflang 负责分流语言,GEO 标记负责锚定地点。
GEO 标记怎么写才不出错?
结论:四个标签的格式各不相同,写错格式比不写更糟,因为解析器会直接忽略或读出错位坐标。
<meta name="geo.region" content="CN-BJ" />
<meta name="geo.placename" content="Beijing" />
<meta name="geo.position" content="39.9042;116.4074" />
<meta name="ICBM" content="39.9042, 116.4074" />
四个要点必须记住:
geo.region用 ISO 3166-2 分区码,中国是"CN-两位字母",如 CN-BJ(北京)、CN-SH(上海)、CN-GD(广东);美国是 US-CA、日本是 JP-13。只写国家用 ISO 3166-1 两位码,如 TW、HK。geo.position用分号分隔经纬度,ICBM用逗号加空格。这两个搞反了是最高频的错误。- 坐标系必须是 WGS84。如果你的坐标取自高德(GCJ-02)或百度(BD-09),直接用会造成 50–500 米的偏移,需要先转换。
- 精度保留小数点后 4–6 位即可,约 10 米到 1 米级,再多没有意义。
Hreflang 怎么写?三条硬规则
结论:自引用、双向确认、绝对 URL,缺一条整组标注就可能被忽略。
部署位置有三处:HTML <head> 里的 <link rel="alternate" hreflang="..." href="..." />、HTTP 响应头 Link(适合 PDF 等非 HTML 资源)、以及 XML sitemap(站点量大时 Google 推荐这种方式)。三种方式可以混用,但同一组关系里指向必须一致。
硬规则:每个页面必须包含指向自己的 hreflang(自引用);A 指向 B,B 也必须指回 A;href 必须写完整的绝对 URL,含协议和域名。另外记得补一个 x-default,用于没有匹配语言/地区时的兜底页面。
语言代码要统一:不要同一个站点里既写 zh-CN 又写 zh-Hans,选一种并全站统一,推荐 zh-Hans / zh-Hant。
Hreflang 和 GEO 标记怎么一一对应?
结论:先按地区拆分 URL,再给每个地区分配一个 hreflang 值,最后把该地区的坐标复制给该地区下所有语言版本。
| URL | hreflang | geo.region | geo.placename | geo.position |
|---|---|---|---|---|
| https://example.com/ | x-default + zh-Hans-CN | CN-SH | Shanghai | 31.2304;121.4737 |
| https://example.com/tw/ | zh-Hant-TW | TW | Taipei | 25.0330;121.5654 |
| https://example.com/us/ | en-US | US-CA | San Francisco | 37.7749;-122.4194 |
关键细节:如果香港站同时有 zh-Hant-HK 和 en-HK 两个语言版本,这两个页面的 geo.* 标记必须完全相同,都是 HK。GEO 标记描述的是"地点"不是"语言",按语言改坐标是错的。
三个最容易踩的坑
结论:用 GEO 标记替代 hreflang、指望 geo 标签提排名、代码写法不统一,是这类站点最常犯的三个错误。
第一,GEO 标记不能替代 hreflang。搜索引擎不会因为你的 geo.region 是 CN-BJ 就把简体页面推给北京用户,版本选择仍然只看 hreflang。
第二,别把 geo. 当排名因素。Google 官方支持的 meta 标签清单里没有 geo. 系列,Yandex 的文档里则至今保留 geo.region / geo.position / ICBM 的支持说明。如果你的流量主要来自 Google,这套标记的收益有限,重点应放在 hreflang 的正确性上。
第三,地区码别自创。写 China-Beijing 或 BJ 都不合法,必须是 ISO 3166-2 规范值。
如果"GEO"指的是生成式引擎优化呢?
结论:那搭配逻辑要换一套,但 hreflang 的写法不变。
生成式引擎优化(Generative Engine Optimization,让内容更容易被 AI 引擎引用的优化方向)场景下,每个语言版本需要有独立可抓取的完整正文、对应的结构化数据(Organization / LocalBusiness 中的 address 与 areaServed),以及各自语言的 FAQ 段落。AI 引擎按 hreflang 判断语言归属后引用对应版本,此时 geo.* meta 标签基本不加分,可以把精力从这四条标签转移到结构化数据和正文完整度上。
总结一下:hreflang 管"给谁看哪个版本",GEO 标记管"这个页面在哪",搭配方法是按地区一一对应、同地区多语言共用坐标、格式严格照规范写。先保证 hreflang 的自引用、双向和绝对 URL 三条不出错,再决定要不要加 geo.* 标记。
转载请注明出处,版权归原作者所有。