All guides

Multilingual SEO Audit: A 14-Point Checklist for Translated Sites

A practical multilingual SEO checklist: URLs per language, hreflang, x-default, canonical, html lang, meta tags, sitemaps and Search Console, with how to check each one.

Updated 24 September 2026 · 5 min read

A translated site can look perfect in the browser and still be invisible to Google in every language but one. The causes are usually small technical details nobody checks after launch.

Work through this list in order; each item has a short "how to check". The fastest way to cover most of them is to paste a page into our free multilingual SEO checker, then use this list to fix what it flags.

1. Every language has its own URL

Google indexes URLs, not languages. If French and English share one URL, only one of them can rank.

How to check: switch language on your site and watch the address bar. If the URL does not change, this is your first fix.

2. Translations are in the HTML, not added by JavaScript

Some tools translate in the visitor's browser after the page loads: the Google Translate widget, GTranslate's free tier, ConveyThis in its JavaScript mode and Weglot's JavaScript integration. Visitors see the translation, but the HTML Google indexes is still in your original language.

How to check: open a translated URL and view the source (Ctrl+U). If the text there is in the original language, Google sees the original language.

3. Translated pages are indexable

A translated page can carry a leftover noindex from a staging setup or be blocked in robots.txt.

How to check: search the source of each language for noindex, and make sure translated URLs return a 200 status, not a redirect.

4. html lang matches the page

Each version should declare its own language: <html lang="fr"> on French pages, and so on. A common bug is every language inheriting lang="en" from the template.

How to check: look at the first line of the source on a translated page.

5. Hreflang covers every language

Each page should list all its language versions, including itself, with absolute URLs, valid codes (en-GB, not en-UK) and return links from every version. A correct block on the French page of a two-language site:

<link rel="canonical" href="https://example.com/fr/" />
<link rel="alternate" hreflang="en" href="https://example.com/" />
<link rel="alternate" hreflang="fr" href="https://example.com/fr/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/" />

The rules are covered in hreflang tags explained.

How to check: search the source for hreflang, then open one of the listed URLs and confirm it lists the first page back.

6. x-default is set

x-default tells Google what to show people whose language you do not cover, usually your main language.

How to check: look for hreflang="x-default" in the same block.

7. Canonical points to itself

Each language version needs a canonical to its own URL. If the French page's canonical points to the English page, Google drops the French one and ignores the hreflang.

How to check: on a translated page, search the source for canonical and compare it with the address bar.

8. Titles and meta descriptions are translated

An untranslated <title> is a common gap, and it is the first thing searchers see.

How to check: read the browser tab, then find meta name="description" in the source.

9. og:locale matches the language

Social previews use og:locale (for example fr_FR; Open Graph uses an underscore, unlike hreflang). Also translate og:title and og:description.

How to check: search the source for og:.

10. Slugs are translated (optional)

/fr/tarifs reads better than /fr/pricing, but it is a nice extra, not a requirement.

11. The sitemap includes every language

Your sitemap should list all translated URLs, ideally with hreflang alternates.

How to check: open /sitemap.xml and search for a translated URL.

12. The language switcher uses real links

The switcher should use plain <a href> links so crawlers can follow them. A JavaScript-only dropdown gives Google no path to your translations.

How to check: right-click a language in the switcher. If you can copy a link address, it is crawlable.

13. No automatic redirects by IP or browser language

Redirecting visitors based on location or Accept-Language can stop Googlebot, which mostly crawls from the US without a language preference, from ever seeing your other versions. Suggest a language with a banner instead.

How to check: open a translated URL with a VPN or a different browser language. You should stay on that URL.

14. Search Console confirms indexing

In Google Search Console, open the Pages report and use URL Inspection on a few translated URLs. Watch for "Alternate page with proper canonical tag" on translations, which points to a canonical problem, and "Crawled - currently not indexed". The old International Targeting report is deprecated, so do not rely on it.

Do most of this in one minute

Items 3 to 9, plus the URL structure and JavaScript checks, are exactly what our free multilingual SEO checker tests. It also visits up to six translated versions to confirm they load, link back, declare their language, have their own canonical and a translated title.

If the audit turns up a long list, Lantis fixes most of it by default. It serves each language on its own URL (like /fr/) and adds hreflang for every language plus x-default, the correct html lang and a self-referencing canonical automatically, with a crawlable language switcher included. It works on Framer, Webflow, WordPress, Shopify and any site with one line of code, from €3/month per language, and the first 100 translations are free with no card. See how it works on Framer and Webflow, or estimate your budget with the translation cost calculator.

Frequently asked questions

How often should I run a multilingual SEO audit?

After launch, whenever you add a language or change translation tool, and every few months otherwise.

Are subfolders better than subdomains for multilingual SEO?

For most sites, yes. Subfolders keep everything on one domain, so every language benefits from the same authority.

Does Google see translations made by the Google Translate widget?

No. The widget translates in the visitor's browser, so Google only indexes your original language. You need translated HTML on a separate URL per language.

Is translated content duplicate content?

No. Google treats translations as different content. Duplicate content is the same text in the same language on several URLs, which is what the canonical tag is for.

Also available in Français · Deutsch · Italiano · Português · हिन्दी · Русский · 日本語 · 한국어 · Türkçe · Bahasa Indonesia · العربية

Keep reading