About

Does your website have a few pages in other languages? For example a welcome page in English, Turkish or Arabic for people who don’t speak your language?

Then search engines and screen readers need to know two things:

  • Which language is this page in?
  • Which other language versions are there?

Without this information, Joomla treats every page as German. Google may show your German page to an English-speaking visitor. A screen reader reads an Arabic text with a German voice.

netzSINN hreflang fixes this. You switch on the languages you need, choose the language in the menu item, and the plugin does the rest.

Why use netzSINN hreflang?

  • Visitors find the page in their language:

    The plugin tells Google and Bing which page is meant for which language. This hidden note is called “hreflang”. Someone searching in English is more likely to land on your English page.

  • Arabic and Dari display correctly:

    These languages are read from right to left. The plugin sets the reading direction automatically, so text, punctuation and lists are no longer mixed up.

  • Screen readers use the right voice:

    Each page tells the browser its language. Blind and visually impaired visitors hear the text with the correct pronunciation. This supports accessibility (WCAG).

  • Search engines get consistent data:

    The plugin also corrects the language in Joomla’s structured data (Schema.org), so all signals on the page agree.

  • Your website stays as it is:

    You keep your menus, modules and web addresses. You don’t need language packs, extra menus or Joomla’s multilingual mode.

  • Set up in a few clicks:

    Tick the languages you need in the plugin options. Every menu item then gets a “Language page” tab where you pick the language.

  • No mistakes with language codes:

    Search engines only accept certain codes. The built-in list of 55 languages only offers valid ones, for example “fa-AF” for Dari and “ja” for Japanese. If you add your own language, the plugin checks the code before saving.

  • Works with your canonical plugin:

    The plugin builds web addresses that match your canonical URLs character for character, for example from Aimy Canonical. A canonical URL is the “official” address of a page. If the two don’t match, search engines ignore the language information.

  • Light and safe:

    The plugin only works on normal pages on your website, not in the backend. It adds no scripts or styles. On a real multilingual Joomla site it stays out of the way.

Main Features

  • 55 languages ready to switch on, plus your own languages
  • Main language detected automatically, can be changed
  • New “Language page” tab in every menu item
  • Correct language for each page (lang attribute)
  • Right-to-left reading direction for Arabic, Dari, Hebrew, Urdu and others (dir="rtl")
  • Complete list of all language versions on every language page and on your homepage (hreflang)
  • Default page for all other visitors (x-default)
  • Correct language in Joomla’s structured data (Schema.org inLanguage)
  • Web addresses that match your canonical URLs (base URL and trailing slash adjustable)
  • Option to leave out single pages
  • Only published pages that everyone can see are included
  • Warning if two pages have the same language
  • Menu item aliases, external links and separators are handled correctly
  • Works with Joomla’s language filter if only one language has its own homepage. Switches off on real multilingual sites.

Installation

Install the Plugin in the Joomla Backend and enable it under System -> Plugins -> System -> netzSINN hreflang.

Setting up takes about 15 minutes. Please check these points once:

1. Check that other plugins don’t get in the way

Joomla’s “System – Language Filter” may stay on, as long as only one language has its own homepage. Otherwise the plugin switches itself off and shows a notice.
Joomla’s plugin “System – Language Code” must be disabled. It would change the language codes again.
Does another SEO extension already output hreflang tags? Then switch this feature off there.
Do you use search-and-replace rules for the language (e.g. Regular Labs ReReplacer)? Switch them off after setting up the plugin.

2. Switch on your languages
In the plugin options, open the “Languages” tab and tick the languages you need. Missing a language? Add it under “Custom languages” with name, code and reading direction.

3. Enter your web address
On the “URLs” tab, enter your domain under “Base URL”, for example https://www.example.com. Use exactly the same form as your canonical URL: with or without “www”, always with “https”.

4. Choose the trailing slash setting
Some websites write their addresses with a slash at the end (/en/), others without (/en). Pick the same setting as in your canonical plugin. If you’re not sure: open a language page, view the source code and look at the line with rel="canonical".

5. Check your canonical plugin
Your canonical URL should not contain extra parameters such as ?utm_source=…. In Aimy Canonical PRO, turn on “Remove Query String”.
Don’t set a custom canonical address for your language pages or your homepage.

6. Choose the language for each page
Open the menu item of each language page. In the “Language page” tab, choose the language and save. Leave the pages in your main language and your easy-to-read page (“Leichte Sprache”) empty. If a page is a menu item alias, set the language in the target menu item instead.

7. Clear the cache
If you use page caching or an optimisation extension, clear the cache once.

FAQs

Do I need to make my website multilingual?
No. That’s the point of this plugin. Your language pages stay normal menu items.
Will this improve my Google ranking?
Not directly. It helps Google show the right page to the right people. Visitors who find a page in their own language stay longer and contact you more often.
Will Joomla’s own texts be translated too?

No. Texts that Joomla creates itself, such as “Read more”, form messages or dates, stay in your installed language. Write everything else on the page in the language of the page.

Does the web address of my page have to match the language?
No. Your Dari page can stay at /prs. The plugin takes the language from the menu item, not from the address.
What happens if a language page is switched off?
It’s removed from the list automatically. Search engines are never sent to a page that doesn’t exist.
Does it work with YOOtheme Pro?
Yes, without any changes to the template.
Does it work with Aimy Canonical?

Yes. Just make sure the base URL and the trailing slash are set the same way in both plugins (see Installation, points 3 to 5).

System Requirements

Joomla 6,
PHP 8.2 or higher

Changelog

  • v1.1.3: Language filter: only languages with their own homepage count. Menu item aliases, URLs and separators are handled correctly.
  • v1.1.2: Works with Joomla’s language filter if only one content language is used.
  • v1.1.1: Corrects the language in Joomla’s Schema.org data. Main language greyed out in the language list.
  • v1.1.0: Languages are switched on in the plugin options. 55 languages, custom languages, automatic main language.

License

GNU General Public License version 2 or later

Download

Please, support this extension and review on Joomla Extension Directory JED!