← ClaudeAtlas

seo-internationallisted

Audit and generate hreflang annotations for multilingual sites — check reciprocity, BCP-47 validity, self-reference, x-default, hreflang/canonical conflicts, and <html lang> agreement, and emit reciprocal hreflang link sets. Module M20 (conditional). Feeds the Search SEO score.
Hainrixz/claude-seo-ai · ★ 14 · AI & Automation · score 81
Install: claude install-skill Hainrixz/claude-seo-ai
# seo-international (M20) hreflang tells search engines which language/region URL to serve. This module is **conditional**: it only runs when seo-vertical-detect flags a multilingual site (multiple `lang`/locale URLs, language switcher, or existing hreflang). On monolingual sites every finding is `not_applicable` at severity 0. Schema-type concerns defer to `references/schema-tier1.md`; this module owns link-level localization only. ## Audits Working from the PageSnapshot (`rendered_dom` if present, else `raw_html`). Read hreflang from `<link rel="alternate" hreflang="...">` in `<head>` (also accept HTTP `Link:` headers / sitemap `xhtml:link` when present): 1. **Reciprocity** — if page A declares an alternate B, B must declare A back. One-way hreflang is ignored by Google. 2. **BCP-47 validity** — each `hreflang` value is a valid language (`en`) or language-region (`en-GB`, `pt-BR`) tag; region is ISO-3166-1 alpha-2, not a country-of-language guess (`en-UK` is invalid; use `en-GB`). 3. **Self-reference** — the page lists itself in its own hreflang set. 4. **x-default** — at least one `hreflang="x-default"` for the language-selector / fallback URL. 5. **hreflang↔canonical conflict** — an hreflang URL must be self-canonical; pointing hreflang at a URL whose `rel=canonical` is a *different* page neutralizes the cluster (cross-check M2/seo-indexability). 6. **`<html lang>` agreement** — the document `lang` attribute matches the locale this URL targets in its own hreflang entry.