Optimisation de votre installation Joomla 1.0 pour les moteurs de recherche

Joomla est un gestionnaire de contenu web fort populaire, et à raison, c’est un outil assez puissant, flexible, gratuit et libre, qui rends la tâche de gestion d’un site accessible à ceux qui n’ont pas les connaissances requises de webmaster (en fait, il faut avouer qu’il nous vole peut-être du travail… enfin).

Il n’est toutefois pas parfait et ses grandes lacunes se trouvent beaucoup au niveau de l’optimisation pour les moteurs de recherche en terme de positionnement (maximiser le positionnement d’une page pour un ou des mots-clés dans les résultats de recherche, souvent appelé SEO en anglais, pour Search Engine Optimization).

En effet, à ce niveau, il n’est toujours pas à la hauteur d’une simple page web où le webmaster aurait le plein contrôle. Au fil du temps, j’ai trouvé quelques trucs pour répondre à ces lacunes, par moi-même ou en cherchant sur le web. Ceux-ci s’appliquent pour Joomla 1.0 et non la nouvelle version 1.5, dont je ferai surement un article dans le futur.

Je vous rappelle de toujours faire une copie de sauvegarde de votre installation Joomla avant de modifier des fichiers importants.

Évidemment, pour un site performant en terme de positionnement, il faut aussi activer le URL rewriting des pages de votre installation dans la configuration globale, en suivant les instructions officielles, pour bénéficier d’un système d’adressage simplifié, plus ergonomique et apprécié par les moteurs de recherche et visiteurs. Mais cette configuration est facile à régler et ne fait pas partie des lacunes que j’essaie de rectifier avec les fonctions suivantes.

Ajouter la balise H1 aux titres des pages dans Joomla

Joomla entoure le titre des articles avec la classe CSS contentheading ou componentheading, ce qui n’est pas exactement optimale en terme sémantique. Ce que l’on recherche dans ce cas est la balise H1. Pour l’ajouter, voici comment faire:

Dans la page php /components/com_content/content.html.php, trouvez la fonction à la ligne 601:

601
function Title( &$row, &$params, &$access )

Remplacer les instances aux lignes 607 et 614:

607
<?php echo $row->title;?>

Par

607
<?php echo "<h1>" . $row->title . "</h1>";?>

Trouvez la fonction dans la même page à la ligne 28:

28
function showContentList( $title, &$items, &$access, $id=0, $sectionid=NULL, $gid, &$params, &$pageNav, $other_categories, &$lists, $order, $categories_exist )

Remplacer à la ligne 44:

44
<?php echo htmlspecialchars( $title->name, ENT_QUOTES ); ?>

par

44
<?php echo "<h1>" . htmlspecialchars( $title->name, ENT_QUOTES ) . "</h1>"; ?>

Et voilà, vou savez inséré la balise H1 voulue. Maintenant, n’oubliez pas de modifier le code CSS de votre template de façon à donner les propriétés équivalentes des classes contentheading et componentheading à H1, et d’ajuster celles-ci par la suite pour que tout marche bien.

Ajouter le nom de votre site à la fin de l’élément d’en-tête title dans Joomla

Cette technique est basée sur un article posté dans le forum de Joomla, qui inclus des instructions supplémentaires si vous voulez contrôler le titre exact de chaque page.

Joomla insère bien le titre des articles dans l’élément d’en-tête <title></title> (titre montré par les navigateurs en haut de leurs menus dans la barre du logiciel), mais il ne semble pas possible, à partir d’un simple choix de paramétrage dans la section d’administration, d’avoir le titre du site automatiquement ajouté dans la suite, ce qui est une méthode assez standard de promouvoir le nom de site dans les résultats des moteurs de recherche et dans les signets de navigateurs web. Voici comment l’ajouter:

À la page /index.php, à la ligne 107, après le code suivant:

107
$mainframe->initSession();

ajouter

108
$mainframe->setPageTitle();

À la page /components/com_content/content.php, à la ligne 1522, remplacer:

1522
$mainframe->setPageTitle( $row->title );

par

1522
$mainframe->setPageTitle( $row->title, $params );

À la page /includes/joomla.php, à la ligne 503, remplacer:

503
504
505
506
507
508
509
function setPageTitle( $title=null ) {
	if (@$GLOBALS['mosConfig_pagetitles']) {
		$title = trim( htmlspecialchars( $title ) );
		$title = stripslashes($title);
		$this->_head['title'] = $title ? $GLOBALS['mosConfig_sitename'] . ' - '. $title : $GLOBALS['mosConfig_sitename'];
	}
}

par la fonction suivante:

503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
function setPageTitle( $title=null, $params=null ) {
	if (@$GLOBALS['mosConfig_pagetitles']) {
		if ($params) {
			$custom_title = $params->def( 'title_cust', '' );
		} else {
			global $database, $mainframe, $Itemid;
			$params = new stdClass();
			if ( $Itemid ) {
				$menu = new mosMenu( $database );
				$menu->load( $Itemid );
				$params = new mosParameters( $menu->params );
			} else {
				$menu = "";
				$params = new mosParameters( '' );	
			}
			$custom_title = $params->def( 'title_cust', '' );
		}
		$title = $custom_title ? $custom_title  . ' : ' . $GLOBALS['mosConfig_sitename'] : $title .' : '. $GLOBALS['mosConfig_sitename'];
		$title = trim( htmlspecialchars( $title ) );
		$this->_head['title'] = $title ? $title : $GLOBALS['mosConfig_sitename'];
	}
}

