international
Skill0 starsChanged 30 days agoMITView on GitHub
Set up and fix a multi-language or multi-region site for search: URL structure, hreflang, x-default, canonicals per locale, translated metadata and right-to-left languages. Use when the user asks about "hreflang", "translations and SEO", "multilingual SEO", "international SEO", or a findable hreflang.* finding.
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 1 is distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 13
Never pick the language from the IP address or Accept-Language and redirect.
- Very specific: line 18
Every page lists every language version of itself, itself included, plus x-default:
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
International sites
Structure
- One URL per language:
/for the default,/ro/,/ar/for the rest (subfolders). Subfolders keep one domain's authority; ccTLDs are only worth it for a real local business per country. - Never pick the language from the IP address or Accept-Language and redirect. Crawlers mostly come from the US and would never see the other languages. Offer a language switcher.
- Translate the title, description, h1, slug-facing text, image alt and JSON-LD. A translated body under an English title ranks as neither.
hreflang
Every page lists every language version of itself, itself included, plus x-default:
<link rel="alternate" hreflang="en" href="https://example.com/jobs">
<link rel="alternate" hreflang="ro" href="https://example.com/ro/jobs">
<link rel="alternate" hreflang="x-default" href="https://example.com/jobs">- Absolute URLs, on the canonical host.
- Pairs must be reciprocal. A one-way link is ignored.
- Codes are ISO 639-1, optionally with an ISO 3166-1 region:
en,pt-br.ukis Ukrainian, not the United Kingdom (en-gb). - Each locale's canonical points at itself, never at the default language.
Set locales: in findable.yaml with the default first. findable then checks hreflang.missing, self, xdefault, invalid and reciprocal, and matches noindex: and schema: paths across locale prefixes.
Right-to-left
Arabic and Hebrew pages need <html lang="ar" dir="rtl">. Check that the layout mirrors and that numbers and Latin brand names still read correctly.
Local search per country
Each country with an office gets its own LocalBusiness entry and Google Business Profile (see the local-seo skill). Keep the business name the same everywhere.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

