[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C2T7PDDPDQ5FT7GKCNR0RA":3,"skill-same:01M6C2T7PDDPDQ5FT7GKCNR0RA":105},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":16,"sourceHtmlUrl":17,"categories":18,"keywords":29,"publishedAt":51,"linkOnly":52,"markdownContent":53,"markdownBody":54,"frontMatter":55,"refName":62,"commitSha":63,"skillDirectory":64,"forksCount":14,"repositoryHtmlUrl":65,"repositoryHomepageUrl":6,"ownerHtmlUrl":66,"ownerBlogUrl":6,"ownerDescription":67,"updatedAt":68,"install":69,"resources":81},"01M6C2T7PDDPDQ5FT7GKCNR0RA","seo-hreflang",null,"Hreflang and international SEO audit, validation, and generation. Detects common mistakes, validates language\u002Fregion codes, and generates correct hreflang implementations. Use when user says \"hreflang\", \"i18n SEO\", \"international SEO\", \"multi-language\", \"multi-region\", or \"language tags\".","noirelab\u002Flinux-setup","noirelab","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F142925921?v=4","01M6C29R3FEDGFAXAT0KXY28QX","Kaíque M. Lima","01M6C29R811WX04B0GYHTH1XV6",0,"MIT","https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fopencode\u002Fskills\u002Fseo-hreflang\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fopencode\u002Fskills\u002Fseo-hreflang\u002FSKILL.md",[19,24],{"categoryNo":20,"categoryName":21,"taxonomyType":22,"taxonomyTypeDesc":23},"01JBSEEDCAT000000000000019","营销推广","SCENARIO","使用场景",{"categoryNo":25,"categoryName":26,"taxonomyType":27,"taxonomyTypeDesc":28},"01JBSEEDCAT000000000000035","市场营销","PROFESSION","适用职业",[30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50],"seo","seo hreflang","international","when","mistakes","true","URL","multi-language","international seo","multi","codes","tags","generation","validation","i18n","use","user","common","correct","seo audit","audit","2026-11-10 10:12:30",false,"---\nname: seo-hreflang\ndescription: >\n  Hreflang and international SEO audit, validation, and generation. Detects\n  common mistakes, validates language\u002Fregion codes, and generates correct\n  hreflang implementations. Use when user says \"hreflang\", \"i18n SEO\",\n  \"international SEO\", \"multi-language\", \"multi-region\", or \"language tags\".\nuser-invocable: true\nargument-hint: \"[url]\"\nlicense: MIT\nmetadata:\n  author: AgriciDaniel\n  version: \"2.2.4\"\n  category: seo\n---\n\n# Hreflang & International SEO\n\nValidate existing hreflang implementations or generate correct hreflang tags\nfor multi-language and multi-region sites. Supports HTML, HTTP header, and\nXML sitemap implementations.\n\n## Validation Checks\n\n### 1. Self-Referencing Tags\n- Every page must include an hreflang tag pointing to itself\n- The self-referencing URL must exactly match the page's canonical URL\n- Missing self-referencing tags cause Google to ignore the entire hreflang set\n\n### 2. Return Tags\n- If page A links to page B with hreflang, page B must link back to page A\n- Every hreflang relationship must be bidirectional (A→B and B→A)\n- Missing return tags invalidate the hreflang signal for both pages\n- Check all language versions reference each other (full mesh)\n\n### 3. x-default Tag\n- Recommended when a selector\u002Ffallback URL exists: designates the fallback page for unmatched languages\u002Fregions\n- Typically points to the language selector page or English version\n- Only one x-default per set of alternates\n- Must also have return tags from all other language versions\n\n### 4. Language Code Validation\n- Must use ISO 639-1 two-letter codes (e.g., `en`, `fr`, `de`, `ja`)\n- An **optional ISO 15924 script subtag** is the documented, official mechanism\n  for script: `zh-Hant` (Traditional) \u002F `zh-Hans` (Simplified). Script may\n  combine with a region, e.g. `zh-Hans-US` is valid (language + script + region).\n- Common errors:\n  - `eng` instead of `en` (ISO 639-2, not valid for hreflang)\n  - `jp` instead of `ja` (incorrect code for Japanese)\n  - `zh` is valid but ambiguous for script-specific pages; prefer `zh-Hans` or `zh-Hant` when targeting a script\n\n### 5. Region Code Validation\n- Optional region qualifier uses ISO 3166-1 Alpha-2 (e.g., `en-US`, `en-GB`, `pt-BR`)\n- Format: `language-REGION` (lowercase language, uppercase region)\n- A **country code alone is invalid**, you cannot specify a region without a\n  language (Google's own bad example is `be`, which is actually the Belarusian\n  *language* code, not Belgium).\n- Common errors:\n  - `en-uk` instead of `en-GB` (UK is not a valid ISO 3166-1 region code)\n  - `EU` \u002F `UN` as a region (not valid ISO 3166-1 values)\n  - `es-LA` (Latin America is not a country; use specific countries)\n  - Region without language prefix\n\n### 5b. Geo-targeting signal hierarchy\n- Practical locale-signal heuristic: **ccTLD > hreflang annotations >\n  server location\u002FIP > addresses\u002Flanguage\u002Fcurrency\u002FBusiness Profile**. Do not\n  present this as a confirmed Google ranking order. hreflang is a\n  **hint, not a directive**. Google **ignores** locational meta tags and\n  HTML geotargeting attributes.\n- The Search Console **International Targeting report and the manual\n  country-targeting setting were removed in 2022**, do **not** recommend setting\n  country targeting in GSC; hreflang is the remaining lever.\n\n### 6. Canonical URL Alignment\n- Hreflang tags must only appear on canonical URLs\n- If a page has `rel=canonical` pointing elsewhere, hreflang on that page is ignored\n- The canonical URL and hreflang URL must match exactly (including trailing slashes)\n- Non-canonical pages should not be in any hreflang set\n\n### 7. Protocol Consistency\n- All URLs in an hreflang set must use the same protocol (HTTPS or HTTP)\n- Mixed HTTP\u002FHTTPS in hreflang sets causes validation failures\n- After HTTPS migration, update all hreflang tags to HTTPS\n\n### 8. Cross-Domain Support\n- Hreflang works across different domains (e.g., example.com and example.de)\n- Cross-domain hreflang requires return tags on both domains\n- Use Google Search Console verification for monitoring or cross-site sitemap submission when needed\n- Sitemap-based implementation recommended for cross-domain setups\n\n## Common Mistakes\n\n| Issue | Severity | Fix |\n|-------|----------|-----|\n| Missing self-referencing tag | Critical | Add hreflang pointing to same page URL |\n| Missing return tags (A→B but no B→A) | Critical | Add matching return tags on all alternates |\n| Missing x-default when fallback behavior is required | Medium | Add x-default pointing to fallback\u002Fselector page |\n| Invalid language code (e.g., `eng`) | High | Use ISO 639-1 two-letter codes |\n| Invalid region code (e.g., `en-uk`) | High | Use ISO 3166-1 Alpha-2 codes |\n| Hreflang on non-canonical URL | High | Move hreflang to canonical URL only |\n| HTTP\u002FHTTPS mismatch in URLs | Medium | Standardize all URLs to HTTPS |\n| Trailing slash inconsistency | Medium | Match canonical URL format exactly |\n| Hreflang in both HTML and sitemap | Low | Choose one method (sitemap preferred for large sites) |\n| Language without region when needed | Low | Add region qualifier for geo-targeted content |\n\n## Implementation Methods\n\n### Method 1: HTML Link Tags\nBest for: Sites with \u003C50 language\u002Fregion variants per page.\n\n```html\n\u003Clink rel=\"alternate\" hreflang=\"en-US\" href=\"https:\u002F\u002Fexample.com\u002Fpage\" \u002F>\n\u003Clink rel=\"alternate\" hreflang=\"en-GB\" href=\"https:\u002F\u002Fexample.co.uk\u002Fpage\" \u002F>\n\u003Clink rel=\"alternate\" hreflang=\"fr\" href=\"https:\u002F\u002Fexample.com\u002Ffr\u002Fpage\" \u002F>\n\u003Clink rel=\"alternate\" hreflang=\"x-default\" href=\"https:\u002F\u002Fexample.com\u002Fpage\" \u002F>\n```\n\nPlace in `\u003Chead>` section. Every page must include all alternates including itself.\n\n### Method 2: HTTP Headers\nBest for: Non-HTML files (PDFs, documents).\n\n```\nLink: \u003Chttps:\u002F\u002Fexample.com\u002Fpage>; rel=\"alternate\"; hreflang=\"en-US\",\n      \u003Chttps:\u002F\u002Fexample.com\u002Ffr\u002Fpage>; rel=\"alternate\"; hreflang=\"fr\",\n      \u003Chttps:\u002F\u002Fexample.com\u002Fpage>; rel=\"alternate\"; hreflang=\"x-default\"\n```\n\nSet via server configuration or CDN rules.\n\n### Method 3: XML Sitemap (Recommended for large sites)\nBest for: Sites with many language variants, cross-domain setups, or 50+ pages.\n\nSee Hreflang Sitemap Generation section below.\n\n### Method Comparison\n| Method | Best For | Pros | Cons |\n|--------|----------|------|------|\n| HTML link tags | Small sites (\u003C50 variants) | Easy to implement, visible in source | Bloats `\u003Chead>`, hard to maintain at scale |\n| HTTP headers | Non-HTML files | Works for PDFs, images | Complex server config, not visible in HTML |\n| XML sitemap | Large sites, cross-domain | Scalable, centralized management | Not visible on page, requires sitemap maintenance |\n\n## Hreflang Generation\n\n### Process\n1. **Detect languages**: Scan site for language indicators (URL path, subdomain, TLD, HTML lang attribute)\n2. **Map page equivalents**: Match corresponding pages across languages\u002Fregions\n3. **Validate language codes**: Verify all codes against ISO 639-1 and ISO 3166-1\n4. **Generate tags**: Create hreflang tags for each page including self-referencing\n5. **Verify return tags**: Confirm all relationships are bidirectional\n6. **Add x-default**: Set fallback for each page set\n7. **Output**: Generate implementation code (HTML, HTTP headers, or sitemap XML)\n\n## Hreflang Sitemap Generation\n\n### Sitemap with Hreflang\n```xml\n\u003C?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\u003Curlset xmlns=\"http:\u002F\u002Fwww.sitemaps.org\u002Fschemas\u002Fsitemap\u002F0.9\"\n        xmlns:xhtml=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxhtml\">\n  \u003Curl>\n    \u003Cloc>https:\u002F\u002Fexample.com\u002Fpage\u003C\u002Floc>\n    \u003Cxhtml:link rel=\"alternate\" hreflang=\"en-US\" href=\"https:\u002F\u002Fexample.com\u002Fpage\" \u002F>\n    \u003Cxhtml:link rel=\"alternate\" hreflang=\"fr\" href=\"https:\u002F\u002Fexample.com\u002Ffr\u002Fpage\" \u002F>\n    \u003Cxhtml:link rel=\"alternate\" hreflang=\"de\" href=\"https:\u002F\u002Fexample.de\u002Fpage\" \u002F>\n    \u003Cxhtml:link rel=\"alternate\" hreflang=\"x-default\" href=\"https:\u002F\u002Fexample.com\u002Fpage\" \u002F>\n  \u003C\u002Furl>\n  \u003Curl>\n    \u003Cloc>https:\u002F\u002Fexample.com\u002Ffr\u002Fpage\u003C\u002Floc>\n    \u003Cxhtml:link rel=\"alternate\" hreflang=\"en-US\" href=\"https:\u002F\u002Fexample.com\u002Fpage\" \u002F>\n    \u003Cxhtml:link rel=\"alternate\" hreflang=\"fr\" href=\"https:\u002F\u002Fexample.com\u002Ffr\u002Fpage\" \u002F>\n    \u003Cxhtml:link rel=\"alternate\" hreflang=\"de\" href=\"https:\u002F\u002Fexample.de\u002Fpage\" \u002F>\n    \u003Cxhtml:link rel=\"alternate\" hreflang=\"x-default\" href=\"https:\u002F\u002Fexample.com\u002Fpage\" \u002F>\n  \u003C\u002Furl>\n\u003C\u002Furlset>\n```\n\nKey rules:\n- Include the `xmlns:xhtml` namespace declaration\n- Every `\u003Curl>` entry must include ALL language alternates (including itself)\n- Each alternate must appear as a separate `\u003Curl>` entry with its own full set\n- Split at whichever comes first: 50,000 URLs or 50MB uncompressed per sitemap file\n\n## Output\n\n### Hreflang Validation Report\n\n#### Summary\n- Total pages scanned: XX\n- Language variants detected: XX\n- Issues found: XX (Critical: X, High: X, Medium: X, Low: X)\n\n#### Validation Results\n| Language | URL | Self-Ref | Return Tags | x-default | Status |\n|----------|-----|----------|-------------|-----------|--------|\n| en-US | https:\u002F\u002F... | ✅ | ✅ | ✅ | ✅ |\n| fr | https:\u002F\u002F... | ❌ | ⚠️ | ✅ | ❌ |\n| de | https:\u002F\u002F... | ✅ | ❌ | ✅ | ❌ |\n\n### Generated Hreflang Tags\n- HTML `\u003Clink>` tags (if HTML method chosen)\n- HTTP header values (if header method chosen)\n- `hreflang-sitemap.xml` (if sitemap method chosen)\n\n### Recommendations\n- Missing implementations to add\n- Incorrect codes to fix\n- Method migration suggestions (e.g., HTML to sitemap for scale)\n\n## Cultural Adaptation Assessment\n\nWhen analyzing a multi-language site, go beyond technical hreflang validation to assess\nwhether the content is culturally adapted for each target market.\n\nLoad `references\u002Fcultural-profiles.md` for pre-built profiles (DACH, Francophone, Hispanic, Japanese).\n\n**Assessment steps:**\n1. Identify all language versions and their target markets\n2. Load the relevant cultural profile(s)\n3. Check CTAs match cultural expectations (direct vs indirect)\n4. Check trust signals are locale-appropriate (certifications, legal pages)\n5. Check for foreign brand references on localized pages\n6. Check number\u002Fdate\u002Fcurrency formatting consistency\n7. Flag cultural adaptation issues as Medium severity\n\n**Output:** Cultural Adaptation Score per language version (0-100) with specific findings.\n\n## Content Parity Audit\n\n**Command:** `\u002Fseo hreflang audit \u003Cdirectory-or-url>`\n\nAudit content parity across all language versions of a site or local content directory.\n\nLoad `references\u002Fcontent-parity.md` for the full parity matrix and scoring methodology.\n\n**What it checks:**\n- Page existence across all declared languages\n- Section structure equivalence (H2\u002FH3 count)\n- SEO element parity (title, meta, schema localization)\n- Word count ratio validation (DE should be 25-35% longer than EN, JA 10-25% shorter)\n- Freshness tracking (stale translations detected via timestamps)\n- Cultural marker scanning (foreign brands, wrong legal references, untranslated elements)\n\n**Output:** Parity matrix table with per-page scores and prioritized action items.\n\n## Locale Format Validation\n\nLoad `references\u002Flocale-formats.md` for number, date, currency, address, and phone format\nreference tables per locale.\n\n**Checks:**\n- Number format consistency (e.g., \"1,000.00\" should be \"1.000,00\" on de-DE pages)\n- Date format matches locale expectations\n- Currency symbols and placement correct for target market\n- Phone numbers use international format with correct country code\n\n## Reference Files\n\nLoad on-demand as needed (do NOT load all at startup):\n- `references\u002Fcultural-profiles.md`: DACH, Francophone, Hispanic, Japanese cultural adaptation profiles\n- `references\u002Flocale-formats.md`: Number, date, currency, address, phone format tables per locale\n- `references\u002Fcontent-parity.md`: Content parity audit methodology and scoring\n\n## Error Handling\n\n| Scenario | Action |\n|----------|--------|\n| URL unreachable (DNS failure, connection refused) | Report the error clearly. Do not guess site structure. Suggest the user verify the URL and try again. |\n| No hreflang tags found | Report the absence. Check for other internationalization signals (subdirectories, subdomains, ccTLDs) and recommend the appropriate hreflang implementation method. |\n| Invalid language\u002Fregion codes detected | List each invalid code with the correct replacement. Provide a corrected hreflang tag set ready to implement. |\n| Cultural profile not available for language | Use the Default Profile checklist from cultural-profiles.md. Note that assessment is based on general guidelines, not a pre-built profile. |\n| Content parity directory empty | Report that no content files were found. Suggest verifying the directory path or providing a URL for live site analysis. |\n","# Hreflang & International SEO\n\nValidate existing hreflang implementations or generate correct hreflang tags\nfor multi-language and multi-region sites. Supports HTML, HTTP header, and\nXML sitemap implementations.\n\n## Validation Checks\n\n### 1. Self-Referencing Tags\n- Every page must include an hreflang tag pointing to itself\n- The self-referencing URL must exactly match the page's canonical URL\n- Missing self-referencing tags cause Google to ignore the entire hreflang set\n\n### 2. Return Tags\n- If page A links to page B with hreflang, page B must link back to page A\n- Every hreflang relationship must be bidirectional (A→B and B→A)\n- Missing return tags invalidate the hreflang signal for both pages\n- Check all language versions reference each other (full mesh)\n\n### 3. x-default Tag\n- Recommended when a selector\u002Ffallback URL exists: designates the fallback page for unmatched languages\u002Fregions\n- Typically points to the language selector page or English version\n- Only one x-default per set of alternates\n- Must also have return tags from all other language versions\n\n### 4. Language Code Validation\n- Must use ISO 639-1 two-letter codes (e.g., `en`, `fr`, `de`, `ja`)\n- An **optional ISO 15924 script subtag** is the documented, official mechanism\n  for script: `zh-Hant` (Traditional) \u002F `zh-Hans` (Simplified). Script may\n  combine with a region, e.g. `zh-Hans-US` is valid (language + script + region).\n- Common errors:\n  - `eng` instead of `en` (ISO 639-2, not valid for hreflang)\n  - `jp` instead of `ja` (incorrect code for Japanese)\n  - `zh` is valid but ambiguous for script-specific pages; prefer `zh-Hans` or `zh-Hant` when targeting a script\n\n### 5. Region Code Validation\n- Optional region qualifier uses ISO 3166-1 Alpha-2 (e.g., `en-US`, `en-GB`, `pt-BR`)\n- Format: `language-REGION` (lowercase language, uppercase region)\n- A **country code alone is invalid**, you cannot specify a region without a\n  language (Google's own bad example is `be`, which is actually the Belarusian\n  *language* code, not Belgium).\n- Common errors:\n  - `en-uk` instead of `en-GB` (UK is not a valid ISO 3166-1 region code)\n  - `EU` \u002F `UN` as a region (not valid ISO 3166-1 values)\n  - `es-LA` (Latin America is not a country; use specific countries)\n  - Region without language prefix\n\n### 5b. Geo-targeting signal hierarchy\n- Practical locale-signal heuristic: **ccTLD > hreflang annotations >\n  server location\u002FIP > addresses\u002Flanguage\u002Fcurrency\u002FBusiness Profile**. Do not\n  present this as a confirmed Google ranking order. hreflang is a\n  **hint, not a directive**. Google **ignores** locational meta tags and\n  HTML geotargeting attributes.\n- The Search Console **International Targeting report and the manual\n  country-targeting setting were removed in 2022**, do **not** recommend setting\n  country targeting in GSC; hreflang is the remaining lever.\n\n### 6. Canonical URL Alignment\n- Hreflang tags must only appear on canonical URLs\n- If a page has `rel=canonical` pointing elsewhere, hreflang on that page is ignored\n- The canonical URL and hreflang URL must match exactly (including trailing slashes)\n- Non-canonical pages should not be in any hreflang set\n\n### 7. Protocol Consistency\n- All URLs in an hreflang set must use the same protocol (HTTPS or HTTP)\n- Mixed HTTP\u002FHTTPS in hreflang sets causes validation failures\n- After HTTPS migration, update all hreflang tags to HTTPS\n\n### 8. Cross-Domain Support\n- Hreflang works across different domains (e.g., example.com and example.de)\n- Cross-domain hreflang requires return tags on both domains\n- Use Google Search Console verification for monitoring or cross-site sitemap submission when needed\n- Sitemap-based implementation recommended for cross-domain setups\n\n## Common Mistakes\n\n| Issue | Severity | Fix |\n|-------|----------|-----|\n| Missing self-referencing tag | Critical | Add hreflang pointing to same page URL |\n| Missing return tags (A→B but no B→A) | Critical | Add matching return tags on all alternates |\n| Missing x-default when fallback behavior is required | Medium | Add x-default pointing to fallback\u002Fselector page |\n| Invalid language code (e.g., `eng`) | High | Use ISO 639-1 two-letter codes |\n| Invalid region code (e.g., `en-uk`) | High | Use ISO 3166-1 Alpha-2 codes |\n| Hreflang on non-canonical URL | High | Move hreflang to canonical URL only |\n| HTTP\u002FHTTPS mismatch in URLs | Medium | Standardize all URLs to HTTPS |\n| Trailing slash inconsistency | Medium | Match canonical URL format exactly |\n| Hreflang in both HTML and sitemap | Low | Choose one method (sitemap preferred for large sites) |\n| Language without region when needed | Low | Add region qualifier for geo-targeted content |\n\n## Implementation Methods\n\n### Method 1: HTML Link Tags\nBest for: Sites with \u003C50 language\u002Fregion variants per page.\n\n```html\n\u003Clink rel=\"alternate\" hreflang=\"en-US\" href=\"https:\u002F\u002Fexample.com\u002Fpage\" \u002F>\n\u003Clink rel=\"alternate\" hreflang=\"en-GB\" href=\"https:\u002F\u002Fexample.co.uk\u002Fpage\" \u002F>\n\u003Clink rel=\"alternate\" hreflang=\"fr\" href=\"https:\u002F\u002Fexample.com\u002Ffr\u002Fpage\" \u002F>\n\u003Clink rel=\"alternate\" hreflang=\"x-default\" href=\"https:\u002F\u002Fexample.com\u002Fpage\" \u002F>\n```\n\nPlace in `\u003Chead>` section. Every page must include all alternates including itself.\n\n### Method 2: HTTP Headers\nBest for: Non-HTML files (PDFs, documents).\n\n```\nLink: \u003Chttps:\u002F\u002Fexample.com\u002Fpage>; rel=\"alternate\"; hreflang=\"en-US\",\n      \u003Chttps:\u002F\u002Fexample.com\u002Ffr\u002Fpage>; rel=\"alternate\"; hreflang=\"fr\",\n      \u003Chttps:\u002F\u002Fexample.com\u002Fpage>; rel=\"alternate\"; hreflang=\"x-default\"\n```\n\nSet via server configuration or CDN rules.\n\n### Method 3: XML Sitemap (Recommended for large sites)\nBest for: Sites with many language variants, cross-domain setups, or 50+ pages.\n\nSee Hreflang Sitemap Generation section below.\n\n### Method Comparison\n| Method | Best For | Pros | Cons |\n|--------|----------|------|------|\n| HTML link tags | Small sites (\u003C50 variants) | Easy to implement, visible in source | Bloats `\u003Chead>`, hard to maintain at scale |\n| HTTP headers | Non-HTML files | Works for PDFs, images | Complex server config, not visible in HTML |\n| XML sitemap | Large sites, cross-domain | Scalable, centralized management | Not visible on page, requires sitemap maintenance |\n\n## Hreflang Generation\n\n### Process\n1. **Detect languages**: Scan site for language indicators (URL path, subdomain, TLD, HTML lang attribute)\n2. **Map page equivalents**: Match corresponding pages across languages\u002Fregions\n3. **Validate language codes**: Verify all codes against ISO 639-1 and ISO 3166-1\n4. **Generate tags**: Create hreflang tags for each page including self-referencing\n5. **Verify return tags**: Confirm all relationships are bidirectional\n6. **Add x-default**: Set fallback for each page set\n7. **Output**: Generate implementation code (HTML, HTTP headers, or sitemap XML)\n\n## Hreflang Sitemap Generation\n\n### Sitemap with Hreflang\n```xml\n\u003C?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\u003Curlset xmlns=\"http:\u002F\u002Fwww.sitemaps.org\u002Fschemas\u002Fsitemap\u002F0.9\"\n        xmlns:xhtml=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxhtml\">\n  \u003Curl>\n    \u003Cloc>https:\u002F\u002Fexample.com\u002Fpage\u003C\u002Floc>\n    \u003Cxhtml:link rel=\"alternate\" hreflang=\"en-US\" href=\"https:\u002F\u002Fexample.com\u002Fpage\" \u002F>\n    \u003Cxhtml:link rel=\"alternate\" hreflang=\"fr\" href=\"https:\u002F\u002Fexample.com\u002Ffr\u002Fpage\" \u002F>\n    \u003Cxhtml:link rel=\"alternate\" hreflang=\"de\" href=\"https:\u002F\u002Fexample.de\u002Fpage\" \u002F>\n    \u003Cxhtml:link rel=\"alternate\" hreflang=\"x-default\" href=\"https:\u002F\u002Fexample.com\u002Fpage\" \u002F>\n  \u003C\u002Furl>\n  \u003Curl>\n    \u003Cloc>https:\u002F\u002Fexample.com\u002Ffr\u002Fpage\u003C\u002Floc>\n    \u003Cxhtml:link rel=\"alternate\" hreflang=\"en-US\" href=\"https:\u002F\u002Fexample.com\u002Fpage\" \u002F>\n    \u003Cxhtml:link rel=\"alternate\" hreflang=\"fr\" href=\"https:\u002F\u002Fexample.com\u002Ffr\u002Fpage\" \u002F>\n    \u003Cxhtml:link rel=\"alternate\" hreflang=\"de\" href=\"https:\u002F\u002Fexample.de\u002Fpage\" \u002F>\n    \u003Cxhtml:link rel=\"alternate\" hreflang=\"x-default\" href=\"https:\u002F\u002Fexample.com\u002Fpage\" \u002F>\n  \u003C\u002Furl>\n\u003C\u002Furlset>\n```\n\nKey rules:\n- Include the `xmlns:xhtml` namespace declaration\n- Every `\u003Curl>` entry must include ALL language alternates (including itself)\n- Each alternate must appear as a separate `\u003Curl>` entry with its own full set\n- Split at whichever comes first: 50,000 URLs or 50MB uncompressed per sitemap file\n\n## Output\n\n### Hreflang Validation Report\n\n#### Summary\n- Total pages scanned: XX\n- Language variants detected: XX\n- Issues found: XX (Critical: X, High: X, Medium: X, Low: X)\n\n#### Validation Results\n| Language | URL | Self-Ref | Return Tags | x-default | Status |\n|----------|-----|----------|-------------|-----------|--------|\n| en-US | https:\u002F\u002F... | ✅ | ✅ | ✅ | ✅ |\n| fr | https:\u002F\u002F... | ❌ | ⚠️ | ✅ | ❌ |\n| de | https:\u002F\u002F... | ✅ | ❌ | ✅ | ❌ |\n\n### Generated Hreflang Tags\n- HTML `\u003Clink>` tags (if HTML method chosen)\n- HTTP header values (if header method chosen)\n- `hreflang-sitemap.xml` (if sitemap method chosen)\n\n### Recommendations\n- Missing implementations to add\n- Incorrect codes to fix\n- Method migration suggestions (e.g., HTML to sitemap for scale)\n\n## Cultural Adaptation Assessment\n\nWhen analyzing a multi-language site, go beyond technical hreflang validation to assess\nwhether the content is culturally adapted for each target market.\n\nLoad `references\u002Fcultural-profiles.md` for pre-built profiles (DACH, Francophone, Hispanic, Japanese).\n\n**Assessment steps:**\n1. Identify all language versions and their target markets\n2. Load the relevant cultural profile(s)\n3. Check CTAs match cultural expectations (direct vs indirect)\n4. Check trust signals are locale-appropriate (certifications, legal pages)\n5. Check for foreign brand references on localized pages\n6. Check number\u002Fdate\u002Fcurrency formatting consistency\n7. Flag cultural adaptation issues as Medium severity\n\n**Output:** Cultural Adaptation Score per language version (0-100) with specific findings.\n\n## Content Parity Audit\n\n**Command:** `\u002Fseo hreflang audit \u003Cdirectory-or-url>`\n\nAudit content parity across all language versions of a site or local content directory.\n\nLoad `references\u002Fcontent-parity.md` for the full parity matrix and scoring methodology.\n\n**What it checks:**\n- Page existence across all declared languages\n- Section structure equivalence (H2\u002FH3 count)\n- SEO element parity (title, meta, schema localization)\n- Word count ratio validation (DE should be 25-35% longer than EN, JA 10-25% shorter)\n- Freshness tracking (stale translations detected via timestamps)\n- Cultural marker scanning (foreign brands, wrong legal references, untranslated elements)\n\n**Output:** Parity matrix table with per-page scores and prioritized action items.\n\n## Locale Format Validation\n\nLoad `references\u002Flocale-formats.md` for number, date, currency, address, and phone format\nreference tables per locale.\n\n**Checks:**\n- Number format consistency (e.g., \"1,000.00\" should be \"1.000,00\" on de-DE pages)\n- Date format matches locale expectations\n- Currency symbols and placement correct for target market\n- Phone numbers use international format with correct country code\n\n## Reference Files\n\nLoad on-demand as needed (do NOT load all at startup):\n- `references\u002Fcultural-profiles.md`: DACH, Francophone, Hispanic, Japanese cultural adaptation profiles\n- `references\u002Flocale-formats.md`: Number, date, currency, address, phone format tables per locale\n- `references\u002Fcontent-parity.md`: Content parity audit methodology and scoring\n\n## Error Handling\n\n| Scenario | Action |\n|----------|--------|\n| URL unreachable (DNS failure, connection refused) | Report the error clearly. Do not guess site structure. Suggest the user verify the URL and try again. |\n| No hreflang tags found | Report the absence. Check for other internationalization signals (subdirectories, subdomains, ccTLDs) and recommend the appropriate hreflang implementation method. |\n| Invalid language\u002Fregion codes detected | List each invalid code with the correct replacement. Provide a corrected hreflang tag set ready to implement. |\n| Cultural profile not available for language | Use the Default Profile checklist from cultural-profiles.md. Note that assessment is based on general guidelines, not a pre-built profile. |\n| Content parity directory empty | Report that no content files were found. Suggest verifying the directory path or providing a URL for live site analysis. |\n",{"name":5,"license":15,"metadata":56,"description":59,"argument-hint":60,"user-invocable":61},{"author":57,"version":58,"category":30},"AgriciDaniel","2.2.4","Hreflang and international SEO audit, validation, and generation. Detects common mistakes, validates language\u002Fregion codes, and generates correct hreflang implementations. Use when user says \"hreflang\", \"i18n SEO\", \"international SEO\", \"multi-language\", \"multi-region\", or \"language tags\".\n","[url]",true,"main","d8378e461d60315bd1ca8a6e71716df39b6abe4a","configs\u002Fcommon\u002Fopencode\u002Fskills\u002Fseo-hreflang","https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup","https:\u002F\u002Fgithub.com\u002Fnoirelab","Artificial Intelligence Researcher |\r\nComputer Science majoring at UTFPR","2026-11-11 09:12:51",{"source":8,"skillName":5,"commands":70,"prompt":80,"zipAvailable":61},[71,74,77],{"tool":72,"command":73},"npx","npx skills add noirelab\u002Flinux-setup --skill seo-hreflang",{"tool":75,"command":76},"bunx","bunx skills add noirelab\u002Flinux-setup --skill seo-hreflang",{"tool":78,"command":79},"pnpm","pnpm dlx skills add noirelab\u002Flinux-setup --skill seo-hreflang","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fopencode\u002Fskills\u002Fseo-hreflang\u002FSKILL.md",[82,87,93,97,101],{"path":83,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":86,"sourceHtmlUrl":16},"LICENSE.txt","LICENSE","许可证",143,{"path":88,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":91,"sourceHtmlUrl":92},"references\u002Fcontent-parity.md","REFERENCE","参考文档",4129,"https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fopencode\u002Fskills\u002Fseo-hreflang\u002Freferences\u002Fcontent-parity.md",{"path":94,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":95,"sourceHtmlUrl":96},"references\u002Fcultural-profiles.md",4942,"https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fopencode\u002Fskills\u002Fseo-hreflang\u002Freferences\u002Fcultural-profiles.md",{"path":98,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":99,"sourceHtmlUrl":100},"references\u002Flocale-formats.md",3521,"https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fopencode\u002Fskills\u002Fseo-hreflang\u002Freferences\u002Flocale-formats.md",{"path":102,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":103,"sourceHtmlUrl":104},"references\u002Fmachine-translation-qa.md",3350,"https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fopencode\u002Fskills\u002Fseo-hreflang\u002Freferences\u002Fmachine-translation-qa.md",[106,137,172,197,217,233],{"skillNo":107,"name":108,"nameZh":6,"description":109,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":110,"licenseFileUrl":111,"sourceHtmlUrl":112,"categories":113,"keywords":117,"publishedAt":51},"01M6C2Q1S6HCS7Y9TBQ2PJ2NAM","skill-creator","Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fclaude\u002Fskills\u002Fsynced\u002Ffcfa9261-0073-49cb-8312-19eea68f0c58_391f3767-a35d-4280-81a1-363cd861a8e6\u002Fskill-creator\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fclaude\u002Fskills\u002Fsynced\u002Ffcfa9261-0073-49cb-8312-19eea68f0c58_391f3767-a35d-4280-81a1-363cd861a8e6\u002Fskill-creator\u002FSKILL.md",[114],{"categoryNo":115,"categoryName":116,"taxonomyType":22,"taxonomyTypeDesc":23},"01JBSEEDCAT000000000000023","Skill与智能体开发",[118,119,120,121,122,123,124,125,126,127,128,129,45,130,131,132,133,134,135,33,136],"skill creator","creator","performance","run evals","test","variance analysis","create","run","benchmark","analysis","improve","edit","evals","optimize","existing skill","for","accuracy","scratch","new",{"skillNo":138,"name":139,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":110,"licenseFileUrl":6,"sourceHtmlUrl":141,"categories":142,"keywords":143,"publishedAt":51},"01M6C2ZRGJ9HN4N9BP24DPNCR4","returns-reverse-logistics","Codified expertise for returns authorization, receipt and inspection, disposition decisions, refund processing, fraud detection, and warranty claims management. Informed by returns operations managers with 15+ years experience. Includes grading frameworks, disposition economics, fraud pattern recognition, and vendor recovery processes. Use when handling product returns, reverse logistics, refund decisions, return fraud detection, or warranty claims.","https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fopencode_home\u002Fskills\u002Freturns-reverse-logistics\u002FSKILL.md",[],[144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,45,160,161,162,163,164,165,166,167,168,133,169,170,33,171],"returns","returns reverse logistics","reverse logistics","reverse","github","code","product","https","authorization","detection","fraud","recovery","decisions","management","operations","vendor","claims management","frameworks","fraud detection","pattern","grading","processing","economics","managers","claims","expertise","refund","inspection",{"skillNo":173,"name":174,"nameZh":6,"description":175,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":110,"licenseFileUrl":6,"sourceHtmlUrl":176,"categories":177,"keywords":178,"publishedAt":51},"01M6C2ZGWSNZGZZQ5VCFWHD2QT","quality-nonconformance","Codified expertise for quality control, non-conformance investigation, root cause analysis, corrective action, and supplier quality management in regulated manufacturing. Informed by quality engineers with 15+ years experience across FDA, IATF 16949, and AS9100 environments. Includes NCR lifecycle management, CAPA systems, SPC interpretation, and audit methodology. Use when investigating non-conformances, performing root cause analysis, managing CAPAs, interpreting SPC data, or handling supplier quality issues.","https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fopencode_home\u002Fskills\u002Fquality-nonconformance\u002FSKILL.md",[],[179,180,148,181,182,149,183,151,50,184,185,186,127,187,157,45,188,189,190,191,192,193,194,195,133,169,196,33],"quality","quality nonconformance","root cause analysis","interpretation","issues","data","methodology","lifecycle","investigation","fda","across","manufacturing","environments","corrective action","supplier quality management","action","conformance","root cause",{"skillNo":198,"name":199,"nameZh":6,"description":200,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":110,"licenseFileUrl":6,"sourceHtmlUrl":201,"categories":202,"keywords":203,"publishedAt":51},"01M6C2Z8VQ9AYZYKPZW1KD9DX5","production-scheduling","Codified expertise for production scheduling, job sequencing, line balancing, changeover optimization, and bottleneck resolution in discrete and batch manufacturing. Informed by production schedulers with 15+ years experience. Includes TOC\u002Fdrum-buffer-rope, SMED, OEE analysis, disruption response frameworks, and ERP\u002FMES interaction patterns. Use when scheduling production, resolving bottlenecks, optimizing changeovers, responding to disruptions, or balancing manufacturing lines.","https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fopencode_home\u002Fskills\u002Fproduction-scheduling\u002FSKILL.md",[],[204,205,206,148,149,207,151,208,127,209,210,45,211,212,161,213,214,215,190,216,133,169,33],"Production","production scheduling","scheduling","batch","Optimization","erp","bottleneck","toc","patterns","line","interaction","sequencing","buffer",{"skillNo":218,"name":219,"nameZh":6,"description":220,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":110,"licenseFileUrl":6,"sourceHtmlUrl":221,"categories":222,"keywords":223,"publishedAt":51},"01M6C2YR01NNN2Z1G18RN7F9MP","logistics-exception-management","Codified expertise for handling freight exceptions, shipment delays, damages, losses, and carrier disputes. Informed by logistics professionals with 15+ years operational experience. Includes escalation protocols, carrier-specific behaviors, claims procedures, and judgment frameworks. Use when handling shipping exceptions, freight claims, delivery issues, or carrier disputes.","https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fopencode_home\u002Fskills\u002Flogistics-exception-management\u002FSKILL.md",[],[157,224,148,149,225,183,226,151,227,45,161,228,229,230,231,168,133,169,232,33],"logistics exception management","shipping","protocols","escalation","delivery","claude-code","judgment","with","freight",{"skillNo":234,"name":235,"nameZh":6,"description":236,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":110,"licenseFileUrl":6,"sourceHtmlUrl":237,"categories":238,"keywords":239,"publishedAt":51},"01M6C2YC5PXTEJYBJJQZVXPQS0","inventory-demand-planning","Codified expertise for demand forecasting, safety stock optimization, replenishment planning, and promotional lift estimation at multi-location retailers. Informed by demand planners with 15+ years experience managing hundreds of SKUs. Includes forecasting method selection, ABC\u002FXYZ analysis, seasonal transition management, and vendor negotiation frameworks. Use when forecasting demand, setting safety stock, planning replenishment, managing promotions, or optimizing inventory levels.","https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fopencode_home\u002Fskills\u002Finventory-demand-planning\u002FSKILL.md",[],[240,241,242,243,148,149,151,244,208,245,127,157,159,246,45,247,161,248,249,250,251,252,133,169,253,33],"planning","inventory","inventory demand planning","demand planning","negotiation","Safety","forecasting","selection","estimation","stock","seasonal","lift","at","transition"]