seo-hreflang by agricidaniel/claude-seo
npx skills add https://github.com/agricidaniel/claude-seo --skill seo-hreflang验证现有的 hreflang 实现,或为多语言和多区域网站生成正确的 hreflang 标签。支持 HTML、HTTP 头部和 XML 站点地图实现。
en、fr、de、ja)广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
eng 而非 en(ISO 639-2,对 hreflang 无效)jp 而非 ja(日语代码错误)zh(不明确 — 应使用 zh-Hans 或 zh-Hant)en-US、en-GB、pt-BR)语言-区域(语言小写,区域大写)en-uk 而非 en-GB(UK 不是有效的 ISO 3166-1 代码)es-LA(拉丁美洲不是国家 — 使用特定国家)rel=canonical 指向其他地方,则该页面上的 hreflang 将被忽略| 问题 | 严重性 | 修复方法 |
|---|---|---|
| 缺少自引用标签 | 严重 | 添加指向同一页面 URL 的 hreflang |
| 缺少返回标签(A→B 但没有 B→A) | 严重 | 在所有替代页面上添加匹配的返回标签 |
| 缺少 x-default | 高 | 添加指向回退/选择器页面的 x-default |
无效的语言代码(例如 eng) | 高 | 使用 ISO 639-1 双字母代码 |
无效的区域代码(例如 en-uk) | 高 | 使用 ISO 3166-1 Alpha-2 代码 |
| 在非规范 URL 上使用 hreflang | 高 | 仅将 hreflang 移至规范 URL |
| URL 中 HTTP/HTTPS 不匹配 | 中 | 将所有 URL 标准化为 HTTPS |
| 尾部斜杠不一致 | 中 | 完全匹配规范 URL 格式 |
| 同时在 HTML 和站点地图中使用 hreflang | 低 | 选择一种方法 — 大型站点首选站点地图 |
| 需要时语言代码缺少区域限定符 | 低 | 为地理定位内容添加区域限定符 |
最适合:每个页面语言/区域变体少于 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> 部分。每个页面必须包含所有替代页面,包括其自身。
最适合:非 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 规则设置。
最适合:具有许多语言变体、跨域设置或 50 个以上页面的网站。
请参阅下面的 Hreflang 站点地图生成部分。
| 方法 | 最适合 | 优点 | 缺点 |
|---|---|---|---|
| HTML 链接标签 | 小型站点(<50 个变体) | 易于实现,在源代码中可见 | 使 <head> 臃肿,大规模维护困难 |
| HTTP 头部 | 非 HTML 文件 | 适用于 PDF、图片 | 服务器配置复杂,在 HTML 中不可见 |
| XML 站点地图 | 大型站点、跨域 | 可扩展、集中管理 | 在页面上不可见,需要维护站点地图 |
<?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> 条目出现,并包含其自己的完整集合| 语言 | URL | 自引用 | 返回标签 | x-default | 状态 |
|---|---|---|---|---|---|
| en-US | https://... | ✅ | ✅ | ✅ | ✅ |
| fr | https://... | ❌ | ⚠️ | ✅ | ❌ |
| de | https://... | ✅ | ❌ | ✅ | ❌ |
<link> 标签(如果选择了 HTML 方法)hreflang-sitemap.xml(如果选择了站点地图方法)每周安装量
152
仓库
GitHub 星标数
2.1K
首次出现
2026年2月10日
安全审计
安装于
opencode139
codex137
gemini-cli134
github-copilot133
cursor131
claude-code130
Validate existing hreflang implementations or generate correct hreflang tags for multi-language and multi-region sites. Supports HTML, HTTP header, and XML sitemap implementations.
en, fr, de, ja)eng instead of en (ISO 639-2, not valid for hreflang)jp instead of ja (incorrect code for Japanese)zh without region qualifier (ambiguous — use zh-Hans or zh-Hant)en-US, en-GB, pt-BR)language-REGION (lowercase language, uppercase region)en-uk instead of en-GB (UK is not a valid ISO 3166-1 code)es-LA (Latin America is not a country — use specific countries)rel=canonical pointing elsewhere, hreflang on that page is ignored| Issue | Severity | Fix |
|---|---|---|
| Missing self-referencing tag | Critical | Add hreflang pointing to same page URL |
| Missing return tags (A→B but no B→A) | Critical | Add matching return tags on all alternates |
| Missing x-default | High | Add x-default pointing to fallback/selector page |
Invalid language code (e.g., eng) | High | Use ISO 639-1 two-letter codes |
Invalid region code (e.g., en-uk) | High | Use ISO 3166-1 Alpha-2 codes |
| Hreflang on non-canonical URL | High | Move hreflang to canonical URL only |
| HTTP/HTTPS mismatch in URLs | Medium | Standardize all URLs to HTTPS |
Best for: Sites with <50 language/region variants per page.
<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" />
Place in <head> section. Every page must include all alternates including itself.
Best for: Non-HTML files (PDFs, documents).
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"
Set via server configuration or CDN rules.
Best for: Sites with many language variants, cross-domain setups, or 50+ pages.
See Hreflang Sitemap Generation section below.
| Method | Best For | Pros | Cons |
|---|---|---|---|
| HTML link tags | Small sites (<50 variants) | Easy to implement, visible in source | Bloats <head>, hard to maintain at scale |
| HTTP headers | Non-HTML files | Works for PDFs, images | Complex server config, not visible in HTML |
| XML sitemap | Large sites, cross-domain | Scalable, centralized management | Not visible on page, requires sitemap maintenance |
<?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>
Key rules:
xmlns:xhtml namespace declaration<url> entry must include ALL language alternates (including itself)<url> entry with its own full set| Language | URL | Self-Ref | Return Tags | x-default | Status |
|---|---|---|---|---|---|
| en-US | https://... | ✅ | ✅ | ✅ | ✅ |
| fr | https://... | ❌ | ⚠️ | ✅ | ❌ |
| de | https://... | ✅ | ❌ | ✅ | ❌ |
<link> tags (if HTML method chosen)hreflang-sitemap.xml (if sitemap method chosen)Weekly Installs
152
Repository
GitHub Stars
2.1K
First Seen
Feb 10, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
opencode139
codex137
gemini-cli134
github-copilot133
cursor131
claude-code130
agent-browser 浏览器自动化工具 - Vercel Labs 命令行网页操作与测试
138,300 周安装
社交媒体内容策略指南:LinkedIn、Twitter、Instagram、TikTok、Facebook平台优化与内容创作模板
303 周安装
data-extractor 数据提取技能:从PDF、Word、Excel等文档自动提取结构化数据
304 周安装
架构决策框架:需求驱动架构设计,ADR记录决策,权衡分析指南
304 周安装
使用reveal.js创建HTML幻灯片 | 交互式演示文稿制作工具 | 代码高亮与动画效果
304 周安装
移动应用发布策略指南:从ASO优化到推广渠道的完整发布计划
304 周安装
计分卡营销系统:四步法生成高转化率潜在客户,互动评估提升线索质量
304 周安装
| Trailing slash inconsistency | Medium | Match canonical URL format exactly |
| Hreflang in both HTML and sitemap | Low | Choose one method — sitemap preferred for large sites |
| Language without region when needed | Low | Add region qualifier for geo-targeted content |