One set of language links on a multilingual Joomla site, with Multilang in AI Boost 1.1

Multilang gives each language of a Joomla site its own hreflang links, translated structured data and share cards, and puts every language in the sitemap. How to switch it on, and what its one option does.

The problem on a site in two languages

A Joomla site in English and Serbian has two versions of most pages. Joomla links them for you, through its associations or through Falang. What goes out to search engines and chat apps often lags behind.

Three things go wrong. The page head may carry no language links, or two sets of them. The structured data and the share card repeat text you typed once, in one language, so a Serbian page can be shared with an English description. And the sitemap may list only one version of a page that exists in both.

Multilang is the AI Boost extension for this. It came with AI Boost for Joomla 1.1 and is included in every plan. This post says what it writes and why. The Multilang documentation has the full reference.

What Google asks of language links

Google's page on localized versions sets the rules, and it was last updated on 21 September 2026. Four of them matter here.

  • "Each language version must list itself as well as all other language versions."
  • "If two pages don't both point to each other, the tags will be ignored."
  • "The reserved x-default value is used when no other language/region matches the user's browser setting."
  • The links can go in the page head, in an HTTP header or in the sitemap, and "the three methods are equivalent from Google's perspective".

The same page answers two common worries. A translated page is not duplicate content. "Localized versions of a page are only considered duplicates if the main content of the page remains untranslated." And Google works out a page's language by itself, without reading hreflang or the lang attribute for it.

What the links do, in Google's words, is "help Google Search point users to the most appropriate version of your page by language or region". That is about sending a reader to the right version, and nothing on the page says it moves a page up. Nor will I. What hreflang is and how it works explains the format in more detail.

Switch it on

Multilang needs an activated site and at least two published content languages, under System, Content Languages in Joomla. With only one, there is no other version to point at, and XML Sitemap says so.

In AI Boost, open Extensions and switch on the card named Multilang. Its badge turns to On, and an Options link appears.

Switched off, Multilang is never loaded, so your site publishes exactly what it published before.

Where the translations come from

Multilang reads the translations your site already holds. It takes each item's translations from one source, chosen by the item's Language field.

  • An item saved in one language takes them from its Joomla associations.
  • An item saved for All takes them from Falang.

Never both. That matters on a site that moved from one method to the other. An old Falang row on an article that later got a language of its own is never read, so it can never turn into an address that answers 404.

Joomla associates articles, categories and contacts, but not tags. A tag saved in one language therefore has no translation to give.

What it writes

In the page head, one hreflang link for every language version of the page, the page itself included, and an x-default link to the version in your site's default content language. Every version carries the same set, so the links point both ways, as Google asks. A home page names the home page of every language.

In the sitemap, the same set on each entry. A page and its sitemap entry always name the same addresses, so the two places Google reads cannot disagree. An item saved for All, and the home page, get one entry per language, each with that language's title and description. The AI files, such as llms.txt, read those entries as well.

In the structured data and the share card, the translated title and description of the article, category or contact the page is about. The share card also carries one og:locale:alternate for each other language of the page.

Where a page has no translation in its language, it shows the original text. Then inLanguage in the structured data names the language the text is really in, and og:locale keeps the language the page is served in.

Multilang names only what a guest may open. A translation that is Registered, scheduled, expired or in a category a guest cannot see appears in no hreflang link and no sitemap entry. A link to a page that answers "log in" helps nobody.

Your own text, in each language

Some of what AI Boost publishes is text you typed into AI Boost itself, such as your organisation's name and description, your title templates, and your share card's default description. While Multilang is on, a Translations toggle sits under each of those boxes. It holds one box for every published content language except your site's default, marked with that language's short code. A box left empty keeps the text above it.

Its one option

Joomla's Language Filter system plugin, and Falang's language switcher module, can write hreflang links of their own. Two sets in one head, with different addresses for one language, give a search engine two answers to one question. So Multilang has one option, on Multilang options, reached from Options on its card. Its section is Language links from another extension.

  • AI Boost writes them. This is the default. AI Boost removes the other set from the page and writes its own.
  • Switch the other off. AI Boost writes no language links in the page head while the other set is there, and starts once it is gone. Your sitemap keeps its language links either way.

Keep the default unless something on your site needs the other set. If you choose Switch the other off, turn the other set off yourself, with Add Alternate Meta Tags in Joomla's Language Filter system plugin. On a Falang site that same switch also stops the links Falang's language switcher module writes.

If two sets ever reach a page anyway, Site Health says so in a row named Language links.

Check it

Open a page in your second language and view its source. In the head, find hreflang. There should be one link per language and one x-default, and every address should open the same page in that language. Then open /sitemap.xml and find the xhtml:link lines under that page's entry. They list the same addresses. Finally, paste the page's address into a chat app and see whether its card speaks the page's language.