关于 seo-hreflang
seo-hreflang 是面向多语言、多地区网站的国际 SEO 技能,可验证现有 hreflang 标记并生成实现代码。它还涵盖语言版本内容一致性、地区格式和文化适配检查。
主要功能
- 01检查自引用与双向 hreflang
- 02验证语言和地区代码
- 03核对规范网址及协议一致性
- 04生成 HTML、HTTP 头或站点地图标记
- 05审计多语言内容对齐情况
- 06评估本地化与地区格式
适用场景
- 01排查多语言页面的 hreflang 错误
- 02为跨域语言版本生成站点地图
- 03比较不同语言页面的内容覆盖
- 04检查地区日期、货币和文化适配
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ agricidaniel/ claude-seo --skill seo-hreflang安装后在 Claude Code 中输入/seo-hreflang确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSE.txtreferences/content-parity.mdcultural-profiles.mdlocale-formats.mdmachine-translation-qa.md详细介绍
Hreflang 与国际 SEO
验证现有的 hreflang 实现,或为多语言和多地区网站生成正确的 hreflang 标签。支持 HTML、HTTP 标头和 XML 站点地图实现。
验证检查
1. 自引用标签
- 每个页面都必须包含指向自身的 hreflang 标签
- 自引用 URL 必须与页面的规范 URL 完全一致
- 缺少自引用标签会导致 Google 忽略整个 hreflang 标签组
2. 回链标签
- 如果页面 A 通过 hreflang 链接到页面 B,页面 B 必须链接回页面 A
- 每个 hreflang 关系都必须是双向的(A→B 和 B→A)
- 缺少回链标签会使这两个页面的 hreflang 信号失效
- 检查所有语言版本是否彼此引用(完整网状关系)
3. x-default 标签
- 当存在选择器/回退 URL 时建议使用:指定针对不匹配语言/地区的回退页面
- 通常指向语言选择器页面或英文版本
- 每组备用页面中只能有一个 x-default
- 所有其他语言版本也必须包含回链标签
4. 语言代码验证
- 必须使用 ISO 639-1 两字母代码(例如,
en、fr、de、ja) - 可选的 ISO 15924 脚本子标签是用于指定脚本的官方文档机制:
zh-Hant(繁体)/zh-Hans(简体)。脚本可以与地区组合,例如,zh-Hans-US有效(语言 + 脚本 + 地区)。 - 常见错误:
- 使用
eng而非en(ISO 639-2,不适用于 hreflang) - 使用
jp而非ja(日语代码错误) zh有效,但对于针对特定脚本的页面存在歧义;面向特定脚本时,优先使用zh-Hans或zh-Hant
- 使用
5. 地区代码验证
- 可选的地区限定符使用 ISO 3166-1 Alpha-2(例如,
en-US、en-GB、pt-BR) - 格式:
语言-地区(语言小写,地区大写) - 单独使用国家代码无效,不能在没有语言的情况下指定地区(Google 自己给出的错误示例是
be,它实际是白俄罗斯语的语言代码,而非比利时)。 - 常见错误:
- 使用
en-uk而非en-GB(UK 不是有效的 ISO 3166-1 地区代码) - 将
EU/UN用作地区(不是有效的 ISO 3166-1 值) es-LA(拉丁美洲不是一个国家;请使用具体国家)- 地区代码前缺少语言前缀
- 使用
5b. 地理定位信号层级
- 实用的地区信号启发式排序:ccTLD > hreflang 注释 > 服务位置/IP > 地址/语言/货币/商家资料。不要将其表述为已确认的 Google 排名顺序。hreflang 是一种提示,而非指令。Google 会忽略位置元标记和 HTML 地理定位属性。
- Search Console 国际定位报告和手动国家/地区定位设置已于 2022 年移除,不要建议在 GSC 中设置国家/地区定位;hreflang 是剩余的调节手段。
5c. 特定地区的搜索单元(EEA、南非、Türkiye)
- Google 记录了仅在某些地区提供的搜索体验(文档于 2026-09-08 添加;https://developers.google.com/search/docs/appearance/aggregator-features):
- **仅限 EEA:**聚合商单元和供应商单元(酒店、航班、地面交通、产品,以及自 2026-09-18 起的本地商家)、生态系统轮播和招聘网站功能。
- **Türkiye:**地点网站功能(酒店、本地商家)。
- **南非:**适用于旅游、产品、汽车租赁、外卖和地面交通的徽章及筛选选项。
- 三个地区均提供结构化数据轮播,但对应不同的查询类型。每个单元都有各自的资格和参与规则说明;这些不是排名信号。
- 如果网站通过 hreflang 变体服务这些地区,请在报告中注明该企业是聚合商还是直接供应商,并链接到地区文档,以免客户端对这些市场中不同的结果布局感到意外。
6. 规范 URL 对齐
- Hreflang 标签只能出现在规范 URL 上
- 如果页面的
rel=canonical指向其他位置,该页面上的 hreflang 会被忽略 - 规范 URL 和 hreflang URL 必须完全一致(包括尾部斜杠)
- 非规范页面不应包含在任何 hreflang 集合中
7. 协议一致性
- hreflang 集合中的所有 URL 必须使用相同的协议(HTTPS 或 HTTP)
- hreflang 集合中混用 HTTP/HTTPS 会导致验证失败
- 迁移到 HTTPS 后,更新所有 hreflang 标签以使用 HTTPS
8. 跨域支持
- Hreflang 可跨不同域名使用(例如 example.com 和 example.de)
- 跨域 hreflang 要求两个域名都包含返回标签
- 需要时,使用 Google Search Console 验证以便监控,或提交跨站点站点地图
- 跨域配置建议使用基于站点地图的实现方式
常见错误
| 问题 | 严重程度 | 修复方法 |
|---|---|---|
| 缺少自引用标签 | 严重 | 添加指向同一页面 URL 的 hreflang |
| 缺少返回标签(A→B,但没有 B→A) | 严重 | 为所有替代页面添加匹配的返回标签 |
| 需要回退行为时缺少 x-default | 中 | 添加指向回退页面/选择器页面的 x-default |
语言代码无效(例如,eng) | 高 | 使用 ISO 639-1 两字母代码 |
地区代码无效(例如,en-uk) | 高 | 使用 ISO 3166-1 Alpha-2 代码 |
| hreflang 位于非规范 URL 上 | 高 | 仅将 hreflang 移至规范 URL |
| URL 中的 HTTP/HTTPS 不匹配 | 中 | 将所有 URL 统一为 HTTPS |
| 尾部斜杠不一致 | 中 | 与规范 URL 格式完全一致 |
| HTML 和站点地图中都包含 hreflang | 低 | 选择一种方法(大型网站优先使用站点地图) |
| 需要地区限定时,语言未指定地区 | 低 | 为地理定位内容添加地区限定符 |
实现方法
方法 1:HTML 链接标签
适用于:每个页面的语言/地区变体少于 50 个的网站。
<link rel="alternate" hreflang="en-US" href="https://example.com/page" />
<link rel="alternate" hreflang="en-GB" href="https://example.co.uk/page" />
<link rel="alternate" hreflang="fr" href="https://example.com/fr/page" />
<link rel="alternate" hreflang="x-default" href="https://example.com/page" />
放置在 <head> 部分。每个页面都必须包含所有替代页面,包括自身。
方法 2:HTTP 标头
适用于:非 HTML 文件(PDF、文档)。
Link: <https://example.com/page>; rel="alternate"; hreflang="en-US",
<https://example.com/fr/page>; rel="alternate"; hreflang="fr",
<https://example.com/page>; rel="alternate"; hreflang="x-default"
通过服务器配置或 CDN 规则设置。
方法 3:XML 站点地图(大型网站推荐)
适用于:语言变体较多、跨域配置或页面数达到 50 个以上的网站。
请参阅下文的 Hreflang 站点地图生成部分。
方法比较
| 方法 | 最适用场景 | 优点 | 缺点 |
|---|---|---|---|
| HTML 链接标签 | 小型网站(少于 50 个变体) | 易于实现,可在源代码中查看 | 会使 <head> 臃肿,规模扩大后难以维护 |
| HTTP 标头 | 非 HTML 文件 | 适用于 PDF、图片 | 服务器配置复杂,无法在 HTML 中查看 |
| XML 站点地图 | 大型网站、跨域配置 | 可扩展,集中管理 | 页面上不可见,需要维护站点地图 |
Hreflang 生成
流程
- 检测语言:扫描网站中的语言标识(URL 路径、子域名、顶级域名、HTML lang 属性)
- 映射对应页面:匹配不同语言/地区的对应页面
- 验证语言代码:根据 ISO 639-1 和 ISO 3166-1 验证所有代码
- 生成标签:为每个页面创建 hreflang 标签,包括自引用标签
- 验证返回标签:确认所有关联均为双向
- 添加 x-default:为每组页面设置回退项
- 输出:生成实现代码(HTML、HTTP 标头或站点地图 XML)
Hreflang 站点地图生成
包含 Hreflang 的站点地图
<?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://example.com/page</loc>
<xhtml:link rel="alternate" hreflang="en-US" href="https://example.com/page" />
<xhtml:link rel="alternate" hreflang="fr" href="https://example.com/fr/page" />
<xhtml:link rel="alternate" hreflang="de" href="https://example.de/page" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/page" />
</url>
<url>
<loc>https://example.com/fr/page</loc>
<xhtml:link rel="alternate" hreflang="en-US" href="https://example.com/page" />
<xhtml:link rel="alternate" hreflang="fr" href="https://example.com/fr/page" />
<xhtml:link rel="alternate" hreflang="de" href="https://example.de/page" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/page" />
</url>
</urlset>
关键规则:
- 包含
xmlns:xhtml命名空间声明 - 每个
<url>条目都必须包含所有语言替代页面(包括自身) - 每个替代页面都必须作为单独的
<url>条目出现,并包含其自身的完整标签集合 - 站点地图文件在达到 50,000 个 URL 或未压缩大小达到 50MB 时,以先达到者为准进行拆分
输出
Hreflang 验证报告
摘要
- 扫描页面总数:XX
- 检测到的语言变体:XX
- 发现的问题:XX(严重:X,高:X,中:X,低:X)
验证结果
| 语言 | URL | 自引用 | 返回标签 | x-default | 状态 |
|---|---|---|---|---|---|
| en-US | https://... | ✅ | ✅ | ✅ | ✅ |
| fr | https://... | ❌ | ⚠️ | ✅ | ❌ |
| de | https://... | ✅ | ❌ | ✅ | ❌ |
生成的 Hreflang 标签
- HTML
<link>标签(如果选择 HTML 方法) - HTTP 标头值(如果选择标头方法)
hreflang-sitemap.xml(如果选择站点地图方法)
建议
- 添加缺失的实现
- 修正错误的代码
- 建议迁移方法(例如,为了扩展规模从 HTML 改用站点地图)
文化适配评估
分析多语言网站时,除了技术层面的 hreflang 验证,还要评估内容是否针对各目标市场进行了文化适配。
加载 references/cultural-profiles.md,获取预置的文化档案(DACH、法语区、西语区、日本)。
评估步骤:
- 识别所有语言版本及其目标市场
- 加载相关文化档案
- 检查 CTA 是否符合文化预期(直接或间接)
- 检查信任信号是否适合当地(认证、法律页面)
- 检查本地化页面中是否有外国品牌引用
- 检查数字、日期和货币格式的一致性
- 将文化适配问题标记为中等严重性
**输出:**各语言版本的文化适配评分(0-100)及具体发现。
内容一致性审计
命令: /seo hreflang audit <directory-or-url>
审计网站或本地内容目录中所有语言版本之间的内容一致性。
加载 references/content-parity.md,获取完整的一致性矩阵和评分方法。
检查内容:
- 所有声明语言中的页面是否存在
- 章节结构是否等效(H2/H3 数量)
- SEO 元素是否一致(标题、元数据、本地化的 schema)
- 字数比例验证(DE 应比 EN 长 25-35%,JA 应比 EN 短 10-25%)
- 时效性追踪(通过时间戳检测过时的翻译)
- 文化标记扫描(外国品牌、错误的法律引用、未翻译的元素)
**输出:**一致性矩阵表,包含每页评分和按优先级排序的待办事项。
地区格式验证
加载 references/locale-formats.md,获取各地区的数字、日期、货币、地址和电话号码格式参考表。
检查项:
- 数字格式一致性(例如,de-DE 页面上应将 "1,000.00" 写为 "1.000,00")
- 日期格式是否符合地区惯例
- 货币符号及其位置是否适合目标市场
- 电话号码是否使用带正确国家代码的国际格式
参考文件
根据需要按需加载(启动时不要全部加载):
references/cultural-profiles.md:DACH、法语区、西语区、日本的文化适配档案references/locale-formats.md:各地区的数字、日期、货币、地址和电话号码格式表references/content-parity.md:内容一致性审计方法和评分references/machine-translation-qa.md:标记未经审核的机器翻译;Google 的垃圾内容政策将其视为规模化内容滥用
错误处理
| 情况 | 操作 |
|---|---|
| URL 无法访问(DNS 失败、连接被拒绝) | 清楚地报告错误。不要猜测网站结构。建议用户核实 URL 并重试。 |
| 未找到 hreflang 标签 | 报告未找到标签。检查其他国际化信号(子目录、子域名、ccTLD),并推荐合适的 hreflang 实现方法。 |
| 检测到无效的语言/地区代码 | 列出每个无效代码及其正确替代项。提供可直接实施的修正后 hreflang 标签集。 |
| 语言没有可用的文化档案 | 使用 cultural-profiles.md 中的 Default Profile 检查清单。说明评估依据为通用指南,而非预置档案。 |
| 内容一致性目录为空 | 报告未找到内容文件。建议核实目录路径,或提供 URL 以分析在线网站。 |