Vous avez maintenant le nom de votre site ajouté à chacune des pages après le titre des articles.

Si vous voulez augmenter l’indice de densité de mot-clé (keyword density en anglais) à la page avec votre titre, vous pouvez le répéter à la fin de l’article ou en bas de page en faisant appel à la variable $myPageTitle que nous avons modifié. Par exemple:

À la page /includes/footer.php, à la ligne 22, remplacer:

22
<?php echo mosCurrentDate( '%Y' ) . ' ' . $GLOBALS['mosConfig_sitename'];?>

par

22
<?php echo mosCurrentDate( '%Y' ) . " " . $GLOBALS['mosConfig_sitename']  . " - " . $myPageTitle;?>

Éviter les adresses doublons pour un article

Un problème majeur de Joomla est qu’il a tendance à créer des liens différents pour mener vers le même article, selon que vous naviguez avec les catégories, les menus ou des modules tels que la liste des articles les plus populaires, ce qui peut créer des problèmes avec les moteurs de recherche et diluer, par exemple, votre score Google Pagerank entre plusieurs adresses pour le même article. Une façon d’éviter ces doublons est de créer des liens directs dans le template au lieu de se fier à la création de menus à partir de son interface menu. Ou on peut utiliser des menus avec des URL directs au lieu de pointer vers un article selon la procédure habituelle.

Un premier changement important à effectuer est de bloquer la version PDF et imprimable des articles en insérant le fichier index2.php dans votre fichier robots.txt.

Disallow: /index2.php

Il est plus difficile, par contre, de modifier les liens comme dans un module « Most Popular ». Dans ce cas, je préfère simplement ajouter l’attribut rel="nofollow" à ces liens pour que les moteurs de recherche n’en tiennent pas compte et qu’ils continuent plutôt à calculer la valeur PageRank selon l’architecture des catégories. Par exemple, dans la page:

modules/mod_mostread.php

À la ligne numéro 160-163

160
161
162
163
<li class="mostread<?php echo $moduleclass_sfx; ?>">
	<a href="<?php echo $link; ?>" class="mostread<?php echo $moduleclass_sfx; ?>">
		<?php echo $row->title; ?></a>
</li>

On peut ajouter l’attribut nofollow comme suit:

160
161
162
163
<li class="mostread<?php echo $moduleclass_sfx; ?>">
	<a href="<?php echo $link; ?>" rel="nofollow" class="mostread<?php echo $moduleclass_sfx; ?>">
		<?php echo $row->title; ?></a>
</li>

On peut faire de même pour les autres modules qui créent des liens doublons. Pour trouver où se trouve le code à changer, souvent une méthode facile est de copier la classe CSS spéciale des liens dans le code source de la page en-ligne et de faire une recherche dans vos fichiers joomla.

Partager cet article:

  • del.icio.us
  • Facebook
  • StumbleUpon
  • Twitter
  • LinkedIn

Catégories: Référencement (SEO), Technologies | 8 commentaires »
Les tags de cet article:

Note: Merci pour vos commentaires, j'apprécie ceux qui partagent leurs avis et leurs expériences de webmestre, ou s'il y a lieu, indiquent une erreur dans mes tutoriels, mais je ne peux évidemment pas faire de support technique pour votre site, alors veuillez éviter d'en faire la demande dans cette section.

8 commentaires pour “Optimisation de votre installation Joomla 1.0 pour les moteurs de recherche”

  1. Unibet dit: 23 février 2009 at 4:20

    Après de longues recherche, tu viens de m’aider à trouver la solution à mon problème, je te remercie grandement et te souhaite bonne continuation !

  2. Betclic dit: 23 mars 2009 at 8:49

    Merci beaucoup pour ces précieuses informations :D
    cela m’a beaucoup aidé également,
    amitiés.

  3. Unibet dit: 27 mai 2009 at 10:16

    Super !! merci beaucoup :D

  4. betclick dit: 25 juin 2009 at 10:47

    Tres bonne information, merci…

  5. Bonus Betclic dit: 4 août 2009 at 8:55

    Merci beaucoup,
    Tu viens de me sauver la vie.
    Je cherchais désespérément un gestionnaire de contenu web gratuit et tu viens de m’en fournir un.

  6. betclic casino dit: 8 septembre 2009 at 13:14

    Merci pour ces renseignements, votre gestionnaire de contenu web et parfait pour moi.

  7. Bwin dit: 10 novembre 2009 at 18:07

    Site très intéressant, merci pour toutes les informations.

  8. unibet casino dit: 20 décembre 2009 at 15:34

    Merci beaucoup pour ce partage! je vous souhaite une bonne continuation.

Laisser un commentaire