Un client m'a appelé en panique l'an dernier : son site Joomla, en ligne depuis huit mois, ne générait que 40 visites par mois. Il avait payé un développeur pour « optimiser le SEO ». Le développeur avait installé une extension de méta-tags, coché deux cases dans la configuration globale, et facturé. Le problème ? L'URL de sa page d'accueil ressemblait à index.php?option=com_content&view=article&id=57&Itemid=112. Google indexait ça. Personne ne cliquait.

Joomla a une réputation injuste en matière de référencement naturel. On lit partout que le CMS est « lourd », « mal outillé », « dépassé face à WordPress ». C'est en partie faux, et en partie vrai pour de mauvaises raisons : Joomla ne fait pas le SEO à votre place, mais il offre un socle technique très propre — à condition de savoir quelles cases cocher et dans quel ordre. Voici la procédure complète d'optimisation SEO Joomla, celle que j'applique sur mes propres sites et ceux de mes clients, avec les réglages exacts et les erreurs que j'ai commises avant d'y arriver.

Points clés à retenir

  • La réécriture d'URL en clair et le plugin Système – Réécriture d'URL en clair sont le premier chantier : sans eux, tout le reste est décoratif.
  • Joomla gère nativement les balises meta, le sitemap (via le plugin Système – Sitemap XML) et le multilingue avec hreflang : inutile d'empiler les extensions payantes.
  • Les Core Web Vitals se jouent surtout sur le cache progressif et le poids des templates, pas sur le nombre de plugins SEO installés.
  • Un site Joomla mal configuré peut mettre six à huit mois à sortir de l'ornière d'indexation — le nettoyage coûte plus cher que la prévention.
  • Les extensions SEO (sh404SEF, OSMap) servent à gérer des cas complexes, pas à remplacer une configuration correcte.

Configurer le SEO natif de Joomla : les réglages qui changent tout

Avant d'installer quoi que ce soit, il faut comprendre un principe simple : Joomla indexe ce qu'on lui dit d'indexer. Par défaut, et c'est une source d'erreurs que je vois constamment, un site fraîchement installé produit des URL techniques illisibles et laisse passer des pages de composants qui n'ont aucun intérêt en résultats de recherche.

Activer la réécriture d'URL en clair, étape par étape

Direction Système → Configuration globale → onglet Site. Trois réglages à toucher, dans cet ordre :

  1. « Réécriture d'URL en clair (SEF) » : passez sur Oui. C'est ce qui transforme les URL à paramètres en adresses lisibles.
  2. « Réécriture d'URL en clair (SEF) pour Apache » : Oui également — mais seulement si votre serveur tourne sous Apache et que le module mod_rewrite est actif.
  3. « Ajouter un suffixe aux URL » : à vous de voir. J'ai longtemps mis .html par réflexe, avant de tout retirer sur un site de 1 200 articles. Résultat : des redirections à la pelle et une perte de trafic de 18 % sur six semaines. Ne changez pas ce réglage sur un site déjà indexé.

Le piège classique : la case « Apache » cochée sur un serveur Nginx. Le site renvoie alors des erreurs 404 en série. Vérifiez votre pile serveur avant de valider.

Le fichier .htaccess et le forçage HTTPS

Joomla livre un htaccess.txt à la racine. Renommez-le en .htaccess, sinon la réécriture d'URL ne fonctionnera pas du tout. C'est l'oubli numéro un des débutants, et j'y ai eu droit aussi : j'ai perdu une demi-journée à chercher pourquoi mes URL restaient moches alors que tout était coché correctement.

Ajoutez ensuite le forçage HTTPS dans le fichier, ou via le réglage prévu dans la configuration globale. Un site mixte HTTP/HTTPS pénalise l'expérience utilisateur et brouille les signaux envoyés aux moteurs.

Faut-il vraiment une extension SEO sur Joomla ?

Question qu'on me pose systématiquement. Ma réponse, franchement : commencez sans. Joomla couvre nativement l'essentiel des besoins d'un site de contenu classique. Les extensions ajoutent des fonctions utiles sur des cas précis, mais elles alourdissent le back-office et créent des conflits quand on empile.

Besoin Solution native Joomla Extension tierce
Balises meta par article Onglet « Publication » de chaque article Inutile
Sitemap XML Plugin « Système – Sitemap XML » OSMap pour du fin grain
URL personnalisées par contenu Alias de l'article sh404SEF si règle complexe
Données structurées Non natif Plugin de schema.org
Multilingue + hreflang Composant Langues natif Inutile

Sur un site client à fort volume — environ 4 000 articles, plusieurs langues — j'ai testé sh404SEF. Ça fonctionne, mais l'interface est datée et il faut reprendre la main sur les règles une par une. Sur un site de 300 pages, c'est une surcouche dont vous n'avez pas besoin.

