International SEO Checklist

A build-and-launch international SEO checklist — URL structure, hreflang, geotargeting after the GSC deprecation, crawlable switchers, and duplicate-content handling.

First published: Jul 2, 2026 · Last updated: Jul 14, 2026 · Advanced
demand #9 in International SEO#278 on the site

This is the build/launch checklist for a site that targets more than one country and/or language — the sequence to work through when setting one up, as opposed to auditing one that's already live. Decide your URL structure once and apply it consistently (ccTLD vs. subdomain vs. subdirectory; Google marks URL-parameter language switching 'Not recommended'). Implement hreflang with self-references, return tags, and x-default in whichever delivery method fits your stack — HTML head, HTTP header, and XML sitemap are equivalent to Google. Localize, don't machine-translate. Know that the GSC International Targeting report was fully removed in September 2022, so country targeting is now inferred from ccTLD + hreflang + on-page + link signals with no manual override. Make language/currency switchers real crawlable links, never JS-only dropdowns, and never auto-redirect by IP. Near-identical regional variants need canonical AND hreflang together, not canonical alone. Bing weights the content-language meta tag over hreflang and appears to have removed its own Geo Targeting feature.

TL;DR — This is the build/launch sequence, not an audit. (1) URL structure: ccTLD (strongest country signal, one country each, most overhead), subdomain, or subdirectory (easiest, most common) — Google marks the URL-parameter approach “Not recommended.” Pick one, apply consistently. (2) hreflang: self-reference, reciprocal return tags, x-default, valid ISO codes; HTML head, HTTP header, and XML sitemap are equivalent delivery methods — choose for your stack, sitemap scales best. (3) Localize, don’t machine-translate. (4) Geotargeting: the GSC International Targeting report was fully removed September 22, 2022 for all TLD types — there is no manual country target anymore; ccTLD + hreflang + on-page + link locale is what Google infers from now. (5) Switchers must be crawlable <a href> links, never JS-only, and don’t auto-redirect by IP. (6) Near- identical regional variants: canonical + hreflang together, and Google may still consolidate them anyway. (7) Validate reciprocity, codes, x-default, and rendered-head placement before and after launch. Bing weights content-language over hreflang and appears to have removed its own Geo Targeting feature.

Evidence for this claim Google recommends distinct URLs for language versions and documents ccTLD, subdomain, and subdirectory structures while marking URL parameters as not recommended. Scope: Google Search international URL guidance. Confidence: high · Verified: Google: Locale-specific URLs Evidence for this claim Google recommends hreflang for distinct language URLs, warns against automatic language redirects, and recommends crawlable links between versions. Scope: Google Search multilingual-site discovery and switching guidance. Confidence: high · Verified: Google: Managing multilingual versions

How this differs from the audit

The international SEO audit is a diagnostic methodology — how you find what’s broken on a site that already has international SEO live, complete with the cluster-graph tooling and my 374,756-domain hreflang study’s error breakdown. This checklist is the other half: the sequence I work through when setting up or reviewing a new build. So I’ll keep the hreflang error-frequency tables and tool walkthroughs over there and stay action-oriented here, and I’ll route conceptual depth to the international SEO hub rather than re-deriving it.

Step 1 — Choose your URL structure

Google’s own documentation lays out the structures with explicit pros and cons, and it’s worth working from their table rather than folklore:

StructureExamplePros (Google’s words)Cons (Google’s words)
ccTLDexample.de”Clear geotargeting”; “Server location irrelevant""Expensive (can have limited availability)”; “Can only target a single country”
Subdomain + gTLDde.example.com”Easy to set up”; “Easy separation of sites""Users might not recognize geotargeting from the URL alone”
Subdirectory + gTLDexample.com/de/”Easy to set up”; “Low maintenance (same host)""Single server location”; “Separation of sites harder”
URL parametersexample.com?loc=de“Not recommended”

The ccTLD is still the strongest country signal Google has — its own doc says “Country-specific domains (ccTLDs) provide a strong signal to both users and search engines about the target country of a website.” But note the fourth row: the URL-parameter approach the brief for this topic sometimes gets described as a “gTLD + language param” option is, in Google’s own framing, the thing to avoid. Don’t put the locale in a query string.

A caveat on ccTLDs specifically: the automatic ranking benefit they once carried is being phased down (Gary Illyes has said as much — see the hub for the LDCP-fading discussion). ccTLD is still the clearest country signal, but don’t treat it as a guaranteed ranking edge. My own default, elsewhere on this site, is subdirectories for most sites — but the real rule here is decide once and apply it consistently, because inconsistency across signals is exactly what an audit later has to untangle.

Step 2 — Implement hreflang correctly

Four things, and then hand off to the deep dives:

  • Self-reference. Each version’s hreflang set should list every version including itself. Google’s docs frame self-reference as part of the standard instruction; Mueller has separately called it “optional” in practice — so there’s real tension between the doc phrasing and his looser public statements. I include the self-reference because it’s cheap insurance and matches the documentation.
  • Return tags (reciprocity). This is the one that actually breaks sets. Google: “If page X links to page Y, page Y must link back to page X. If this is not the case for all pages that use hreflang annotations, those annotations may be ignored or not interpreted correctly.”
  • x-default. The fallback for users whose language/region you don’t explicitly cover. Depth in x-default hreflang.
  • Valid ISO codes. Language codes (ISO 639-1) and optional region codes (ISO 3166-1 Alpha 2). en-uk is wrong; it’s en-gb. Wrong codes silently void the annotation.

