# Hyperflow Locale-Specific Domains

**Webflow localization is very useful, but it can only deliver the site's localed content in a locale-specific path structure.**

For example, a site with English as the primary locale, and French and German as alternate locales might be delivered as;&#x20;

| Locale               | Homepage | e.g. Path   | e.g. Localized Path |
| -------------------- | -------- | ----------- | ------------------- |
| English ( primary )  | /        | /contact    | /contact            |
| French ( alternate ) | /fr      | /fr/contact | /fr/contactez-nous  |
| German ( alternate ) | /de      | /de/contact | /de/kontakt         |

This works and is SEO friendly, but it loses the benefit of a Country-Code Top-Level Domain ( ccTLD ) which has an intrinsic locale&#x20;

{% hint style="success" %}
Websites utilizing ccTLDs often experience better rankings in country-specific search results. For example, a `.fr` domain is more likely to rank higher in searches conducted from France compared to a generic `.com` domain, assuming other SEO factors are equal.
{% endhint %}

Ideally this makes more sense for some sites;&#x20;

<table><thead><tr><th width="176">Locale</th><th>e.g. Path</th><th>e.g. Localized Path</th></tr></thead><tbody><tr><td>English ( primary )</td><td>https://www.mysite.com/contact</td><td>https://www.mysite.com/contact</td></tr><tr><td>French ( alternate )</td><td>https://www.mysite.fr/contact</td><td>https://www.mysite.fr/contactez-nous</td></tr><tr><td>German ( alternate )</td><td>https://www.mysite.de/contact</td><td>https://www.mysite.de/kontakt</td></tr></tbody></table>

This works and is SEO friendly, but it loses the benefit of a Country-Code Top-Level Domain ( ccTLD ) which has an intrinsic locale&#x20;

{% hint style="info" %}
It's important to distinguish between language and location.  Webflow is good at supporting language translation but it is not good at supporting locations.  If you target a site at both the UK and the US, it's likely that most browsers in both locations will try to access /en  even when you have /en-GB  pages defined.&#x20;

This is because auto-routing looks at the browser's language, but does not do GeoIP lookups to identify where the user is currently located.&#x20;
{% endhint %}

## Video Discussion &#x20;

{% embed url="<https://www.loom.com/share/30ed0d74715041678d24d485c971b3e9>" %}

## Goals

* Split a Webflow-localized site into discrete domains, one locale per domain, e.g. mysite.com ( EN ), mysite.fr ( French ), mysite.co.jp ( Japanese )&#x20;
  * All page level content
  * All navigation
* Fully support SEO
  * Split and cross-reference sitemaps&#x20;
  * Reflect alt hreflang URL changes&#x20;
  * Redirect all original localization paths by 301, to the new sites to preserve SEO&#x20;
  * Handle all internal linking, e.g. direct links to `/fr/...` should link to the appropriate site.&#x20;
  * Support the locale switcher&#x20;
* Support intentional content gaps, e.g. untranslated CMS items or static pages&#x20;
* Maintain all centralized publishing, API support, integrations, CMS, etc as normal&#x20;

## Future

{% hint style="info" %}
Not yet tested.&#x20;
{% endhint %}

* Support Localization Pro's localized paths &#x20;

Possible;&#x20;

* Auto-routing. based on browser location & language&#x20;

## Notes&#x20;

Locale-Specific Domains & Sub-Domains

<https://discourse.webflow.com/t/seperate-domains-for-localisations/262898/4>

Return requested pages for the specific requested locale /path/...

Modify alt lang href

Suppress irrelevant locale paths ( 404s )&#x20;

* May be possible to redirect them to the alt ccTLD URL&#x20;

Canonicals&#x20;

Sitemap.xml

Links

e.g. /de/menu

Locale switcher modify alt page paths to other ccTLD sites&#x20;

## Path fixes

CMS paths are always

* Determine current locale, and whether it's an alt locale&#x20;

Fix paths so that they are e.g. `/blog` and not `/fr/blog` on the `domain.fr` custom domain.&#x20;

## Language Link cross-references

Rel="alternate" Links

Adjust these to the domain per locale

Splitting Sitemaps by Locale

Research these;

It appears that for rel="alternate" links in the sitemap, you can reference a different domain legitimately;&#x20;

```xml
<!-- Sitemap for example.com -->
<url>
  <loc>https://www.example.com/page1</loc>
  <xhtml:link 
     rel="alternate" 
     hreflang="fr" 
     href="https://www.example.fr/page1" />
</url>

<!-- Sitemap for example.fr -->
<url>
  <loc>https://www.example.fr/page1</loc>
  <xhtml:link 
     rel="alternate" 
     hreflang="en" 
     href="https://www.example.com/page1" />
</url>
```

Locale Switcher

Locale Map

FR -> `domain.fr`

EN -> `domain.en`

Other

Auto language detection and routing?

No, because domain already is locale-specific and will have locale-specific SEO.&#x20;

Cookie to handle preferred locale?&#x20;

## SEO Notes

<https://www.propellic.com/blog/how-to-choose-between-cctld-and-subfolders-for-international-seo>

[https://www.web.com/blog/what-is-cctld](https://www.web.com/blog/what-is-cctld/?utm_source=chatgpt.com)

<https://www.searchenginejournal.com/google-hints-lowering-seo-value-of-country-code-top-level-domains/523183>

<https://www.orbitmedia.com/blog/country-specific-domain-name>

<https://www.namecheap.com/blog/how-country-specific-domains-help-with-local-seo>

## Technical Notes&#x20;

* Github repo: `/sygnaltech/hf-loc-domains` &#x20;

NOT established as an HF2 micro-service, this worker currently runs independently.&#x20;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://hyperflow.sygnal.com/apps/hyperflow-locale-specific-domains.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
