Multilingual SEO checklist for WordPress

Updated Published 12 min read

In short

A multilingual WordPress site needs twelve things right: a clean URL structure, correct lang and dir attributes, reciprocal hreflang with x-default, self-referencing per-language canonicals, translated titles and meta descriptions, language-aware sitemaps, localized slugs, translated structured data and alt text, no automatic redirects, reviewed machine output, and verified per-language indexing.

Key points

  • Language subdirectories (/de/, /fr/) are the right default: they keep authority on one domain and are simplest to host.
  • Each language version needs a self-referencing canonical — pointing translations at the source page tells Google to ignore them.
  • Never auto-redirect by IP or Accept-Language: it can trap both users and crawlers in the wrong version.
  • Translated titles and meta descriptions are what searchers actually read in results; leaving them in English costs clicks directly.
  • Verify indexing per language in Search Console after launch — a translated page that is never indexed cannot rank at all.

Going multilingual is a real SEO opportunity, but only if the technical foundations are right. Miss one of these and you end up with the wrong pages ranking, duplicate-content confusion, or translated pages that are never indexed at all. Work through the list in order — the early items are the ones that break the later ones.

1. Pick a clean URL structure

Use language subdirectories (/de/, /fr/) unless you have a specific reason not to. Google supports subdirectories, subdomains and country-code top-level domains for multi-regional sites, and treats all three as valid — the trade-offs are operational rather than algorithmic (Google Search Central).

Subdirectories win for most sites because everything stays on one hostname: one certificate, one set of DNS records, and link equity that accrues to a single domain rather than being split across several. ccTLDs give the strongest geographic signal but mean running genuinely separate properties. Compare the shapes with the URL structure previewer.

Whatever you choose, choose it before launch. Changing URL structure later means a full redirect map and a re-indexing cycle.

2. Set the correct lang and dir attributes

Each page must declare its language on the <html> element: <html lang="de">. This is what screen readers use to select a voice and what browsers use to offer translation — it is an accessibility requirement as much as an SEO one.

For right-to-left languages such as Arabic, Hebrew, Persian and Urdu, also set dir="rtl" and confirm your theme actually mirrors: navigation, alignment, icons, and any absolute positioning in custom CSS. A page with dir="rtl" and a left-aligned layout is worse than no RTL support at all, because it looks broken rather than untranslated.

3. Implement reciprocal hreflang with x-default

Every page needs a complete, reciprocal set of hreflang annotations — including a self-reference and an x-default. Missing return links can cause Google to disregard the annotations entirely, so this is pass/fail rather than a matter of degree.

Build the tags with the hreflang generator, confirm them with the hreflang checker, and see adding hreflang in WordPress for implementation.

4. Get canonicals right per language

Each language version needs a self-referencing canonical pointing at itself — never at the source-language page. This is the single most damaging mistake on the list, because it is silent: the pages exist, they are crawlable, and they are quietly being consolidated into the original.

A cross-language canonical also directly contradicts your hreflang, which asserts the pages are distinct alternates. Given contradictory signals, you cannot predict which one wins.

5. Translate titles and meta descriptions

Don't leave English titles and meta descriptions on translated pages. These are the two lines a searcher actually reads before deciding whether to click, and an English snippet under a German URL reads as a broken or careless site.

Translate Open Graph and Twitter Card tags too — they are what appears when someone shares the page. If you run Yoast or Rank Math, verify their generated meta is translated rather than duplicated from the source language; SEO plugins store their titles and descriptions separately from post content, so a translation layer that only handles post content can miss them entirely.

6. Provide language-aware sitemaps

Include every language URL in your XML sitemap. Ideally, use xhtml:link alternate annotations so each entry declares its counterparts — a valid way to express hreflang at scale without markup on every page (Google Search Central, sitemaps.org).

Note that WordPress core's built-in sitemaps do not include alternate-language annotations, so this generally comes from your SEO or multilingual plugin.

7. Use readable, localized slugs

Give each translated page a clean, transliterated slug rather than a percent-encoded string — especially for non-Latin scripts, where an untransliterated slug becomes an unreadable escape sequence in the address bar and in any shared link. The slug transliterator handles the conversion.

