Guide Joomla SEO

A SEO technique guide à Joomla — enabling SEF URLs (et le htaccess.txt rename que en réalité rend les fonctionner), fixing Joomla's par défaut contenu dupliqué, sitemaps et schema via extensions, et ce que modifié à travers Joomla 4, 5, et 6.

Première publication : 27 juin 2026 · Dernière mise à jour : 3 août 2026 · Avancé
1 indice probant sur cette page

Joomla 5 a strong built-dans SEO — SEF URLs, per-article metadata, a native Schema plugin, et an excellent performances baseline — mais le defaults bite vous. Enabling SEF URLs seulement fonctionne après vous rename htaccess.txt à .htaccess; même alors le legacy ID-based URLs stay reachable et Joomla peut emit plusieurs competing balise canonicals, donc contenu dupliqué est a réel out-de-le-box problème vous corriger avec canonicals, redirections, or an extension. il y a aucun native XML sitemap (utiliser OSMap, Aimy Sitemap, Route66, or 4SEO), et sh404SEF — le old dominant extension — était jamais ported à Joomla 4/5, donc Route66 (gratuit) et 4SEO (premium) sont le actuel picks. Joomla 6 est maintenant out (October 2025) et est getting active mises à jour alongside a encore-maintained Joomla 5.x line, donc version-vérifier quelconque Joomla site avant assuming qui paramètres appliquer. j’ai worked avec Joomla since au moins 2012, quand Je spoke on SEO technique à Joomla Day Chicago.

«> TL;DR — Joomla 5 is genuinely capable: SEF URLs, per-article metadata, a

native Schema plugin, and a strong Core Web Vitals baseline. But the defaults need work. SEF URLs only function after you rename htaccess.txt to .htaccess (Apache) — the #1 missed step. Even then the non-SEF ID URLs stay reachable and Joomla can output up to 3 competing rel=canonical tags for one article, so duplicate content is real out of the box — fix it with canonicals, redirects, or an extension. No native XML sitemap (OSMap / Aimy Sitemap / Route66 / 4SEO). sh404SEF was never ported to Joomla 4/5 — use Route66 (free) or 4SEO (paid). Joomla 5 adds native schema and hreflang (the 5.2 self-referencing hreflang bug was fixed in 5.3). Joomla 6 shipped in October 2025 and is the current major, with Joomla 5.x still getting security/bugfix updates alongside it — check which major a site is on before trusting any settings path. » (Traduction) (Résumé en français de la section dix-huit, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

«## Where I’m coming from » (Traduction) (Résumé en français de la section dix-neuf, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

