mcpField
S
seo-hreflang

seo-hreflang

github.com/sickn33营销与增长48.8k73 次安装今天更新
代码仓库

关于 seo-hreflang

面向 SEO 人员和网站运营者的技能,用于生成或检查多语言、多地区网站的 hreflang。它可检查互惠链接、规范 URL 和语言代码,并支持 HTML、HTTP 标头及 XML 站点地图。

主要功能

  1. 01检查 hreflang 关系
  2. 02生成语言替代标签
  3. 03核对规范 URL
  4. 04验证语言和地区代码
  5. 05支持 HTML、标头和站点地图

适用场景

  1. 01审查网站的地区替代页面
  2. 02为多域名网站生成站点地图 hreflang

安装

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

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill seo-hreflang

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

详细介绍

Hreflang 与国际 SEO

适用场景

  • 验证或生成多语言或多地区网站的 hreflang 时使用。
  • 用户提到国际 SEO、语言标签、x-default 或 hreflang 问题时使用。
  • 审查 HTML、标头或站点地图实现中的区域设置替代页面时使用。

验证现有的 hreflang 实现,或为多语言和多地区网站生成正确的 hreflang 标签。 支持 HTML、HTTP 标头和 XML 站点地图实现。

验证检查

1. 自引用标签
  • 每个页面都必须包含指向自身的 hreflang 标签
  • 自引用 URL 必须与页面的规范 URL 完全一致
  • 缺少自引用属于实现缺陷;应报告受影响的 URL,而不是断言整个集合始终会被忽略
2. 返回标签
  • 如果页面 A 通过 hreflang 链接到页面 B,页面 B 必须链接回页面 A
  • 每个 hreflang 关系都必须是双向的(A→B 和 B→A)
  • 缺少返回标签会导致两个页面的 hreflang 信号均无效
  • 检查所有语言版本是否相互引用(完整网状结构)
3. x-default 标签
  • 可选:指定语言或地区不匹配时使用的回退页面
  • 通常指向语言选择器页面或英文版本
  • 每组替代页面只能有一个 x-default
  • 其他所有语言版本也必须包含返回标签
4. 语言代码验证
  • 必须使用 ISO 639-1 双字母代码(例如 en、fr、de、ja)
  • 常见错误:
    • 使用 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)
  • 格式:language-REGION(语言代码小写,地区代码大写)
  • 常见错误:
    • 使用 en-uk 而不是 en-GB(UK 不是有效的 ISO 3166-1 代码)
    • 使用 es-LA(拉丁美洲不是国家;请使用具体国家)
    • 地区代码前缺少语言代码
6. 规范 URL 对齐
  • hreflang 标签只能出现在规范 URL 上
  • 如果页面的 rel=canonical 指向其他位置,该页面上的 hreflang 将被忽略
  • 规范 URL 和 hreflang URL 必须完全一致(包括末尾斜杠)
  • 非规范页面不应出现在任何 hreflang 集合中
7. 协议一致性

Google 支持完整限定的替代 URL;统一使用 HTTPS 是部署建议,而不是普遍适用的 hreflang 有效性规则。

  • hreflang 集合中的所有 URL 必须使用相同协议(HTTPS 或 HTTP)
  • 当 HTTP/HTTPS 版本不同时,检查重定向和规范目标
  • 迁移至 HTTPS 后,将所有 hreflang 标签更新为 HTTPS
8. 跨域支持
  • Hreflang 支持不同域名之间的设置(例如 example.com 和 example.de)
  • 跨域 hreflang 要求两个域名上都包含返回标签
  • 使用 Search Console 有助于诊断,但不是跨域 hreflang 的前提条件
  • 建议跨域设置采用基于站点地图的实现

常见错误

问题严重性修复方法
缺少自引用标签严重添加指向同一页面 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

输出

Hreflang 验证报告
摘要
  • 扫描页面总数:XX
  • 检测到的语言变体:XX
  • 发现的问题:XX(严重:X,高:X,中:X,低:X)
验证结果
语言URL自引用返回标签x-default状态
en-UShttps://...✅✅✅✅
frhttps://...❌⚠️✅❌
dehttps://...✅❌✅❌
生成的 Hreflang 标签
  • HTML <link> 标签(如果选择 HTML 方式)
  • HTTP 标头值(如果选择标头方式)
  • hreflang-sitemap.xml(如果选择站点地图方式)
建议
  • 添加缺失的实现
  • 修正错误的代码
  • 迁移方式建议(例如,从 HTML 迁移到站点地图以适应规模增长)

错误处理

场景操作
URL 无法访问(DNS 故障、连接被拒绝)清楚地报告错误。不要猜测网站结构。建议用户核实 URL 并重试。
未找到 hreflang 标签报告未找到的情况。检查其他国际化信号(子目录、子域名、国家和地区顶级域名),并建议合适的 hreflang 实现方式。
检测到无效的语言/地区代码列出每个无效代码及其正确替代代码。提供可直接实施的修正后 hreflang 标签集。

限制

  • 仅当任务明确符合上述范围时,才使用此技能。
  • 不要将输出视为环境特定验证、测试或专家审核的替代品。
  • 如果缺少必要的输入、权限、安全边界或成功标准,请停下并请求澄清。

评论

支持 Markdown