International SEO skill 08 of 13
International Technical SEO SKILL.md
The International Technical SEO skill makes Claude, Codex or another AI agent fix the technical layer of international sites. It tests crawler access to every locale from US IP addresses, replaces forced IP and browser-language redirects with banners, checks CDN caching by URL, makes language selectors crawlable, sets up sitemaps per locale, removes default-locale duplicates, handles UTF-8 and non-Latin URLs and measures performance by country.
international-technical-seo/SKILL.md, version 1.0.0, 1,570 words.
By Afeez Adebayo, Marketing, SEO & Growth Expert with 10+ years of experience.
Created 10 October 2026. Updated 10 October 2026. Free to use under CC BY 4.0.
International sites add technical failure modes that single-market sites never face: geo-redirects that stop Googlebot reaching other versions, CDNs serving cached pages in the wrong language, JavaScript language switchers crawlers can't follow, duplicate pages across markets, slow performance far from the origin server, character encoding errors and sitemaps that mix locales. Googlebot mostly crawls from US IP addresses, so anything that changes content by visitor location can hide versions from it. [Confirmed, Google locale-adaptive guidance]
This skill audits and fixes the technical layer of international sites: crawling and rendering per locale, redirects and banners, caching, performance by region, encoding, sitemaps, canonicals and Search Console setup.
Operating principles
- Separate URLs for each version. Don't serve different languages on the same URL based on location or cookies.
- No forced redirects. Suggest versions; never block crawlers or users from them.
- Cache by URL, not by visitor. CDNs must not serve one locale's content to another.
- Measure performance where users are. Field data by country shows real speed.
- Validate per locale. Crawl and inspect each market, not just the default.
Common international technical problems
| Problem | Effect | Fix |
|---|---|---|
| IP-based redirects | Crawlers see only the US or default version | Remove forced redirects; use banners |
| Accept-Language redirects | Same as above for crawlers without that header | Crawlable URLs with banners |
| Locale chosen by cookie on one URL | Only one version indexed | Separate URLs per locale |
| CDN caching ignoring locale | Wrong language served | Cache key per URL; avoid Vary on location unless needed |
| JavaScript-only language switcher | Versions not discovered | Plain links in HTML |
| Mixed-locale sitemaps with errors | Slow discovery | Sitemap per locale with hreflang if used |
| Encoding problems | Garbled characters, broken URLs | UTF-8 everywhere; percent-encode non-ASCII URLs consistently |
| Slow pages far from origin | Poor experience, weaker performance | CDN, edge caching, regional hosting where needed |
| Duplicate default pages (/ and /en/) | Split signals | Choose one and redirect or canonicalise |
When to use, and when not to
Use it when launching locales, when versions aren't indexed, when users report wrong languages, after CDN or platform changes and when performance differs by country.
Don't use it for hreflang design (hreflang-implementation) or market strategy (international-market-selection).
Inputs to ask for, in one message
- Domains, URL patterns and how locales are selected.
- CDN, hosting regions and caching rules.
- A crawl per locale, ideally from different regions.
- Search Console and Bing data per version or property.
- Core Web Vitals field data by country.
- Platform or framework details for routing and rendering.
Raw SKILL.md file
This is the exact file agents read, including the credit header and licence notice. Save it as international-technical-seo/SKILL.md.
--- name: international-technical-seo description: "Fix the technical layer of international sites: crawler access per locale from US IPs, forced IP and browser-language redirects replaced by banners, CDN caching by URL, crawlable language selectors, sitemaps per locale, default-locale duplicates, UTF-8 and non-Latin URLs, performance by country and Search Console and Bing properties per version. Use whenever someone mentions geo-redirects, IP redirects, international pages not indexed, wrong language served by CDN, language switcher SEO, locale-adaptive pages, international site speed or crawling multilingual sites." license: CC-BY-4.0 metadata: author: Afeez Adebayo author_url: https://afeezadebayo.com author_linkedin: https://www.linkedin.com/in/afeez-adebayo/ author_x: https://x.com/za_icon source: https://afeezadebayo.com/skills-md/marketing/international-seo/international-technical-seo/ category: marketing subcategory: international-seo version: "1.0.0" created: "2026-10-10" updated: "2026-10-10" --- # International Technical SEO International sites add technical failure modes that single-market sites never face: geo-redirects that stop Googlebot reaching other versions, CDNs serving cached pages in the wrong language, JavaScript language switchers crawlers can't follow, duplicate pages across markets, slow performance far from the origin server, character encoding errors and sitemaps that mix locales. Googlebot mostly crawls from US IP addresses, so anything that changes content by visitor location can hide versions from it. [Confirmed, Google locale-adaptive guidance] This skill audits and fixes the technical layer of international sites: crawling and rendering per locale, redirects and banners, caching, performance by region, encoding, sitemaps, canonicals and Search Console setup. ## Operating principles 1. **Separate URLs for each version.** Don't serve different languages on the same URL based on location or cookies. 2. **No forced redirects.** Suggest versions; never block crawlers or users from them. 3. **Cache by URL, not by visitor.** CDNs must not serve one locale's content to another. 4. **Measure performance where users are.** Field data by country shows real speed. 5. **Validate per locale.** Crawl and inspect each market, not just the default. ## Common international technical problems | Problem | Effect | Fix | |---|---|---| | IP-based redirects | Crawlers see only the US or default version | Remove forced redirects; use banners | | Accept-Language redirects | Same as above for crawlers without that header | Crawlable URLs with banners | | Locale chosen by cookie on one URL | Only one version indexed | Separate URLs per locale | | CDN caching ignoring locale | Wrong language served | Cache key per URL; avoid Vary on location unless needed | | JavaScript-only language switcher | Versions not discovered | Plain links in HTML | | Mixed-locale sitemaps with errors | Slow discovery | Sitemap per locale with hreflang if used | | Encoding problems | Garbled characters, broken URLs | UTF-8 everywhere; percent-encode non-ASCII URLs consistently | | Slow pages far from origin | Poor experience, weaker performance | CDN, edge caching, regional hosting where needed | | Duplicate default pages (/ and /en/) | Split signals | Choose one and redirect or canonicalise | ## When to use, and when not to Use it when launching locales, when versions aren't indexed, when users report wrong languages, after CDN or platform changes and when performance differs by country. Don't use it for hreflang design (`hreflang-implementation`) or market strategy (`international-market-selection`). ## Inputs to ask for, in one message 1. Domains, URL patterns and how locales are selected. 2. CDN, hosting regions and caching rules. 3. A crawl per locale, ideally from different regions. 4. Search Console and Bing data per version or property. 5. Core Web Vitals field data by country. 6. Platform or framework details for routing and rendering. ## Workflow ### Step 1. Test access as a crawler Fetch each locale from a US IP and with no Accept-Language header; confirm each URL returns its own content with 200. ### Step 2. Review redirects and banners List any location or language-based redirects; replace with suggestion banners and remembered choices. ### Step 3. Check caching Request the same URL from different regions and languages; confirm consistent content per URL. ### Step 4. Check discovery Language selector links in HTML, internal links within each locale, sitemaps per locale. ### Step 5. Check duplicates and canonicals Default locale duplication, parameter versions, self-canonicals per locale. ### Step 6. Check encoding and URLs UTF-8, consistent handling of translated slugs and non-Latin characters. ### Step 7. Check performance by country Core Web Vitals by country in CrUX or RUM; CDN coverage in key markets. ### Step 8. Set up properties Search Console and Bing Webmaster Tools properties per version (domain property plus folder views), and local engine tools where relevant. ## Test commands ```bash # Fetch a locale as Googlebot without Accept-Language curl -sIL -A "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" https://example.com/de/ | grep -iE "^HTTP|^location|content-language" # Fetch with a different Accept-Language to check for forced redirects curl -sIL -H "Accept-Language: fr-FR" https://example.com/de/ | grep -iE "^HTTP|^location" ``` Any redirect away from /de/ in either test is a problem to fix. ## CDN and caching rules | Rule | Why | |---|---| | Cache key includes the full URL path (locale folder) | Each locale cached separately | | Don't vary cached HTML by country or Accept-Language unless content truly differs on the same URL | Avoids serving the wrong language | | Exclude personalised banners from cached HTML, or render them client-side | Banners don't leak between users | | Purge all locales when shared templates change | Keeps versions consistent | | Serve from edges near key markets | Better speed for distant users | ## Sitemaps per locale - One sitemap (or set) per locale, referenced from a sitemap index. - Include only canonical, indexable URLs for that locale. - Add hreflang annotations in sitemaps if that is the chosen method. - Submit each locale's sitemap in the matching Search Console property and in Bing Webmaster Tools. ## Non-Latin and translated URLs - UTF-8 throughout pages, databases and headers. - Translated slugs are fine; keep them stable and consistent. - Expect percent-encoded URLs in logs and some tools; make sure links and hreflang use the same form everywhere. - For scripts like Chinese, Japanese or Arabic, decide between native-script slugs and transliterated or English slugs based on how users share links in that market. ## Performance by market Use field data (Chrome UX Report or your RUM tool) filtered by country. If a key market is much slower, check CDN coverage, image sizes, third-party scripts blocked or slow in that region (for example Google services in mainland China) and hosting distance. ## Launch checklist for a new locale - Locale URLs return 200 from a US IP with no Accept-Language header. - No forced redirects; banner tested. - Locale sitemap submitted; properties verified. - Language selector links present in server HTML. - CDN cache keys tested from two regions. - Core Web Vitals checked for the locale in field data after launch. ## Edge cases and judgement calls | Situation | What to do | |---|---| | Legal need to restrict content by country | Restrict at the point of purchase or action, and keep informational pages crawlable where lawful | | Locale-adaptive pages unavoidable | Follow Google's locale-adaptive guidance and expect weaker results than separate URLs | | China delivery | Mainland hosting or CDN, often with licensing requirements; specialist review | | Headless or JavaScript sites | Server-render locale content and links | | Multiple platforms per market | Align routing, hreflang and canonicals across platforms | ## Handoffs to related skills - hreflang: `hreflang-implementation` - Structure: `international-site-structure` - Targeting signals: `geo-language-targeting` - Local engines: `local-search-engines` - Rendering, redirects and speed: the Technical SEO `javascript-seo`, `redirects-status-codes` and `core-web-vitals` skills ## Worked example A travel company redirected visitors by IP: US visitors to /us/, UK to /uk/, everyone else to /int/. Google indexed only /us/ pages well, because Googlebot crawled from the US. The fix removed forced redirects, added a banner suggesting the local version, made the language selector plain links and set CDN cache keys per URL. Within two months /uk/ and /de/ pages were indexed and ranking in their markets, and bookings from organic search in the UK and Germany rose. ## Output format ``` # International technical review: <site>, <date> ## Crawler access per locale (tests and results) ## Redirects, banners and caching findings ## Discovery, duplicates and canonicals ## Encoding and URLs ## Performance by country ## Fixes with owners and tests ``` ## Common mistakes - Forced redirects by IP or browser language. - Locales served on one URL by cookie. - CDNs caching the wrong language. - JavaScript-only language switchers. - Testing only from the home country. ## Questions to ask before you recommend changes - How are locales chosen today, for users and crawlers? - Where are servers and CDN edges, and how is caching keyed? - Are there legal reasons to restrict content by country? ## Self-check before you answer - Can a crawler from the US reach every locale with 200? - Are redirects replaced with banners? - Is caching consistent per URL? - Is performance checked by country? ## Official documentation - Google: locale-adaptive pages: https://developers.google.com/search/docs/specialty/international/locale-adaptive-pages - Google: managing multi-regional and multilingual sites: https://developers.google.com/search/docs/specialty/international/managing-multi-regional-sites - Chrome UX Report (field data by country): https://developer.chrome.com/docs/crux --- Created by Afeez Adebayo, Marketing, SEO & Growth Expert Website: https://afeezadebayo.com LinkedIn: https://www.linkedin.com/in/afeez-adebayo/ X: https://x.com/za_icon Source: https://afeezadebayo.com/skills-md/marketing/international-seo/international-technical-seo/ Licence: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). You may copy, share and adapt this skill, including for commercial use, as long as you credit Afeez Adebayo and link to the source URL above. Keep this notice in any copy or adapted version.
Workflow
Step 1. Test access as a crawler
Fetch each locale from a US IP and with no Accept-Language header; confirm each URL returns its own content with 200.
Step 2. Review redirects and banners
List any location or language-based redirects; replace with suggestion banners and remembered choices.
Step 3. Check caching
Request the same URL from different regions and languages; confirm consistent content per URL.
Step 4. Check discovery
Language selector links in HTML, internal links within each locale, sitemaps per locale.
Step 5. Check duplicates and canonicals
Default locale duplication, parameter versions, self-canonicals per locale.
Step 6. Check encoding and URLs
UTF-8, consistent handling of translated slugs and non-Latin characters.
Step 7. Check performance by country
Core Web Vitals by country in CrUX or RUM; CDN coverage in key markets.
Step 8. Set up properties
Search Console and Bing Webmaster Tools properties per version (domain property plus folder views), and local engine tools where relevant.
Test commands
# Fetch a locale as Googlebot without Accept-Language
curl -sIL -A "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" https://example.com/de/ | grep -iE "^HTTP|^location|content-language"
# Fetch with a different Accept-Language to check for forced redirects
curl -sIL -H "Accept-Language: fr-FR" https://example.com/de/ | grep -iE "^HTTP|^location"Any redirect away from /de/ in either test is a problem to fix.
CDN and caching rules
| Rule | Why |
|---|---|
| Cache key includes the full URL path (locale folder) | Each locale cached separately |
| Don't vary cached HTML by country or Accept-Language unless content truly differs on the same URL | Avoids serving the wrong language |
| Exclude personalised banners from cached HTML, or render them client-side | Banners don't leak between users |
| Purge all locales when shared templates change | Keeps versions consistent |
| Serve from edges near key markets | Better speed for distant users |
Sitemaps per locale
- One sitemap (or set) per locale, referenced from a sitemap index.
- Include only canonical, indexable URLs for that locale.
- Add hreflang annotations in sitemaps if that is the chosen method.
- Submit each locale's sitemap in the matching Search Console property and in Bing Webmaster Tools.
Non-Latin and translated URLs
- UTF-8 throughout pages, databases and headers.
- Translated slugs are fine; keep them stable and consistent.
- Expect percent-encoded URLs in logs and some tools; make sure links and hreflang use the same form everywhere.
- For scripts like Chinese, Japanese or Arabic, decide between native-script slugs and transliterated or English slugs based on how users share links in that market.
Performance by market
Use field data (Chrome UX Report or your RUM tool) filtered by country. If a key market is much slower, check CDN coverage, image sizes, third-party scripts blocked or slow in that region (for example Google services in mainland China) and hosting distance.
Launch checklist for a new locale
- Locale URLs return 200 from a US IP with no Accept-Language header.
- No forced redirects; banner tested.
- Locale sitemap submitted; properties verified.
- Language selector links present in server HTML.
- CDN cache keys tested from two regions.
- Core Web Vitals checked for the locale in field data after launch.
Edge cases and judgement calls
| Situation | What to do |
|---|---|
| Legal need to restrict content by country | Restrict at the point of purchase or action, and keep informational pages crawlable where lawful |
| Locale-adaptive pages unavoidable | Follow Google's locale-adaptive guidance and expect weaker results than separate URLs |
| China delivery | Mainland hosting or CDN, often with licensing requirements; specialist review |
| Headless or JavaScript sites | Server-render locale content and links |
| Multiple platforms per market | Align routing, hreflang and canonicals across platforms |
Handoffs to related skills
- hreflang:
hreflang-implementation - Structure:
international-site-structure - Targeting signals:
geo-language-targeting - Local engines:
local-search-engines - Rendering, redirects and speed: the Technical SEO
javascript-seo,redirects-status-codesandcore-web-vitalsskills
Worked example
A travel company redirected visitors by IP: US visitors to /us/, UK to /uk/, everyone else to /int/. Google indexed only /us/ pages well, because Googlebot crawled from the US. The fix removed forced redirects, added a banner suggesting the local version, made the language selector plain links and set CDN cache keys per URL. Within two months /uk/ and /de/ pages were indexed and ranking in their markets, and bookings from organic search in the UK and Germany rose.
Output format
# International technical review: <site>, <date>
## Crawler access per locale (tests and results)
## Redirects, banners and caching findings
## Discovery, duplicates and canonicals
## Encoding and URLs
## Performance by country
## Fixes with owners and testsCommon mistakes
- Forced redirects by IP or browser language.
- Locales served on one URL by cookie.
- CDNs caching the wrong language.
- JavaScript-only language switchers.
- Testing only from the home country.
Questions to ask before you recommend changes
- How are locales chosen today, for users and crawlers?
- Where are servers and CDN edges, and how is caching keyed?
- Are there legal reasons to restrict content by country?
Self-check before you answer
- Can a crawler from the US reach every locale with 200?
- Are redirects replaced with banners?
- Is caching consistent per URL?
- Is performance checked by country?
Official documentation
- Google: locale-adaptive pages: https://developers.google.com/search/docs/specialty/international/locale-adaptive-pages
- Google: managing multi-regional and multilingual sites: https://developers.google.com/search/docs/specialty/international/managing-multi-regional-sites
- Chrome UX Report (field data by country): https://developer.chrome.com/docs/crux
On this page
- When to use this skill, and when not to
- Example prompts
- Example output
- What the agent needs from you
- How this skill hands off to related skills
- How to run International Technical SEO step by step
- Situations this skill handles
- What makes this skill different
- Practical tips from real projects
- Frequently asked questions
- Changelog
When to use this skill, and when not to
Use it when launching locales, when versions aren’t indexed, when users report wrong languages, after CDN or platform changes and when performance differs by country.
International sites have failure modes single-market sites never face. Googlebot mostly crawls from US IP addresses, so anything that changes content by visitor location can hide versions from it. CDNs can serve one locale’s cached page to another, and JavaScript-only language switchers leave whole markets undiscovered.
Don’t use it for hreflang design (use hreflang Implementation) or market strategy (use Market Selection).
Example prompts
- “We redirect visitors by IP. Is that hurting us?”
- “Our German pages aren’t indexed. Check our setup.”
- “Users see the wrong language from our CDN. Fix caching.”
- “Is our language switcher crawlable?”
- “Why is our site slow in Australia?”
Example output
The skill returns a fixed structure. A shortened example for an imaginary site:
# International technical review: example travel company, 11 October 2026 | Test | Result | Fix | | /uk/ fetched as Googlebot from US | 302 to /us/ | Remove forced IP redirect; add banner | | /de/ with Accept-Language fr | 302 to /fr/ | Same | | CDN cache key | Ignores locale cookie | Key by URL path | | Language selector | JavaScript only | Plain HTML links | ## Result after fixes: /uk/ and /de/ indexed and ranking within 2 months
Every locale is tested as a crawler would see it, from a US IP with no language header, because that is how most of Google’s crawling happens.
What the agent needs from you
The skill asks for domains, URL patterns and how locales are selected, CDN, hosting regions and caching rules, a crawl per locale, Search Console and Bing data per version, Core Web Vitals field data by country and platform or framework details for routing and rendering.
How this skill hands off to related skills
Technical work connects to structure and the Technical SEO set: annotations in hreflang Implementation, URL design in Site Structure, signals in Targeting Signals, local engines in Local Search Engines, and rendering, redirects and speed in the Technical SEO JavaScript SEO, Redirects and Core Web Vitals skills.
How to run International Technical SEO step by step
- Install the skill as
international-technical-seo/SKILL.md. - Describe locale selection, CDN and hosting.
- Run the curl tests for each locale.
- Crawl each locale and export Search Console data per version.
- Review findings on redirects, caching, discovery and speed.
- Fix with owners and tests, then re-run the checks.
Situations this skill handles
International technical problems recur. The skill handles these situations:
| Situation | What the skill does |
|---|---|
| Legal need to restrict by country | Restricts at purchase, keeps information pages crawlable where lawful |
| Locale-adaptive pages unavoidable | Follows Google’s guidance and sets expectations |
| China delivery | Mainland hosting or CDN with specialist review |
| Headless or JavaScript sites | Server-renders locale content and links |
| Multiple platforms per market | Aligns routing, hreflang and canonicals |
| Root and /en/ duplicate | Chooses one and redirects or canonicalises |
What makes this skill different
Most international SEO advice skips the technical layer or reduces it to hreflang. This skill tests what crawlers actually receive for every locale, removes forced redirects, fixes caching and discovery and measures speed where users are.
It gives developers concrete tests (curl commands, regional fetches, cache checks) so fixes can be verified, not assumed.
Practical tips from real projects
- Separate URLs for every version.
- No forced redirects.
- Cache by URL.
- Test from where crawlers and users are.
A worked example: a travel company redirected visitors by IP, sending US visitors to /us/, UK visitors to /uk/ and everyone else to /int/. Google indexed only /us/ pages well because Googlebot crawled from the US. Removing forced redirects, adding a banner suggesting the local version, making the language selector plain links and setting CDN cache keys per URL got /uk/ and /de/ indexed and ranking within two months, and organic bookings from the UK and Germany rose.
Common problems have known fixes: IP and Accept-Language redirects replaced with banners; one URL switching locales by cookie replaced with separate URLs; CDN caching keyed by URL; JavaScript-only switchers replaced with HTML links; error-prone mixed sitemaps split per locale; encoding issues solved with UTF-8 throughout; slow distant markets helped by CDN edges and regional hosting; and duplicate default pages consolidated.
CDN rules keep locales separate: cache keys include the full path, cached HTML doesn’t vary by country unless content truly differs on the same URL, personalised banners stay out of cached HTML, all locales are purged when shared templates change and edges sit near key markets.
Sitemaps per locale, referenced from an index and submitted in matching Search Console properties and Bing Webmaster Tools, speed discovery and make indexing visible market by market.
Non-Latin and translated URLs work fine with UTF-8 everywhere, as long as links, hreflang and sitemaps use the same form. For Chinese, Japanese or Arabic, the choice between native-script and transliterated slugs depends on how users share links in that market.
Performance is checked by country with field data; slow markets often point to missing CDN coverage, heavy images or third-party scripts blocked or slow in that region, such as Google services in mainland China.
A launch checklist for each new locale confirms 200 responses from a US IP without a language header, no forced redirects, a submitted sitemap, crawlable selector links, tested cache keys and field data checked after launch.
Search Console and Bing properties per version complete the setup: a domain property for the whole site plus folder properties for each locale, each with its own sitemap, so market teams see their own indexing and performance.
Re-test after every CDN or routing change.
Frequently asked questions
Are IP-based redirects bad for SEO?
Forced redirects can stop Googlebot, which mostly crawls from the US, from reaching other versions. Use suggestion banners instead.
What are locale-adaptive pages?
Pages that change content on the same URL based on location or language. Google supports them with caveats but recommends separate URLs.
How should a CDN cache international pages?
By URL, so each locale folder is cached separately, without varying cached HTML by location unless content truly differs on the same URL.
Does the language selector need to be crawlable?
Yes. Plain HTML links to equivalent pages let crawlers discover every version.
Are non-Latin URLs a problem?
No, if UTF-8 is used everywhere and links, hreflang and sitemaps use the same form of each URL.
How do I check speed by country?
Use field data from the Chrome UX Report or your own real-user monitoring filtered by country.
Changelog
- 1.0.0, 10 October 2026: first release.
Use, adapt and share this skill under CC BY 4.0: credit Afeez Adebayo and link to this page.
All International SEO skills
- International SEO Audit
- International Market Selection and Prioritisation
- International Site Structure: ccTLDs, Subfolders and Subdomains
- hreflang Implementation and Debugging
- Localisation and Translation Workflows for SEO
- Multilingual Keyword Research
- Country and Language Targeting Signals
- Local Search Engines: Baidu, Yandex, Naver and Seznam
- International Content Strategy
- International Link Building and Digital PR
- International Expansion and Site Migrations
- International SEO Reporting by Market
