# Localization and hreflang

> Canonical source: [Localization and hreflang](https://docs.hellowes.com/localization-and-hreflang/)

WCH publishes a site built with Webflow Localization as-is, with each language in its own folder. It points canonical and hreflang links at your live domain, lists locale versions in sitemap.xml, and leaves the root redirect to your host.

## Where to find it

Localization is set up in Webflow, not in WCH. There is no setting to turn on. In WCH, these settings shape the localized output:

1. Open your project.
2. Go to Settings.
3. Check Project domain, Publishing mode, Sitemap structure, and Remove trailing slash from URLs.

See [Project Settings](/project-settings) for each field.

## How it works

Webflow serves each secondary locale under a folder, such as `/fr/` or `/de-de/`. WCH reads those pages and publishes each one at the same path. `https://your-site.webflow.io/fr/about` becomes `fr/about/index.html` in your build.

- **Every locale is its own page.** WCH fetches and publishes each language version separately.
- **Paths follow Webflow.** WCH does not rename locale folders. If Webflow serves `/fr/`, your live site has `/fr/`.
- **404 pages stay out of sitemap.xml.** That applies to the 404 page in every locale.

## Canonical links

WCH writes a canonical link on every page. It is your Project domain, plus your Root directory if you set one, plus the page's own path. For example, `https://www.example.com/fr/about/`. If the page has no canonical link, WCH adds one.

With Remove trailing slash from URLs turned on, canonical links drop the trailing slash, matching sitemap.xml.

> **Set Project domain to your live domain.** Canonical and hreflang links are built from it. If it holds a `.webflow.io` address, every localized page points search engines at Webflow instead of your site. Enter the full address with `https://`, for example `https://www.example.com`.

## hreflang links on your pages

If your Webflow pages carry hreflang links, WCH keeps them. It replaces the domain in each link with your Project domain and keeps the path. A link to `https://your-site.webflow.io/fr/about` becomes `https://www.example.com/fr/about`.

The hreflang values themselves, such as `fr` or `x-default`, are left as Webflow wrote them.

## hreflang in sitemap.xml

When a page exists in more than one locale, its sitemap.xml entry lists every locale version as an alternate. It also adds an `x-default` alternate that points at your primary locale's version.

WCH needs your site's list of locales to group the versions. It reads that list from Webflow on each Publish all pages in the API publishing mode. See [Publishing modes](/publishing-modes).

To split a large multilingual sitemap into one file per locale, change Sitemap structure. See [Sitemap settings](/sitemap-settings).

## When your home page redirects to a locale

Some localized sites send visitors from `/` to a locale folder, for example from `/` to `/en/`. WCH publishes pages, not redirects. When your Webflow home page redirects, WCH does not publish a top-level home page, so your build has no `index.html` at its root.

Set up the redirect at your host instead:

1. Decide which locale visitors land on, for example `/en/`.
2. At your host or CDN, redirect `/` to that folder.
3. After your next deploy, open your live domain with no path and confirm you land on the locale.

WCH does not apply redirects. See [301 Redirects](/301-redirects) to export the redirects set up in Webflow.

## Pages with output path overrides

If you move a page with an output path override, each locale version moves to the same path inside its own locale folder. For example, an override of `/guides/setup` on the French page publishes at `/fr/guides/setup/`. See [Output path overrides](/output-path-overrides).

## Testing your changes

1. Set Project domain to your live domain and click Save changes.
2. Click Publish all pages.
3. Open a localized page on your staging site and view its source. Check that the canonical and hreflang links start with your Project domain.
4. Open sitemap.xml on your staging site and check a page that exists in several locales for its alternates and `x-default`.
5. Deploy, then confirm your host's root redirect sends `/` to the right locale.