SEO for multilingual websites: the basics that matter
Multilingual SEO comes down to three things: a clean URL structure per language, correct hreflang tags linking the versions together, and avoiding duplicate or thin translations. Get those right before worrying about anything more advanced.
Shipping a website in two languages is one of the highest-leverage moves a small business can make if a meaningful share of customers speak a second language — and one of the easiest places to accidentally hurt your own SEO. Search engines need to understand that your English page and your Spanish page are the same content in two languages, not two competing pages, or you end up cannibalizing your own rankings instead of reaching two audiences.
None of this is exotic. It's a small number of technical decisions, made correctly once, that then run in the background for as long as the site exists.
Pick a URL structure and stay consistent
There are three common ways to structure URLs for multiple languages, and any of them can work — what matters is picking one and applying it consistently across the whole site, not mixing approaches page by page.
| Structure | Example | Best for |
|---|---|---|
| Subdirectory | yoursite.com/es/ | Most small businesses — simplest to set up, keeps one domain's authority |
| Subdomain | es.yoursite.com | Sites with a separate team or hosting setup per language/region |
| Separate ccTLD | yoursite.es | Businesses with a genuinely distinct country-specific presence and budget to maintain multiple domains |
For the vast majority of small business sites shipping a second language, a subdirectory (yoursite.com/es/) is the right call. It's the simplest to implement on a static template, it keeps all your SEO authority consolidated under one domain, and it doesn't require managing DNS or hosting for a second domain or subdomain.
hreflang: telling search engines which page is which
The hreflang tag is an HTML attribute that tells search engines "this page and that page are translations of each other, here's which language and region each one targets." Without it, Google may show the wrong language version to the wrong audience, or worse, treat your translated pages as duplicate or competing content instead of understanding they serve different readers.
In practice, hreflang is a set of link tags in the page head, one for each language version, each pointing to itself and every sibling version. It looks more intimidating than it is — most static site generators and template systems can generate this automatically once you tell them which pages correspond to which.
The duplicate content trap
Search engines do not penalize you for having the same content in two different languages — that's the entire point of a multilingual site, and it's fully expected. The trap is different: publishing a second language version that's thin, machine-translated without review, or missing large sections of the original. That reads as low-quality content in that language, not as a legitimate translation, and it can drag down how the whole site is perceived in that market.
If you can't fully translate and maintain a page, it's better to leave it in the primary language than to publish a rushed, partial translation. A shorter but complete site in one language will out-rank a longer, half-finished site split across two.
Don't rely on browser-based auto-translation as your SEO strategy
Browser plugins and widgets that auto-translate your page on the fly are useful for visitors, but they do not create real, indexable pages in the second language — search engines generally can't crawl and rank content that only exists after a JavaScript translation layer runs client-side. If ranking in the second language actually matters to your business, you need real, separate HTML pages for that language, not a translation overlay on top of your English pages.
Localize more than the words
A translated page that keeps prices in the wrong currency, dates in the wrong format, or references to holidays and norms from the original market reads as an afterthought, and it hurts trust as much as it hurts SEO. Genuine localization — currency, date format, units, examples relevant to that audience — signals to both readers and search engines that this version was actually built for its audience, not just translated at them.
Each step depends on the one before it — skipping the URL structure decision makes everything after it harder to fix later.
Set (and respect) a default language
Use an x-default hreflang value to tell search engines which version to show visitors whose language doesn't match any of your available versions — usually your primary language. This avoids an awkward situation where a visitor from a country you don't have a dedicated version for gets served a page in a language they don't read, purely because of a hreflang misconfiguration.
Include every language version in your sitemap
Your XML sitemap should list every URL across every language version, not just your primary language. This is a common oversight when a second language gets added after the original sitemap was generated — the new pages exist and are linked from the site, but never get explicitly submitted for crawling, which slows down how quickly they get indexed.
- ✓Pick one URL structure (subdirectory is usually right for small sites) and stay consistent.
- ✓hreflang tags need a self-reference plus a reference to every sibling language version.
- ✓A thin or rushed translation hurts more than having no translation at all.
- ✓Client-side auto-translate widgets don't create indexable pages — you need real HTML.
- ✓Localize currency, dates and examples, not just the words.
- ✓Set an x-default and include every language version in your sitemap.