Performance et Core Web Vitals : le vrai chantier Joomla

Voilà le point où Joomla souffre le plus, et où les guides SEO génériques passent leur chemin. Un Joomla par défaut n'est pas lent. Un Joomla avec quinze extensions activées, un template acheté sur une place de marché et aucun cache l'est terriblement.

Performance et Core Web Vitals : le vrai chantier Joomla

Cache : le plugin système avant tout

Activez le plugin Système – Cache en mode « Cache progressif » pour les visiteurs non connectés. C'est le gain le plus rapide que j'ai mesuré : sur un site de média, le temps de réponse serveur est passé de 1,4 s à 320 ms. Ensuite le cache du navigateur via .htaccess, et le CDN si votre audience est dispersée.

Template, images et lazy loading

Joomla propose le chargement différé des images en natif depuis plusieurs versions. Vérifiez qu'il est bien actif dans l'onglet Média. Les templates comme Helix ou Gantry embarquent souvent leurs propres bibliothèques CSS et JS — utilisez leur mode « minimisé » et désactivez les modules inutiles. Sur un site vitrine client, j'ai réduit le poids de page de 2,1 Mo à 780 Ko en désactivant trois extensions (un slider, un module réseaux sociaux, un éditeur de secours) et en compressant les images. Le score mobile est passé de 61 à 94.

Un conseil non négociable : testez une seule modification à la fois. J'ai cassé un menu principal un vendredi soir en désactivant « au hasard » pour gagner du temps. On ne gagne jamais de temps.

Indexation, redirections et nettoyage d'historique

Un site Joomla qui vit depuis des années accumule des URL mortes : catégories supprimées, articles dépublies, liens de menu obsolètes. Tout ça génère des 404 que Google découvre tranquilement, et votre budget de crawl part en fumée.

Indexation, redirections et nettoyage d'historique
  • Utilisez le composant de redirection natif (Système → Redirections) pour rediriger en 301 les anciennes URL encore sollicitées.
  • Vérifiez le fichier robots.txt : la configuration globale permet de bloquer l'indexation, mais un robots.txt mal fait bloque aussi des ressources utiles.
  • Sur un site multilingue, le composant Langues génère automatiquement les balises hreflang — à condition d'utiliser les liens de menu par langue, pas des duplications manuelles.

Côté contenu, un titre d'article Joomla alimente par défaut la balise title. Sauf qu'il contient souvent le nom de la rubrique en préfixe. Désactivez cette option dans les paramètres de chaque menu si vous voulez garder le contrôle sur la longueur des titres affichés dans les résultats.

Joomla est-il moins bien armé que WordPress pour le SEO ?

La comparaison revient sans arrêt. Honnêtement, le différentiel réel porte sur l'écosystème, pas sur le CMS. WordPress dispose d'une poignée d'extensions SEO très matures (Yoast, Rank Math) qui automatisent balises, sitemap, fil d'Ariane et données structurées en un seul module. Joomla exige d'aller chercher ces fonctions à plusieurs endroits.

Mais l'inverse est vrai sur d'autres points : la structure de Joomla (articles, catégories, menus) produit des URL et une hiérarchie très lisibles par défaut, et le composant Langues est mieux intégré que la plupart des solutions WordPress multilingues. Sur un projet multilingue de taille moyenne, j'ai mis deux jours à configurer proprement le multilingue sous Joomla — sous WordPress, il m'a fallu une semaine avec deux extensions qui se marchaient sur les pieds.

Donc : Joomla n'est pas moins performant en SEO. Il est moins assisté. La différence se paie en temps de configuration initiale, pas en résultats.

Dans quel ordre faire les choses : ma procédure résumée

Si je devais repartir de zéro sur un Joomla, voilà la séquence que je suivrais, sans rien sauter :

  1. Configuration globale : URLs SEF activées, Apache coché, HTTPS forcé.
  2. .htaccess en place, test des URL sur trois articles.
  3. Plugin sitemap activé, soumission du sitemap XML.
  4. Plugin cache en mode progressif, vérification des Core Web Vitals.
  5. Paramètres de chaque menu : titres et descriptions meta renseignés manuellement si le volume le permet.
  6. Redirections 301 pour l'historique, audit des 404 après quelques semaines.

Six étapes, une demi-journée pour un site propre, deux à trois jours pour un site avec historique. Ce qui prend réellement du temps, ce sont les contenus : titres, descriptions, maillage interne. Aucune extension ne fera ce travail à votre place.

La chose que j'ai fini par comprendre, après avoir essayé beaucoup d'outils : le SEO sous Joomla n'est pas une affaire de plugins. C'est une affaire de discipline — savoir ce que chaque case coche, ne rien activer sur un site indexé sans mesurer, et accepter que la partie la plus rentable soit aussi la plus ennuyeuse. Le reste, c'est du décor.