Hébergement de sites web
Web Hosting

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;?>

Catégories: Positionnement, Technologies |

Laisser un commentaire