LOADING

Type to search

Noté ( 5 / 5 )

WordPress SEO sans Plugin

WordPress SEO sans Plugin

SEO

WordPress SEO sans Plugin

admin 8 janvier 2018
Share

Notre ami Google ayant désormais atteint une certaine maturité (ou presque), on ne lui fait plus avaler n’importe quoi : le temps du SEO « avec OGM » est révolu. Terminé l’engrais « keyword stuffing », l’opulence vide des MFA… Seul désormais le SEO « BIO » offre une visibilité durable à celles et ceux qui ont (encore) des choses à dire, à vendre ou a écrire.

Nous invitons tout naturellement, et ce depuis des années, nos clients à produire ou faire produire des contenus pertinents et de qualité, et notamment sous la forme de blogs

Ce premier article sur WordPress (WP pour les intimes) se limitera au partage d’une recette « maison » (avec des bouts de code dedans) pour faire du SEO sans plugin SEO.

Soyons clairs : chez AxeNet nous n’avons rien contre les plugins développés dans les règles de l’art et maintenus régulièrement (maj). Cependant étant codés par tout un chacun : ils sont aussi parfois : faillibles, truffés d’erreurs, en retard de mises à jour, lourds en terme de performances, quand ils ne sont pas (dans le pire des cas) malicieusement créés pour hacker votre site, votre serveur…

Hormis quelques exceptions : les performances et la fiabilité de WordPress sont inversement proportionnelles aux nombres de plugins installés. Pour votre sécurité : soyez donc très vigilant et consommez avec modération !

Dans cette optique, nous proposons cette semaine, à nos amis développeurs le partage de quelques astuces, pour une gestion WP SEO spartiate (mais suffisante) relative aux « title », « metadescription », anti duplicate content, etc.

Gérer les « title » et « metadescription » sans plugin

À partir de là et parce que nous tenons à vous,  fidèle lecteur, étranger aux langages de programmation et autre barbarie de ce genre, nous vous invitons à reprendre une activité normale ; )

Pour celles et ceux qui souhaitent tout de même se faire du mal, manquer la sortie dominicale « aux canards » en répétant en boucle toutes les heures le fameux « j’arrive chéri(e) » : nous vous conseillons de lire l’article en entier avant d’opérer, de vous assurer d’avoir de l’aspirine, une bonne maîtrise du code et de prendre les précautions qui s’imposent (sauvegardes, etc.)

1) title et metadescription avec les champs personnalisés

Via votre admin wp : ajoutez ou modifiez un article et créez préalablement 2 champs personnalisés, nommés très exactement : « meta-description » et « title ». Utilisez « Saisissez-en un nouveau » et par la suite, il vous suffira de les sélectionner via la liste déroulante pour les ajouter.

Comme le montre l’exemple ci-dessus : vous saisissez la metadescription et le title  optimisés pour cet l’article dans les champs « valeur » respectifs (n’oubliez pas de mettre à jour). Cette surcouche SEO reste bien entendu facultative. À l’usage, vous pourrez par exemple n’utiliser qu’un des deux champs personnalisés ou aucun des deux. Dans ce cas, il n’y aura pas de metadesciption (Google se débrouillera pour en faire une) et le title sera comme avant : le titre de votre article.

2) WordPress anti duplicate pagination

Cette fois nous l’avons mis tout en bas (juste avant la balise de fermeture de php) du fichier functions.php de votre thème :

function an_pagination() { // SEO : anti duplicate title
 global $page, $paged;
 if ( $paged > 1 || $page > 1 ) {
  return  ' - ' . sprintf( __( 'Page %s', 'twentyten' ), max( $paged, $page ) );
 }
}

Cette petite fonction appelée par le fichier header.php (voir 4) Le code du header.php) concatène ‘Page X’ à la fin des title à partir de la deuxième page lorsqu’il y a une pagination. Elle évite ainsi les title dupliqués et renseigne l’internaute…

3) Le code du header.php

Note : nouvelle version v3.0

Le code commence tout en haut de header.php de votre thème :

<?php /* wp header.php modifié par axe-net.fr */