Decide early, because changing slugs after indexing costs you redirects.

8. Translate structured data and alt text

Product, Article and FAQ schema should reflect the translated content — a German page carrying English schema descriptions sends mixed signals about what the page is. Image alt text should be localized too, which serves both image search and screen-reader users in that language.

9. Don't auto-redirect by IP or browser language

Automatically redirecting visitors to a language based on IP geolocation or Accept-Language is a well-known way to cause problems. It traps users who want a different version — someone in Germany who prefers English cannot reach the English page — and it can prevent crawlers from seeing versions other than the one their request location resolves to.

Offer a clearly visible language switcher and let people choose. If you want to suggest a language, show a dismissible banner rather than performing the redirect.

10. Don't machine-translate and forget

Machine translation has become genuinely good, but quality is uneven across the parts of a page that matter most. Review the highest-leverage strings by hand: navigation labels, calls to action, page titles, pricing and legal text, and anything with a brand term or a product name in it.

Make sure your tooling protects those human edits, so a later re-sync does not silently overwrite a correction someone made deliberately.

11. Keep translations in sync with the source

Translations drift. You edit an English page, and four translations quietly become stale — still indexed, still ranking, now describing a product you no longer sell. Whatever approach you use needs an answer to "what changed since this was translated?", whether that is automatic re-translation on edit or a report of stale content to review.

12. Verify indexing per language

After launch, confirm in Google Search Console that each language version is actually being crawled and indexed, and that the International Targeting report is not accumulating hreflang errors. Check coverage per URL pattern — /de/ separately from /fr/ — because a whole language can fail to index while the others are healthy, and a site-wide average hides that completely.

Make it automatic

Most of this list — hreflang, per-language canonicals, translated meta, language-aware sitemaps, lang and dir attributes, localized slugs — is mechanical, and mechanical work is exactly what decays when done by hand across a growing site. Gloty generates all of it automatically for every page, which turns multilingual SEO into a setup step rather than a standing chore. For the wider picture, start with the pillar guide on making WordPress multilingual.

Sources

Technical claims in this guide are drawn from the primary documentation and specifications below, each confirmed live on the date shown.

  1. Managing multi-regional and multilingual sites Google Search Central. Accessed .
  2. Tell Google about localized versions of your page Google Search Central. Accessed .
  3. How to specify a canonical URL with rel="canonical" and other methods Google Search Central. Accessed .
  4. Build and submit a sitemap Google Search Central. Accessed .
  5. Sitemaps XML format sitemaps.org. Accessed .

FAQ

What's the most common multilingual SEO mistake?
Broken hreflang — usually non-reciprocal annotations, or a shared canonical pointing every language version at the source page. Both cause Google to disregard your translations, and both are silent failures: the pages exist and are crawlable, they just never rank. An hreflang checker catches the first; viewing source on a translated page catches the second.
Should each language have its own canonical?
Yes. Each language version needs a self-referencing canonical pointing at itself. Pointing all versions at one canonical tells search engines to consolidate them into the source page and ignore the alternates, which directly contradicts your hreflang annotations.
Do I need to translate meta descriptions?
Yes. Titles and meta descriptions are what searchers read in results for that language, so English meta on a German page costs click-through directly. Translate Open Graph and Twitter Card tags as well, and check that your SEO plugin's stored meta is translated rather than duplicated.
Should I redirect visitors to their language automatically?
No. Redirecting by IP geolocation or Accept-Language traps users who want a different version and can stop crawlers from reaching versions other than the one their request resolves to. Offer a visible language switcher, and use a dismissible suggestion banner if you want to prompt.
Do subdirectories or subdomains rank better for languages?
Neither is inherently better — Google supports subdirectories, subdomains and ccTLDs for multi-regional sites. The practical argument favours subdirectories for most sites because everything stays on one hostname, so link equity consolidates on a single domain and hosting stays simple. ccTLDs give the strongest geographic signal at the cost of running separate properties.

Gloty makes WordPress multilingual automatically — AI translation, hreflang, and clean URLs, stored in your own database.

Try Gloty free
Go multilingual free
Open source · your data stays yours
Start free