Back
Kevin Riedl

7 min read · 18 Aug 2026
Last reviewed

Next
Made on your device, with no Instagram connection. We copy the post link for Instagram’s Link sticker.

Localized URL Slugs vs hreflang: Why We Keep One English Slug

Localized slugs are valid. Their cost is the extra mapping layer around hreflang. Google's multilingual-site guidance explicitly says localized words in URLs are fine. Renames, redirects and missing translations do not make the strategy wrong, but they create more per-document states to keep aligned.

We run this site in four languages and deliberately do not translate slugs. The German page for AI visibility lives at /de/services/ai-visibility/, not at a German path. This is an engineering trade-off that suits our templates and validation gates, not a universal prescription.

Running a multi-market site and not sure what a crawler actually sees per language?

 Run the free checker

What hreflang actually demands

The contract is simpler than the tooling suggests. Google's hreflang documentation says every page in a language set must list itself and every other available version, and each target must return the relationship. A self-reference is part of the complete set, not a redundancy to optimise away.

That reciprocity requirement is where localized slugs get expensive. With one slug you need to know the language prefixes. With translated slugs you need a correct, current mapping table between four different strings per document, and you need it to survive every edit anyone makes.

Four failure modes a localized-slug mapping must prevent

FailureWhat causes itSymptom
Broken reciprocityOne locale's slug was renamed, the others still point at the old stringThe language cluster splits into two clusters that each look authoritative
hreflang to a redirectAnnotations point at the pre-rename URL, which now redirectsThe annotation points at a non-final URL and becomes harder to validate
Partial translationA locale has no version of this document yetEither a dangling pointer or a silent gap, depending on how the loop was written
Path collisionsTwo English documents translate to the same target-language slugOne page overwrites the other, usually noticed by a customer

None of these is unfixable. All of them are per-document, which is the problem: they appear on a handful of pages rather than site-wide, so a spot check looks clean.

What one slug buys you

If the slug is language-independent, the language graph becomes a function of the path prefix. The template can generate every hreflang pointer from the locale list and the page's own file name, with no mapping table to maintain and nothing to drift out of sync. Reciprocity is structural rather than something you verify.

It also makes the neighbouring checks cheap. Once every locale's version of a document shares a slug, "is this document translated everywhere?" is a set comparison over file names. We gate that in the build: one script asserts that the four locales contain the same entry sets for every data file, and another compares per-locale content for drift. Both are only possible because the identifier is shared.

The same property helps machines that are not search engines. An agent that has your English URL can construct the German one by rule. Combined with a Markdown mirror per route, that means one predictable address per document per language, with no lookup step.

The honest cost

You lose a localized, human-readable path in every language except English. That can make the address less clear or familiar to a reader before they open it.

We accept that user-experience cost because a predictable address simplifies our templates, validation and machine-readable mirrors. Google says it determines a page's language from visible content rather than the URL, so we do not treat the English slug as a proven ranking penalty or the localized slug as a proven ranking boost.

If your business is primarily local-language search in one market and you have two dozen pages, translate the slugs. The mapping stays small enough to keep correct by hand. The argument here is about what happens at four languages and several hundred routes, where nobody keeps a mapping table correct by hand.

Migrating without losing the pages you have

If you already have localized slugs, this is not urgent and it is not free. When you do it:

  1. Pick the English slug as the canonical one and keep it stable from then on. The rename you do now should be the last one.
  2. Use server-side permanent redirects, such as 301 or 308, from every old localized slug. Keep them for at least one year; retaining them longer can still help users and external links.
  3. Regenerate hreflang from the locale list rather than from a table, and confirm every page returns a self-reference.
  4. Submit the updated sitemap in Search Console and use URL Inspection for representative or important URLs. Google's URL-move guidance does not promise a fixed discovery timeline.
  5. Check that internal links point at the new slug directly rather than through the redirect, because a site full of internal 301s is its own slow problem.

Step five is the one people skip. A redirect that is only reachable from your own navigation is a redirect you will never notice is wrong.

Frequently Asked Questions

Should URL slugs be translated for each language?
They can be. A localized path may be clearer to users, while one language-independent slug simplifies mapping and validation. Choose the model your routing and publishing system can keep correct.
Is a self-referencing hreflang tag required?
Yes. Every page in a language set must list every version including itself. It is not redundant and removing it is a common cause of a language cluster being ignored.
Does an English slug hurt local rankings?
Google documents that it detects page language from visible content, not the URL, and allows localized URL words. We have not found authoritative evidence for an automatic ranking penalty from a shared English slug. Test user response for your market.
What if a page is not translated into every language yet?
Emit hreflang only for the versions that exist, and never point at a URL that is missing or redirects. A dangling annotation is worse than an absent one.
How do we keep translations from drifting apart?
Make the shared slug the join key and check it in the build. We assert that all four locales contain the same entry sets for every data file, and compare per-locale content for drift. Both checks depend on the identifier being shared across languages.
Do we need to keep the old localized URLs working?
Google recommends keeping redirects for at least one year. Keeping them longer can still serve users and external links that retain the old address.

Final thoughts

Localized slugs are supported and can make paths clearer to readers. They also require a reliable per-document mapping when alternate URLs differ across languages.

For our four-locale site, one language-independent slug makes hreflang generation and translation-parity checks simpler. That is our engineering trade-off, not a rule every multilingual site must follow.

Get read, and cited, by machines

Answer engines cannot cite what they cannot fetch, parse, or attribute to you. Wavect fixes agent access, machine-readable mirrors, structured data, and entity identity in the stack you already run, then makes the product usable by agents rather than only readable.

Relevant service paths:

Inbox, without the noise

Follow the work that matters to you

Get a short email when we publish something new. Follow the whole blog or only the problems you care about.

What would you like to receive?
Choose your topics

Free, double opt-in, no tracking pixels.

Back
Kevin Riedl

7 min read · 18 Aug 2026
Last reviewed

Next

Get the next AI and agents field note

One concise email when we publish. No tracking pixels, and no inbox filler.

Free, double opt-in, no tracking pixels.