Optimiser WordPress 2 pour les moteurs de recherche

À la base, WordPress est assez bien construit pour une indexation optimale avec les moteurs de recherche, surtout avec ses fonctionnalités de URL rewriting (Réglages | Options des permaliens) qui vous offrent plusieurs options pour contrôler vos adresses, mais il y a quand même place à certaines améliorations.

Personnellement, au sujet des permaliens, mon choix idéal est de simplement utiliser le titre de l’article avec son numéro d’identification, au cas où vous publiez deux articles avec un titre similaire, comme suit:

/%postname%/%post_id%/

Le numéro d’identification est nécessaire avec certaines fonctionnalités plus vieilles qui pourraient être encore présentes dans votre thème, comme un calendrier. Par contre, normalement avec la version 2 de WordPress et un thème assez récent, celui-ci n’est plus requis, mais on ne perds rien à le garder pour fin d’identification unique d’une page.

J’omets l’insertion de la catégorie parce que dans l’éventualité où un article change de catégorie, ce qui peux arriver si vous réorganisez votre site (on prévoit rarement du premier coup l’évolution complète d’un site), son URL devra changer. Pire, son ancien URL restera probablement fonctionnel et vous aurez des problèmes de contenu dupliqué.

Certains diront que le nom de la catégorie peut par contre amener certains mots-clés intéressants dans votre adresse URL, mais il a aussi le défaut d’allonger l’adresse inutilement et ainsi diluer la valeur des mots-clés de vos titres, alors en fin de compte, c’est un gain et une perte qui s’annulent. Sans compter qu’une adresse courte pour une page est toujours plus souhaitable en terme ergonomique, et avec la popularité grandissante de Twitter, un avantage promotionnel. Pour en savoir plus sur le système permaliens de WordPress, veuillez vous référez à leur page Using Permalinks.

WordPress a quand même quelques lacunes (parfois la faute peut venir du thème) au niveau des balises de type H1, H2, etc, et j’aimerais vous faire part de mes corrections personnelles à ce niveau lorsque je crée un blogue.

Un thème WordPress va généralement employer la balise H1 pour le nom du site, et la balise H2 et H3 pour le nom des menus et le titre des articles lorsqu’il est en mode d’affichage blogue. La balise H1 pour le nom du site n’est en fait souhaitable que dans une seule page du site: la page d’accueil. Toutes les autres pages du site devraient placer la balise H1 dans le titre spécifique de cette page. Le nom du blogue se trouve déjà dans la balise title, il n’est généralement pas nécessaire de le promouvoir plus qu’il ne faut comme un site va généralement bien performer pour son propre nom, surtout si celui-ci se trouve aussi dans le nom de domaine et dans les liens entrants.

Comme le titre du site et sa balise H1 se trouve normalement dans le fichier header.php, on peut remplacer l’appel vers ce fichier suivant:

<?php get_header(); ?>

pour un autre fichier presqu’identique, qu’on peut appeler header2.php (au choix):

<?php include(TEMPLATEPATH."/header2.php"); ?>

dans les pages de contenu suivantes:

archive.php
page.php
single.php

Le fichier header2.php est en fait le même fichier header.php, avec les modifications apportées au niveau du titre. Pour fin d’exemple, je ferai référence au thème default, mais votre thème pourrait différer. Trouvez le morceau qui ressemble à ceci dans le fichier header2.php:

<?php bloginfo('name'); ?>

<?php bloginfo('description'); ?>

Et remplacer la balise H1 par un DIV, dont la classe titre (nom au choix) contient les mêmes attributs CSS que H1


<?php bloginfo('description'); ?>

Pour avoir la même apparence, il suffit d’ajouter la classe, après une virgule, à la définition de H1 dans votre fichier CSS style.css partout où il se trouve pour que tous deux soient identiques. Ex:

h1, .titre {

Une façon encore plus simple, que je préfère, au lieu de faire appel à un fichier header différent dans les autres fichiers, on peut aussi détecter la page dans le fichier header original et générer un code différent pour la page d’accueil et les autres pages du blogue. Ex:

<?php if (is_home()) { ?>

<?php bloginfo('name'); ?>

<?php bloginfo('description'); ?>
<?php } else { ?>
<?php bloginfo('description'); ?>
<?php } ?>

Ensuite, il nous faut changer la balise H2 aux titres dans les fichiers énumérés ci-haut par une balise H1 (faites une simple recherche H2 dans ces pages de votre thème et remplacez la). Pour rester sémantiquement logique, il faut aussi changer les balises H3 dans ces pages par les balises H2, comme celle-ci suit normalement H1. Il vous faudra, encore, faire les modifications nécessaires à votre fichier style.css pour que H2 ressemble à ce qui était auparavant défini pour H3.

Voilà, nous avons maintenant une structure plus optimale pour que la balise H1 soit utilisée dans les mots-clés importants de vos pages, c’est à dire leurs titres.

Mais il reste encore un brin de nettoyage à faire. En effet, WordPress a malheureusement choisi de placer des balises H2 ou H3 dans les titres de menu de votre thème, comme « Archives », « Catégories », « Tags Populaires », « Recherche », « Blogoliste » etc. On remarque bien que ces mots-clés génériques n’offrent absolument aucune valeur en terme d’optimisation pour les moteurs de recherches. Il nous faudra donc les remplacer par une classe DIV normale, de façon à ce que les vrais H2 et H3, qui seront insérés manuellement à l’intérieur de vos articles (prenez notes), ne soient pas gaspillés un peu partout dans la page.

Faites une recherche dans les fichiers de votre thèmes pour ces balises qui sont normalement à l’intérieur de listes, ex:

<?php wp_list_pages('title_li=

Pages

' ); ?>

et remplacez les par un simple DIV:

<?php wp_list_pages('title_li=
Pages
' ); ?>

dont la classe CSS est ajoutée aux définitions des balises H2 de type menu dans le fichier style.css, pour que son apparence soit identique, ex:

#sidebar h2, #sidebar .titre_menu {

Les balises H2 se trouvent presque toutes dans les fichiers du thème, sauf, malheureusement, pour une exception, qui est gérée différemment des autres menus, la section « Blogoliste ». Personnellement, je ne suis pas un fan de ces liens sortants qui se trouvent dans toutes vos pages (ce n’est pas vraiment nécessaire et dilue votre valeur Pagerank), alors je préfère simplement désactiver cette fonction de mes thèmes et créer une page « Liens Utiles » plus traditionnelle. Avec le thème default, celui-ci se trouve dans le fichier sidebar.php. On peut simplement le commenter comme suit:

<?php //wp_list_bookmarks(); ?>

Mais si cette fonction vous tient à cœur, il vous faudra alors changer un fichier qui n’est pas dans votre dossier wp-content/themes, donc prenez en notes car vous devrez répéter l’opération si vous faites une mise à jour dans le futur et que vous remplacez le fichier.

Celui-ci se trouve dans le fichier wp-includes/bookmark-template.php, la fonction à la ligne 198. Remplacez la balise H2 dans la fonction par la classe titre_menu mentionnée précédemment, comme suit:

'title_before' => '
', 'title_after' => '
',

Voilà, vous avez maintenant un thème qui exploite plus logiquement les balises de titres au niveau sémantique, et surtout, avec tout leur potentiel d’optimisation auprès des moteurs de recherche. Après un choix judicieux de système d’adressage avec le URL rewriting de WordPress, il ne vous reste qu’à employer les bases du SEO à l’intérieur de vos articles et de placer les mots-clés importants dans vos titres d’articles.

9 thoughts on “Optimiser WordPress 2 pour les moteurs de recherche

  1. Bonjour,
    Sur certains sites, ils conseillent aussi de mettre son blog wordpress dans un répertoire /blog et non directement à la racine du site. Quel est votre avis et pensez-vous qu’il y a un impact sur le référencement ?

    Mon blog wordpress se trouve dans http://monsite/blog, et j’ai une redirection 301 de http://monsite vers http://monsite/blog, pensez-vous qu’il y a d’autres méthodes pour améliorer le référencement dans ce cas ?

  2. Bonjour.
    Je voudrais modifier mes balises H1..Hn et j’aurai besoin de vos conseils. Il faut créer deux fichier header, il suffit de modifier le fichier existant..?
    Merci d’avance pour votre aide.
    Et bonne continuation.
    Thierry

  3. Salut Thierry,
    Oui, il suffit de faire une copie du fichier header.php, de changer son nom et de remplacer le nom de ce fichier dans les include php des pages du thème qui l’utilisent, et ensuite de faire les modifications mentionées dans ce nouveau fichier au niveau de la balise H1.

  4. La redirection 301 est une bonne idée si votre blogue est déjà installé dans un répertoire mais je trouve préférable de l’installer à la racine du site, à moins que le site contienne d’autres sections non reliées au blogue et que celui-ci n’est qu’une partie. Sinon, une redirection est une étape de plus pour les moteurs de recherche avant d’arriver au contenu et il risque d’avoir une perte de valeur Google Pagerank, à mon avis. Si votre site est tout nouveau, je corrigerais cette situation, mais s’il a déjà un certain age, je vivrais avec la redirection 301.

  5. La modification du header et le fait de avoir 2 header ne pose t il pas des problèmes pour les plugins tels que SEO optimization (qui modifie le header…) ?

    Comment corriger cela ?

  6. Excellente optimisation ! Assez surprenant que les thèmes développés n’intègre pas ce code.

    En tout cas 3 ans plus tard l’article n’a pas pris une ride.

    Merci pour l’aide !

  7. bonjour
    je suis nouiveau sur ce forum, je me permet de soliciter un peut votre aide car j’ai un petit soucis c’est que je fais mon site (trieco.fr) et je n’arrive pas a le referencer correctement, et pour vous dire la verite je ne connais rien dans le referencement. si par azare quelqu’un a un peut de temps libre afin de m’aider un peut pour referencer mon site merci a vous

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *