mcpField
S
seo-hreflang

seo-hreflang

github.com/agricidaniel营销与增长23.3k6.9k 次安装6 天前更新
代码仓库

关于 seo-hreflang

seo-hreflang 是面向多语言、多地区网站的国际 SEO 技能,可验证现有 hreflang 标记并生成实现代码。它还涵盖语言版本内容一致性、地区格式和文化适配检查。

主要功能

  1. 01检查自引用与双向 hreflang
  2. 02验证语言和地区代码
  3. 03核对规范网址及协议一致性
  4. 04生成 HTML、HTTP 头或站点地图标记
  5. 05审计多语言内容对齐情况
  6. 06评估本地化与地区格式

适用场景

  1. 01排查多语言页面的 hreflang 错误
  2. 02为跨域语言版本生成站点地图
  3. 03比较不同语言页面的内容覆盖
  4. 04检查地区日期、货币和文化适配

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/agricidaniel/claude-seo --skill seo-hreflang

安装后在 Claude Code 中输入/seo-hreflang确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE.txt
references/
content-parity.md
cultural-profiles.md
locale-formats.md
machine-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 生成

流程
  1. 检测语言:扫描网站中的语言标识(URL 路径、子域名、顶级域名、HTML lang 属性)
  2. 映射对应页面:匹配不同语言/地区的对应页面
  3. 验证语言代码:根据 ISO 639-1 和 ISO 3166-1 验证所有代码
  4. 生成标签:为每个页面创建 hreflang 标签,包括自引用标签
  5. 验证返回标签:确认所有关联均为双向
  6. 添加 x-default:为每组页面设置回退项
  7. 输出:生成实现代码(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-UShttps://...✅✅✅✅
frhttps://...❌⚠️✅❌
dehttps://...✅❌✅❌
生成的 Hreflang 标签
  • HTML <link> 标签(如果选择 HTML 方法)
  • HTTP 标头值(如果选择标头方法)
  • hreflang-sitemap.xml(如果选择站点地图方法)
建议
  • 添加缺失的实现
  • 修正错误的代码
  • 建议迁移方法(例如,为了扩展规模从 HTML 改用站点地图)

文化适配评估

分析多语言网站时,除了技术层面的 hreflang 验证,还要评估内容是否针对各目标市场进行了文化适配。

加载 references/cultural-profiles.md,获取预置的文化档案(DACH、法语区、西语区、日本)。

评估步骤:

  1. 识别所有语言版本及其目标市场
  2. 加载相关文化档案
  3. 检查 CTA 是否符合文化预期(直接或间接)
  4. 检查信任信号是否适合当地(认证、法律页面)
  5. 检查本地化页面中是否有外国品牌引用
  6. 检查数字、日期和货币格式的一致性
  7. 将文化适配问题标记为中等严重性

**输出:**各语言版本的文化适配评分(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 以分析在线网站。

评论

支持 Markdown