«I’ve described my background as working with “Drupal, Joomla, WordPress, and tons of different e-commerce systems,” and Joomla goes back a while for me — I gave a talk, Technical SEO, at Joomla Day Chicago in 2012. So this isn’t a tour of a CMS I read about; it’s the platform I’ve actually configured. The short version of my opinion: the myth that “Joomla is bad for SEO” is wrong. Joomla 5 is comparable to WordPress technically. The real issues are UX (settings are scattered) and a few harmful defaults. » (Traduction) (Résumé en français de la section vingt, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

«## Global Configuration: the SEO settings that matter » (Traduction) (Résumé en français de la section vingt et un, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

«Everything starts at System → Global Configuration → Site tab → SEO Settings: » (Traduction) (Résumé en français de la section vingt-deux, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

«- Search Engine Friendly URLs → Yes. Converts index.php?option=com_content&view=article&id=2 into a readable slug. Google has long recommended readable, word-based URLs over ID strings, so this is the baseline. » (Traduction) (Résumé en français de la section vingt-trois, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.) «- Use URL Rewriting → Yes — but only after the .htaccess rename below. Removes index.php from the path. » (Traduction) (Résumé en français de la section vingt-trois, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.) «- Adds Suffix to URL → No (usually). Appends .html; leave off for clean URLs unless a legacy site already relies on it. » (Traduction) (Résumé en français de la section vingt-trois, sous-partie trois : le texte source est conservé pour vérification lors de la relecture francophone.) «- Unicode Aliases → No in most cases. Transliterated slugs are cleaner than raw non-Latin characters; only enable for genuine international need. » (Traduction) (Résumé en français de la section vingt-trois, sous-partie quatre : le texte source est conservé pour vérification lors de la relecture francophone.) «- Include Site Name in Page Titles — choose Before/After to control how your site name appears in the <title>. » (Traduction) (Résumé en français de la section vingt-trois, sous-partie cinq : le texte source est conservé pour vérification lors de la relecture francophone.)

«Then two more, elsewhere in Global Configuration: » (Traduction) (Résumé en français de la section vingt-quatre, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

«- Server → Force HTTPS → Entire Site to enforce HTTPS sitewide. Preuve à l’appui de cette affirmation Joomla provides an Entire Site Force HTTPS configuration option. Portée : Joomla global configuration after HTTPS is functional on the server. Niveau de confiance : élevé · Vérifié : Joomla: Global configuration help » (Traduction) (Résumé en français de la section vingt-cinq, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.) «- Metadata Settings — set a global meta description and confirm the default Robots value is “Index, Follow.” » (Traduction) (Résumé en français de la section vingt-cinq, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.)

«## The .htaccess rename — the single most-missed step » (Traduction) (Résumé en français de la section vingt-six, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

Joomla ships a fichier named htaccess.txt (pas .htaccess) dans le root directory. Jusqu’à vous rename il à .htaccess, le “Utiliser URL Rewriting” toggle fait rien — ce est le #1 causer de SEF URL échecs on Apache. Faire le rename avant (or à le moins à le même temps as) enabling URL rewriting dans Mondial Configuration, or vous’ll flip le switch et watch votre clean URLs break. On Nginx il y a aucun .htaccess; vous ajouter le equivalent rewrite règles à le serveur config à la place.

Joomla’s contenu dupliqué problem

Ce est Joomla’s biggest out-de-le-box SEO problème, et c’est worth understanding precisely. Joomla manufactures plusieurs URLs pour le même contenu:

  • Le non-SEF URL (/index.php?option=com_content&view=article&id=2) — toujours reachable, même avec SEF on.
  • SEF URL via menu vs. SEF URL via category — différent paths à le même article si il apparaît dans plusieurs places.
  • www vs. non-www, HTTP vs. HTTPS, trailing-slash variants, et ?layout=print appended à quelconque URL.

Le JoomlaSEO.com liste de contrôle puts le core de il bien: “Même quand vous ont SEF liens turned on dans votre Joomla mondial configuration, le non-SEF URL encore exists, meaning 2 URLs avec le même contenu, et souvent là sont plus,” et notes que “Non-SEF URLs sont encore reachable, despite SEF-URLs étant activated, comme ce: /indexer.php?option=com_content&view=article&id=2.” As JoomUnited frames le stakes, “Quelconque contenu dupliqué pourrait ont harmful effects on votre SEO parce que recherche bots ne peut pas determine qui version deserves indexation priority.”

«It gets worse than just two URLs. In some configurations — opening the same article by category ID, article ID, or query parameters — Joomla outputs three different rel="canonical" links by default. Multiple canonicals is a self-defeating signal: as Google’s canonicalization guidance makes clear, declare more than one and they tend to get ignored. So before launch, run a single-page audit (URL Inspection, or a crawler) and confirm each page emits exactly one canonical. » (Traduction) (Résumé en français de la section trente-deux, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

Comment corriger it:

  • Utiliser le per-article URL canonique champ (Publishing tab → Metadata).
  • 301-redirection non-SEF URLs à SEF via .htaccess.
  • Utiliser le Système – SEF plugin’s strict routing / “strict handling of index.php” (Joomla 4/5) à strip index.php et redirection older URLs.
  • Or let an extension (4SEO, Route66) ajouter canonicals et redirection non-SEF URLs automatiquement.

Pour le underlying concepts, voir canonicalization et le balise canonical.

Per-article et per-category metadata (et le UX trap)

Joomla lets vous définir metadata à le article level — mais le champs sont split à travers tabs, qui est le unique la plupart annoying chose à propos de Joomla contenu SEO:

  • SEO title (Navigateur Page Title): Edit Article → Options tab.
  • Meta description: Edit Article → Publishing tab → Metadata.
  • Robots (Index/Follow, NoIndex/NoFollow): Edit Article → Publishing tab → Metadata.
  • URL canonique: Edit Article → Publishing tab → Metadata.

Donc lune page titre est dans un tab et le description est dans un autre. Seobility’s examiner captures le broader modèle — “Basic SEO paramètres sont buried” dans Joomla’s standard interface, making les “easy to miss.” Categories ont leur propre metadata sous Edit Category → Options. Et ignore le meta mots-clés champ Joomla encore exposes — Google a ignored meta mots-clés since 2009; c’est harmless mais worthless.

XML sitemaps — aucun native solution

Joomla ne fait pas generate an XML sitemap on its propre. Vous install an extension: Preuve à l’appui de cette affirmation Sitemap generation for Joomla is supplied by extensions rather than the cited core global configuration features. Portée : Joomla Extensions Directory ecosystem; extension compatibility must be checked against the installed Joomla version. Niveau de confiance : medium · Vérifié : Joomla Extensions Directory: Site map

  • OSMap (Weeblr/JoomlaShack) — le la plupart widely utilisé; gratuit et pro.
  • Aimy Sitemap — prend en charge Joomla 3/4/5/6, highly configurable.
  • JSitemap — XML, HTML, image, et video sitemaps.
  • Route66 et 4SEO — les deux bundle sitemap generation dans a broader SEO suite.

Après generating it, ajouter Sitemap: https://example.com/sitemap.xml to votre robots.txt and submit it in Recherche Google Console and Bing Webmaster Outils.

robots.txt — complet manual contrôler

Joomla places a réel robots.txt dans le site root (même level as index.php), entièrement editable via FTP or votre host’s fichier manager. Le par défaut sensibly bloque /administrator/, /api/, /cache/, et /components/ — admin et système directories vous ne pas vouloir exploré. Simplement remember le universal règle: robots.txt contrôle exploration, pas indexation — ne pas utiliser il à essayer à deindex pages.

Extensions: ce que to utiliser (and ce que to éviter)

  • Route66 (Firecoders, gratuit) — Seobility calls il “as fermer as vous’ll obtenir à a WordPress SEO plugin comme YOAST pour Joomla.” SERP previews, sitemap, canonical management, SEO scoring.
  • 4SEO (Weeblr, premium) — Weeblr décrit il as software que “fonctionne exactly comme a moteur de recherche, exploration votre site à comprendre il alors ajoute metadata, données structurées, construit a sitemap, remplacer contenu, aide votre social networks sharing or trouve broken liens.” Pair avec 4SEF pour URL management.
  • sh404SEF — ne faites pas utiliser on Joomla 4/5. Ce est le critical migration gotcha. Après 15+ années as le dominant Joomla SEO extension, Weeblr chose pas à port il: “Après plus que 15 années de duty, sh404SEF ne va pas être ported à Joomla 4. Il va pas exécuter on Joomla 4.x. À déplacer à Joomla 4, considérer newer extensions, notamment 4SEF à maintain votre site SEF URLs et 4SEO pour metadata.” Et faites attention même on older sites — Joomlashack warns que “Si vous ont an existing site que est déjà en utilisant le construit dans SEF, activating ce extension peut modifier tout de votre URLs.” Switching URL-management extensions on a actif site peut rewrite URLs et break inbound liens; toujours tester on staging et prepare redirection maps premier.
  • JCH Optimize (performances) — combines et minifies CSS/JS.

Données structurées

«Structured data handling depends on your Joomla version: » (Traduction) (Résumé en français de la section quarante-neuf, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

«- Joomla 5 ships a native Schema plugin supporting BlogPosting, Event, Product, and Organization (plus Book, Vacancy, Person, Recipe) — configured via Edit Article → Schema tab. No extension needed. » (Traduction) (Résumé en français de la section cinquante, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.) «- Joomla 4 and older require an extension (Google Structured Data, 4SEO, or tassos.gr’s) — or manual JSON-LD in the template <head>. » (Traduction) (Résumé en français de la section cinquante, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.) «- Manual JSON-LD always works regardless of version, and Joomla’s built-in Breadcrumbs module pairs naturally with BreadcrumbList markup. » (Traduction) (Résumé en français de la section cinquante, sous-partie trois : le texte source est conservé pour vérification lors de la relecture francophone.)

«## Multilingual SEO and hreflang » (Traduction) (Résumé en français de la section cinquante et un, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

«Joomla has a strong built-in multilingual system. Install languages via System → Extensions → Languages, then enable the Language Filter plugin and turn on “Add alternate meta tags” to generate hreflang tags automatically; the Language Code plugin keeps the BCP47 codes correct. Each language gets a URL prefix (/en/, /fr/, /de/). » (Traduction) (Résumé en français de la section cinquante-deux, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

«One historical caution, now resolved: Joomla 5.2 shipped with the self-referencing hreflang tag missing — the tag pointing to the current page itself was omitted (GitHub issue #44297). That was fixed in the 5.3 release, and the issue is closed. If you’re on 5.3 or later (including Joomla 6), you shouldn’t hit it — but if you’re auditing an old, unpatched 5.2 install, verify hreflang output directly before assuming it’s correct. » (Traduction) (Résumé en français de la section cinquante-trois, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

Performances: Joomla’s quiet strength

Joomla’s Core Web Vitals baseline est meilleur que nombreux expect. Seobility trouvé le par défaut Cassiopeia template “scored 93/100 on PageSpeed Insights avec ‘absolutely rien’ fait pour optimization,” et concluded “Joomla 5 est même meilleur, avec great performances et nombreux SEO fonctionnalités construit dans.” Enable Gzip Page Compression et Cache dans Mondial Configuration → Serveur; ajouter JCH Optimize, image compression, et a CDN pour plus. Parce que Joomla ne fait pas carry WordPress’s typical plugin stack (séparé SEO + cache + security plugins), bare Joomla souvent beats bare WordPress on performances — qui matters pour Core Web Vitals.

Joomla 3 vs. 4 vs. 5 vs. 6 pour le SEO

  • Joomla 3 (fin de life Dec 2023): basic SEF URLs; nearly tout sinon nécessaire an extension; sh404SEF était le dominant solution.
  • Joomla 4 (Aug 2021): cleaner admin, improved SEF routing — mais sh404SEF était abandoned, et Route66 / 4SEO emerged as le alternatives.
  • Joomla 5 (Oct 2023): native Schema plugin, extended meta descriptions (~300 chars), trailing-slash contrôler et strict index.php handling dans le Système – SEF plugin, AVIF prise en charge, Organization/Site web schema, et a meilleur performances baseline.
  • Joomla 6 (Oct 2025, currently on le 6,1.x line): le actuel major version. Il carries forward Joomla 5’s SEO fonctionnalité définir — Je haven’t trouvé premier-party documentation de SEO-spécifique paramètres changements entre 5 et 6, donc treat le Mondial Configuration paths ci-dessus as encore précis on 6 jusqu’à vous avez confirmed sinon on le réel install vous êtes auditing. Joomla 5.x remains on active security/bugfix prise en charge dans parallel, donc plenty de actif sites sont encore on 5, pas 6.

Si vous êtes auditing a Joomla site, le premier three questions sont: qui major version (vérifier Joomla’s propre version number dans le admin footer or Système Information, ne pas assume depuis le theme), sont SEF URLs en réalité fonctionnement (vérifier le .htaccess rename), et est le non-SEF duplicate URL handled? Obtenir ceux correct et Joomla behaves.

Ajouter une note d’expert

Épingler une citation d’expert

Nouvelle personne ? Créez son profil non revendiqué à /admin/experts/ → Épingler une citation d’expert d’abord.