Originally published at thatdevpro.com. This article is part of the 14-tier Engine Optimization stack from ThatDevPro, an SDVOSB-certified veteran-owned web + AI engineering studio. You are reading the Dev.to republish; the canonical source is on ThatDevPro.com. Source repo for the AI-citation surfaces: github.com/Janady13/aio-surfaces.
Tier Explanation: Enables global scaling while preserving local relevance and authority. In 2026, hreflang correctness, ccTLD/subdomain strategy, currency localization, cultural adaptation, and country-specific entity signals are required for international visibility. AI engines also weight regional authority signals heavily. All actions execute on website templates, schema, sitemaps, and supporting infrastructure. Tiers 1–11 must be in place first.
Related Frameworks
This tier implements the following framework documents in the /Framework/ library. Consult them for canonical reference, audit rubrics, and detailed implementation patterns.
-
framework-international.md— hreflang, ccTLD vs subfolder, multilingual content -
framework-technicalseo.md— hreflang implementation in sitemap or HTTP headers -
framework-localseo.md— Per-region GBP and citations if multi-country presence
A. International Foundation (3)
1. IPO — International Page Optimization
- Create country-specific page versions with localized content, currency, and cultural references
- Use proper hreflang tags in
<head>of every internationalized page - Maintain consistent URL structure:
/en-us/,/en-gb/,/es-mx/,/de-de/ - Add country/language switcher in header — never auto-redirect based on IP (hurts UX and crawling)
- Localize all metadata: title tags, meta descriptions, Open Graph, Twitter Cards
- Use country-appropriate imagery, not generic stock photos that read as foreign
- Include local phone numbers, addresses, and business hours per region
- Track regional traffic and conversion separately to inform localization investment
Code Example — Internationalized page with country switcher:
<head>
<link rel="alternate" hreflang="en-us" href="https://thatdeveloperguy.com/en-us/" />
<link rel="alternate" hreflang="en-gb" href="https://thatdeveloperguy.com/en-gb/" />
<link rel="alternate" hreflang="es-mx" href="https://thatdeveloperguy.com/es-mx/" />
<link rel="alternate" hreflang="x-default" href="https://thatdeveloperguy.com/" />
<meta name="language" content="en-US">
</head>
<header>
<nav class="region-switcher" aria-label="Choose your region">
<button id="region-toggle" aria-expanded="false">🌐 United States (English)</button>
<ul id="region-list" hidden>
<li><a href="/en-us/" hreflang="en-us">🇺🇸 United States (English)</a></li>
<li><a href="/en-gb/" hreflang="en-gb">🇬🇧 United Kingdom (English)</a></li>
<li><a href="/en-ca/" hreflang="en-ca">🇨🇦 Canada (English)</a></li>
<li><a href="/es-mx/" hreflang="es-mx">🇲🇽 México (Español)</a></li>
<li><a href="/de-de/" hreflang="de-de">🇩🇪 Deutschland (Deutsch)</a></li>
</ul>
</nav>
</header>
- Validation: Hreflang validates with zero errors in GSC, region switcher prominent in header, regional traffic tracked separately
2. MLO — Multilingual Optimization (renamed from Multilingual SEO)
- Use professional human translators for primary content — avoid pure machine translation
- Build separate URL paths per language (
/en/,/es/,/fr/) — never use cookie-based language switching only - Add
langattribute on<html>and uselangattribute on inline elements with mixed languages - Translate all UI elements: buttons, forms, error messages, alt text
- Localize date formats, number formats, and units of measurement
- Adapt content for cultural context, not just translation (idioms, examples, references)
- Build language-specific FAQ sections addressing region-specific questions
- Track per-language SEO metrics: rankings, traffic, conversions
Code Example — Multi-language content with proper lang attributes:
<html lang="en-US">
<head>
<title>14-Tier AI Search Optimization Framework</title>
</head>
<body>
<article>
<h1>The Complete Framework</h1>
<p>Used by businesses worldwide to dominate AI search results.</p>
<blockquote lang="es-MX">
<p>"El marco más completo que hemos implementado." — Cliente en CDMX</p>
</blockquote>
<blockquote lang="de-DE">
<p>"Das umfassendste Framework, das wir je gesehen haben." — Klient in Berlin</p>
</blockquote>
</article>
</body>
</html>
-
Validation: Professional translations on all primary content,
langattributes correct sitewide, per-language metrics tracked
3. ISC — International Schema (renamed from International Schema)
- Add localized
OrganizationandLocalBusinessschema per country office or operating region - Use
inLanguageproperty on Article and WebPage schema to declare content language - Add currency-specific pricing in Product schema with
priceCurrency(ISO 4217) - Use
addressCountrywith ISO 3166-1 alpha-2 codes consistently - Build per-country
Personschema with localized credentials andnationality - Add
availableLanguageto Service schema for multilingual service offerings - Use proper region codes in geo-targeting:
addressRegionfollows local conventions - Validate schema across all locale variants — translation errors break schema parsing
Code Example — Multi-region Organization schema:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Organization",
"@id": "https://thatdeveloperguy.com/#organization",
"name": "ThatDeveloperGuy",
"url": "https://thatdeveloperguy.com",
"subOrganization": [
{
"@type": "LocalBusiness",
"@id": "https://thatdeveloperguy.com/locations/us/#localbusiness",
"name": "ThatDeveloperGuy USA",
"address": {
"@type": "PostalAddress",
"streetAddress": "463 State Highway 76",
"addressLocality": "Cassville",
"addressRegion": "MO",
"postalCode": "65625",
"addressCountry": "US"
},
"availableLanguage": ["en-US", "es-MX"],
"priceRange": "$$",
"currenciesAccepted": "USD"
},
{
"@type": "LocalBusiness",
"@id": "https://thatdeveloperguy.com/locations/uk/#localbusiness",
"name": "ThatDeveloperGuy UK",
"address": {
"@type": "PostalAddress",
"addressLocality": "London",
"addressCountry": "GB"
},
"availableLanguage": ["en-GB"],
"currenciesAccepted": "GBP"
}
]
}
]
}
</script>
-
Validation: Per-country schema validates, currency codes correct,
availableLanguagematches actual support
B. Geographic & Domain Strategy (3)
4. ISM — International Sitemap (renamed)
- Generate separate sitemaps per language/country variant
- Build sitemap index file referencing all regional sitemaps
- Submit each regional sitemap individually in GSC and Bing Webmaster Tools
- Include hreflang annotations within sitemaps as alternate URLs
- Update sitemaps automatically when content publishes or updates per region
- Use
<lastmod>accurately per regional version (translation update changes lastmod) - Validate sitemap XML structure before submission
- Monitor sitemap indexation rate per region — submit fresh sitemaps when crawl errors appear
Code Example — Sitemap index with regional sitemaps:
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://thatdeveloperguy.com/sitemap-en-us.xml</loc>
<lastmod>2026-04-29</lastmod>
</sitemap>
<sitemap>
<loc>https://thatdeveloperguy.com/sitemap-en-gb.xml</loc>
<lastmod>2026-04-29</lastmod>
</sitemap>
<sitemap>
<loc>https://thatdeveloperguy.com/sitemap-es-mx.xml</loc>
<lastmod>2026-04-29</lastmod>
</sitemap>
<sitemap>
<loc>https://thatdeveloperguy.com/sitemap-de-de.xml</loc>
<lastmod>2026-04-29</lastmod>
</sitemap>
</sitemapindex>
<?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://thatdeveloperguy.com/en-us/services/audit/</loc>
<xhtml:link rel="alternate" hreflang="en-us" href="https://thatdeveloperguy.com/en-us/services/audit/"/>
<xhtml:link rel="alternate" hreflang="en-gb" href="https://thatdeveloperguy.com/en-gb/services/audit/"/>
<xhtml:link rel="alternate" hreflang="es-mx" href="https://thatdeveloperguy.com/es-mx/services/audit/"/>
<xhtml:link rel="alternate" hreflang="x-default" href="https://thatdeveloperguy.com/services/audit/"/>
<lastmod>2026-04-29</lastmod>
</url>
</urlset>
- Validation: All regional sitemaps submitted and indexed, hreflang annotations within sitemaps validate, indexation rate above 90% per region
5. CCD — Country Code Domain Strategy (renamed)
- Choose between ccTLD (.co.uk, .de), subdirectory (/uk/, /de/), or subdomain (uk., de.) based on:
- ccTLDs: Strongest geo-targeting, separate authority per domain, expensive to manage at scale
- Subdirectories: Easiest to manage, shared authority, requires manual GSC geo-targeting
- Subdomains: Middle ground, treated as separate sites by Google
- Set proper geotargeting in GSC for subdirectory or subdomain strategy
- Maintain consistent NAP and entity signals across regional variants
- Build separate GSC and analytics properties per regional domain/path
- Localize backlink building per region — UK links matter for .co.uk, German links for .de
- Avoid duplicate content across regions via proper canonical and hreflang strategy
- Document domain strategy decision rationale for team alignment
Code Example — Subdirectory strategy with GSC verification:
<!-- All variants verified in GSC, geotargeting set per subdirectory -->
<!-- /en-us/ → United States targeting -->
<!-- /en-gb/ → United Kingdom targeting -->
<!-- /de-de/ → Germany targeting -->
<!-- Canonical points to language-specific URL -->
<link rel="canonical" href="https://thatdeveloperguy.com/en-gb/services/audit/" />
<!-- Hreflang lists all alternates -->
<link rel="alternate" hreflang="en-us" href="https://thatdeveloperguy.com/en-us/services/audit/" />
<link rel="alternate" hreflang="en-gb" href="https://thatdeveloperguy.com/en-gb/services/audit/" />
<link rel="alternate" hreflang="de-de" href="https://thatdeveloperguy.com/de-de/services/audit/" />
<link rel="alternate" hreflang="x-default" href="https://thatdeveloperguy.com/services/audit/" />
- Validation: Domain strategy documented, GSC geo-targeting set per region, regional GSC properties verified, no duplicate content flags
6. GTR — Geotargeting (new)
- Use server-side geo-IP detection only as a hint — display banner offering localized version, never force redirect
- Honor user's manual region selection via cookie that overrides geo-IP
- Use Cloudflare or similar CDN's geo-routing for performance, not content selection
- Build region-specific landing pages targeting "[service] in [country/region]" queries
- Use
Placeschema withcontainedInPlaceto declare regional service availability - Track geo-IP accuracy — VPN users and travelers can throw off targeting
- Test geo-targeting from multiple regions using VPN or services like BrowserStack
- Monitor regional rankings via location-aware rank tracking tools
Code Example — Soft geo-suggestion banner:
<aside id="region-suggestion" class="region-banner" hidden>
<p>
👋 It looks like you're visiting from the <strong id="detected-country">United Kingdom</strong>.
Would you like to view our <a href="/en-gb/" id="suggested-region-link">UK site</a> with GBP pricing?
</p>
<button onclick="dismissRegionSuggestion()">Stay on US Site</button>
<button onclick="acceptRegionSuggestion()">Yes, Switch to UK</button>
</aside>
<script>
async function checkRegion() {
// Don't show if user already chose a region
if (localStorage.getItem('region_preference')) return;
const geo = await fetch('/api/geo/detect').then(r => r.json());
const currentPath = window.location.pathname;
// Only suggest if user is on different region's site
if (geo.suggested_path && !currentPath.startsWith(geo.suggested_path)) {
document.getElementById('detected-country').textContent = geo.country_name;
document.getElementById('suggested-region-link').href = geo.suggested_path;
document.getElementById('region-suggestion').hidden = false;
}
}
function dismissRegionSuggestion() {
localStorage.setItem('region_preference', 'stay');
document.getElementById('region-suggestion').hidden = true;
}
function acceptRegionSuggestion() {
localStorage.setItem('region_preference', 'auto');
window.location.href = document.getElementById('suggested-region-link').href;
}
checkRegion();
</script>
- Validation: Soft suggestions never force redirects, user region preferences honored, geo-targeting accuracy tested from 5+ regions
C. Localization & Cultural (2)
7. CUL — Currency & Localization (new)
- Display prices in user's local currency with accurate real-time conversion
- Use proper currency symbols, decimal separators, and number formats per locale
- Localize date formats: MM/DD/YYYY (US), DD/MM/YYYY (UK/EU), YYYY-MM-DD (ISO/Asia)
- Adapt units of measurement: imperial vs metric, gallons vs liters, miles vs kilometers
- Localize phone number formats with proper country codes (+1 vs +44 vs +49)
- Adapt time zones in event listings, business hours, and webinar schedules
- Handle right-to-left languages (Arabic, Hebrew) with proper
dir="rtl"attribute - Localize legal pages per regional requirements (GDPR, CCPA, UK Data Protection Act)
Code Example — Localized pricing display:
<section class="pricing-block" data-product="audit">
<h2>14-Tier Audit</h2>
<p class="price" id="localized-price">$997 USD</p>
<p class="local-equivalent" id="local-equivalent" hidden></p>
<button class="btn-primary">Buy Now</button>
</section>
<script>
const priceUSD = 997;
const userLocale = navigator.language || 'en-US';
const userRegion = userLocale.split('-')[1] || 'US';
const currencyMap = {
'GB': {currency: 'GBP', rate: 0.79, symbol: '£'},
'CA': {currency: 'CAD', rate: 1.35, symbol: 'C$'},
'MX': {currency: 'MXN', rate: 17.5, symbol: 'MX$'},
'DE': {currency: 'EUR', rate: 0.92, symbol: '€'}
};
if (currencyMap[userRegion]) {
const localCurrency = currencyMap[userRegion];
const localPrice = (priceUSD * localCurrency.rate).toFixed(2);
document.getElementById('local-equivalent').textContent =
`≈ ${localCurrency.symbol}${localPrice} ${localCurrency.currency}`;
document.getElementById('local-equivalent').hidden = false;
}
// Format using Intl
const formatter = new Intl.NumberFormat(userLocale, {
style: 'currency',
currency: 'USD'
});
document.getElementById('localized-price').textContent = formatter.format(priceUSD) + ' USD';
</script>
- Validation: Currency conversions accurate within 1%, number/date formats match locale conventions, RTL support tested if applicable
8. TCM — Translation & Cultural Management (new)
- Hire native-speaker translators or use professional translation services (Smartling, Lokalise, Phrase)
- Avoid pure machine translation for primary content — Google penalizes thin translations
- Adapt cultural references: examples, idioms, holidays, business norms
- Translate testimonials and case studies from local clients (more credible than translated US case studies)
- Build per-region content marketing strategies — German B2B differs from US B2B
- Localize SEO keyword research per region — direct translations rarely match search volume
- Adapt visual design: colors, imagery, layouts based on cultural preferences
- Test localized pages with native speakers before launch
Code Example — Locally-relevant testimonials per region:
<section class="testimonials" data-region="en-gb">
<!-- UK testimonials shown only on /en-gb/ pages -->
<article class="testimonial">
<blockquote lang="en-GB">
"ThatDeveloperGuy transformed our Manchester firm's online presence.
We're now ranking nationwide for our key terms — bloody brilliant work."
</blockquote>
<cite>— Sarah Mitchell, Director, Mitchell & Co (Manchester, UK)</cite>
</article>
</section>
<section class="testimonials" data-region="es-mx" hidden>
<!-- Mexico testimonials shown only on /es-mx/ pages -->
<article class="testimonial">
<blockquote lang="es-MX">
"Joseph y su equipo entendieron perfectamente nuestro mercado en CDMX.
Resultados increíbles en solo 90 días."
</blockquote>
<cite>— Carlos Hernández, Director, Hernández Consultores (CDMX, MX)</cite>
</article>
</section>
<script>
// Show testimonials matching current page's region
const pageRegion = document.documentElement.lang;
document.querySelectorAll('[data-region]').forEach(section => {
section.hidden = section.dataset.region !== pageRegion;
});
</script>
- Validation: Native-speaker translations on all primary content, region-specific testimonials displayed, native-speaker QA reviews completed
Summary
- Total items: 8
- Sub-clusters: 3 (International Foundation, Geographic & Domain Strategy, Localization & Cultural)
- Format: Each item includes 7–8 implementation steps, a code example, and a validation criterion
- Net change from original: 0 dropped, 3 added (GTR, CUL, TCM), 5 renamed for consistent 3-letter codes
- Position in stack: Global expansion tier — depends on Tiers 1–11, enables international scale while preserving local authority
About this series
This is one of 14 articles in ThatDevPro's Engine Optimization stack — a productized SEO + AEO + AIO + GEO service. Each tier is a self-contained framework with concrete checklists, validation steps, and code patterns.
Canonical source for this article: https://www.thatdevpro.com/insights/seo-tier-12-international/
The 14-tier series:
- Tier 1 — Foundation
- Tier 2 — Search Visibility
- Tier 3 — AI Domination
- Tier 4 — Entity and Authority
- Tier 5 — Local Domination
- Tier 6 — Content and Multimedia
- Tier 7 — Social and Community
- Tier 8 — Data, Analytics, Conversion
- Tier 9 — Monitoring and Intelligence
- Tier 10 — Workflow and Operations
- Tier 11 — Marketplace and Retail
- Tier 12 — International
- Tier 14 — Advanced and Immersive
Tier 13 is retired.
Need this implemented on your site? ThatDevPro ships the full 14-tier stack as a productized service. SDVOSB-certified veteran-owned. Cassville, Missouri. See the Engine Optimization service.
Open-source tooling powering this series:
- aio-surfaces — Python toolkit (MIT) for generating llms.txt + aeo.json + entity.json + brand.json
- llms.txt generator — live Hugging Face Space
Top comments (0)