if (is_home()) { /*** homepage avec plusieurs articles ou home.php ***/

 // SAISISSEZ ICI VOS TITLE ET METADESCRIPTION POUR LA HOMEPAGE
 $sTitle = "TITLE ACCUEIL DU BLOG À MODIFIER (voir header.php)";
 $sMetaDescription = "";

 $sTitle .= an_pagination();

} else if (is_single() || is_page()) { /*** un seul article (complet) ou une page (y compris l'éventuelle home statique) ***/

 if (!($sTitle = get_post_meta((int)$post->ID, 'title', true))) { // seo title champ personnalisé
 $sTitle = wp_title('', false);
 $sTitle .= ' > '.get_bloginfo('name'); //*Le nom du site en fin de title non SEO (à commenter ou non)
 }
 $sMetaDescription = get_post_meta((int)$post->ID, 'meta-description', true);

} else { /*** tout le reste (catégories, archives, search, etc.) ***/

 $sTitle = wp_title('', false);
 $sTitle .= an_pagination();
 $sTitle .= ' > '.get_bloginfo('name'); //*Le nom du site en fin de title (à commenter ou non)

}

//$sTitle .= ' > '.get_bloginfo('name'); //*Le nom du site en fin de title dans tous les cas (si décommentée => commenter tous ceux ci-dessus)

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html <?php language_attributes(); ?>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php bloginfo('charset'); ?>" />
<title><?php echo trim($sTitle); ?></title>
<?php
/* Anti-duplicate SEO axe-net.fr
   avec une meta noindex pour : les pages "recherche"  OU (toutes celles d'archives SAUF les catégories)
   Pour modifier la condition en fonction de vos besoins consultez : http://codex.wordpress.org/fr:Marqueurs_conditionnels
*/
 if (is_search() || (is_archive() && !(is_category()))) {
  echo '<meta name="robots" content="noindex" />'.PHP_EOL;
 } else if (!empty($sMetaDescription)) {
  echo '<meta name="description" content="'.$sMetaDescription.'" />'.PHP_EOL;
 }
?>

Attention : comme chaque header.php est spécifique à chaque site, nous n’avons fourni que le début du code concernant la partie SEO, et ce jusqu’à la balise metadescription.

Le code étant commenté, vous devriez vous y retrouver facilement et pouvoir l’adapter ou le modifier en fonction de vos besoins…

N.B. Vous constaterez que nous avons opté pour le choix de ne pas indexer (meta noindex), certaines archives, les résultats de recherche, etc. comme le montre cet extrait de header.php :

<?php
/* Anti-duplicate SEO axe-net.fr
   avec une meta noindex pour : les pages "recherche"  OU (toutes celles d'archives SAUF les catégories)
   Pour modifier la condition en fonction de vos besoins consultez : http://codex.wordpress.org/fr:Marqueurs_conditionnels
*/
 if (is_search() || (is_archive() && !(is_category()))) {
  echo '<meta name="robots" content="noindex" />'.PHP_EOL;
 } else if (!empty($sMetaDescription)) {
  echo '<meta name="description" content="'.$sMetaDescription.'" />'.PHP_EOL;
 }
?>

Encore une fois, il n’y a pas une vérité absolue, ce choix de non-indexer est le nôtre qui convient dans certains cas particuliers (où l’on veut concentrer « le tir », éviter la dilution, etc.)

Si vous désirez malgré les problèmes de duplicate-content que s’indexent d’autres pages, modifiez la condition à l’aide des marqueurs conditionnels de WP dans header.php. Voici à titre d’exemple 3 cas d’espèce pour vous aidez  :

// (recherche   OU ( archives   SAUF   catégories   OU  auteurs ))
if (is_search() || (is_archive() && !(is_category() || is_author()))) {

// (recherche   OU ( archives   SAUF   catégories   OU  attachments ))
if (is_search() || (is_archive() && !(is_category() || is_attachment()))) {

// (recherche   OU ( archives   SAUF   catégories   OU  attachments    OU  auteurs ))
if (is_search() || (is_archive() && !(is_category() || is_attachment() || is_author()))) {

Important : Testez bien tous les types d’affichage avec l’addon Firefox « Quirk SearchStatus » (cochez « Hightlight Nofolow Link) ou vérifier l’absence ou présence de la meta noindex.

Le code de votre header.php complet doit ensuite bien sûr contenir les balises que vous utilisiez habituellement : link des css, script des javascript, etc. la balise </head>, <body>, etc.

Voilà je laisse aux amateurs le plaisir de goûter à notre petite recette, de la critiquer le cas échéant et d’apporter pourquoi pas de l’eau au moulin. Même s’il y a notre petit tour de main, comme pour toute recette beaucoup d’ingrédients furent glanés de-ci de-là au fil du temps. Merci aux développeurs connus et inconnus à l’origine du code ainsi qu’à toutes celles et ceux qui entretiennent la flamme, partagent et passent le flambeau.

Ajouter un commentaire

Noter *