Multilingual SEO: why some translations never rank.
A translated page a search engine can't fetch doesn't exist to it. Almost every multilingual SEO problem is that one fact in a different costume, so this page is about URLs first and words second.
The rule everything else follows from
Each language needs its own URL that returns that language to anyone who fetches it, including a crawler running no JavaScript with no cookies. If your French content only appears after a click, a stored preference or a script, then you have one page in one language, and that's what gets indexed.
The four things to get right.
One address per language.
Subdirectories (example.com/fr/), subdomains (fr.example.com) and separate domains all work. Subdirectories are the least effort and inherit the authority you already have. What doesn't work is one address serving different languages to different people.
Say which pages are the same page.
An hreflang tag claims: this is the same content in another language. It has to be reciprocal. If the English page points at the French, the French must point back, and both should carry a self-reference plus an x-default for everyone else.
- A one-way hreflang is usually ignored entirely.
- Only claim it where the content really is translated. Translated chrome around the same English body isn't another language, and claiming it is asks Google to reconcile duplicates.
Do not undo it with a canonical.
Each language version should be canonical to itself. Pointing the French page at the English one tells Google the French page is a duplicate it needn't index, which is the opposite of what you were trying to do. It's a common way to spend months producing translations nobody can find.
List what you claim.
The sitemap and the hreflang cluster should agree. Advertising alternates the sitemap never lists, or listing URLs that redirect or 404, spends crawl budget proving you don't know your own site.
Browser-side translation cannot rank.
Plugins and script-based translators swap the text in the visitor's browser at the same address, usually keeping the choice in local storage. There's no second URL, so there's nothing to index as another language. That isn't a flaw better tags can fix. It's what the approach is.
-
01
It is still the right choice sometimes
If your traffic arrives from ads, email or word of mouth, the visitor is already on the page and being readable is the whole job.
-
02
Two ways to get real URLs
Either your build writes translated pages as files, or something serves them server-side: a proxy in front of your site, or the platform's own multilingual feature.
-
03
Ask the vendor directly
The test is simple and worth running before you pay: fetch a translated URL with JavaScript disabled and see whether the translated text is in the response.
What this means for BeMyWords
Build mode writes translated files into your own deploy, so each language is a real page at a real URL that ranks like anything else you publish. Script mode, the one script tag for sites with no build, translates in the browser at a single URL: readable in every language, findable in one. That's a real limit, and it's on the install guide too, not buried here.
We ran these checks against our own site while writing this page and failed two of them: the sitemap listed language URLs whose content was identical English, and hreflang claimed them as translations. Both fixed. They're easy mistakes to make, which is most of why this page exists.
Translations that live at real URLs.
Free to start, no card. If your site has a build, you get pages a search engine can actually read.
Start gratis