Delivery method — pick one, be consistent. hreflang can live in the HTML head, an HTTP header (for non-HTML files like PDFs), or an XML sitemap. Google treats all three as equivalent — there’s no speed or priority difference — so choose based on your stack. At scale, and especially for mixed ccTLD/subdirectory setups, the XML sitemap is usually the most maintainable place to manage it centrally. The full tag mechanics live in hreflang.

Step 3 — Localize, don’t just translate

One paragraph, because there’s a whole article on it. Machine-translating your existing pages and shipping them unedited is the failure mode. Real localization adapts currency, units, examples, imagery, and product mix to the market — and often starts from market-specific keyword research rather than translating your existing keywords. Deep dive: translation vs. localization. Checklist item: no unedited machine translation.

Step 4 — Geotargeting: what GSC can and can’t do anymore

This is where a lot of published checklists are simply out of date. The Google Search Console International Targeting report — the setting where you could manually point a subdirectory or subdomain at a country — was deprecated on September 22, 2022, and it’s gone for every TLD type. Google’s notice: “The International Targeting report has been deprecated. Google will continue to support and use hreflang tags on your pages.” The reason given: the country-targeting setting “was determined to have little value for the ecosystem, and is no longer supported.”

So the framing you’ll still see — “ccTLDs are automatic, but subdirectories and subdomains need the manual GSC setting” — describes how it used to work, not a choice you have today. There is no manual country target anywhere in Search Console anymore. Google now infers geotargeting entirely from:

  • the ccTLD, if you have one (still automatic, still the strongest signal);
  • hreflang annotations;
  • on-page signals — language of the visible content, currency, addresses, phone formats;
  • the locale of your inbound links.

The checklist item is therefore not “set your country in GSC.” It’s “make sure your ccTLD, hreflang, on-page signals, and link locale all agree,” because agreement is what Google reads now that there’s no override.

Step 5 — Make switchers crawlable

Language and currency switchers have to be real, crawlable hyperlinks — not JavaScript-only dropdowns or client-side route changes with no real href. Google’s own guidance is explicit: “Consider adding hyperlinks to other language versions of a page.” A switcher built as JS state with no crawlable link risks Google never discovering the alternate versions through that path. (Google does render JS and does crawl without setting an Accept-Language header, but a mechanism with no real <a href> is the fragile case.)

And don’t force-redirect: “Avoid automatically redirecting users from one language version of a site to a different language version of a site.” Auto-redirecting by IP or browser language traps users (and Googlebot, which crawls from the US) in the wrong version. Give everyone a visible, clickable path to every version and let them choose. This is the same JS-rendering risk the audit article documents for hreflang itself — same logic, applied to the switcher.

Step 6 — Handle near-duplicate content across variants

If you serve near-identical content in the same language for different regions — the classic en-us / en-gb pages that are 95% the same — Google may treat them as duplicates. The fix is canonical and hreflang together, per Google: “pick a preferred version and use the rel="canonical" element and hreflang tags to make sure that the correct language or regional URL is served to searchers.”

Evidence for this claim For similar same-language regional variants, Google recommends selecting a preferred version and using canonical plus hreflang; fully translated pages are a different case. Scope: international, multilingual and multi-regional websites and market research as applicable Confidence: high · Verified: Managing multi-regional and multilingual sites

The nuance that matters: canonical alone would drop the regional version from indexing entirely — you need both. And even done correctly, Google may still fold near-identical hreflang’d pages into one canonical and just swap the URL shown in the SERP (Mueller has confirmed this for cases like fr-fr / fr-be). hreflang doesn’t guarantee separate indexing; it helps serve the right existing version.

Step 7 — Validate before and after launch

Keep this short — the audit article has the full methodology and the nine-error breakdown from my hreflang study. The pre/post-launch essentials:

  • Return tags present on every pair (the most common functional break).
  • Valid language/region codes (ISO 639-1 / ISO 3166-1 Alpha 2).
  • Self-reference present in each set.
  • x-default present.
  • Tags in the rendered <head>, not injected mid-<body> by JS and not below the head where they’re invalid.
  • Verify the indexed URL per locale with GSC URL Inspection — confirm Google actually indexed the version you intended for that market.

Bing-specific notes

Two things diverge from Google:

  • Bing weights the Content-Language meta tag / HTTP header more heavily than hreflang. Fabrice Canel of Bing has put it directly: “hreflang is indeed a far weaker signal than content-language at Bing.” Bing does read hreflang — just weakly — and rounds out its country understanding with ccTLD, server location, body-text language, and inbound-link locale. If Bing is a meaningful channel, set content-language explicitly.
  • Bing’s own Geo Targeting feature appears to have been removed. The Geo Targeting control in the old Bing Webmaster Tools was not carried into the current UI. Bing’s public guidance now points to signaling geography via HTML meta tags / HTTP headers instead. (I flag this as reported-not-certain — see the note under the Quotes tab — because the primary source resists automated verification. Either way, don’t build a checklist step around a Bing dashboard setting; use content-language and on-page signals.)

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin an expert quote first.