WordPress SEO sans Plugin et sans OGM !

Code seo WordPress

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.

« Oui, oui, j’ai terminé, j’arrive chérie » ; )

Nous avons rédigé un nouvel article avec cette fois la possibilité de télécharger :
un thème enfant complet pour Twentyten de WordPress

Liens connexes :
Seomix, qui partage beaucoup sur le sujet WordPress
Une liste à suivre pour connaitre certains plugins WP vérolés

65 réflexions au sujet de « WordPress SEO sans Plugin et sans OGM ! »

  1. Cyril

    Zut :(,
    j’avais espéré un petit article sur « comment sortir son site de la pénalité google pingouin ».
    Vous avez apparemment réussi à le faire pour l’un site de vos clients à en croire twitter.
    Tant pis, peut être samedi prochain.
    En tout cas voila un article très intéressant comme toujours, mais il est très loin de mes préoccupations actuelles ;)
    A très vite,
    Cyril.

  2. Eric

    Un article technique très intéressant

    La simplicité et la dangerosité de tout CMS, c’est parfaitement expliqué et bien résumé.
    tu parles de WordPress, moi qui est bcp utilisé Joomla, j’avais exactement le même soucis, avec l’utilisation de partie « tierce » externe au CMS, non maintenu ou qui n’existe pas dans la nouvelle version. J’imagine que c’est pareil pour Drupal Spip, etc….

    Ce qu’il faut retenir, c’est que moins on customise un CMS mieux c’est.

  3. Cerbere

    Simple claire net et efficace je prends.
    Encore un excellent article à partager, je suis pour me passer de plugin quand c’est possible!
    Sinon pour la meta description spécifique aux réseaux sociaux comme facebook tu fais comment? (c’est une fonction de WP seo dont je me sers d’ou la question.)
    Je suis une buse en code!

  4. patrick

    Merci pour le partage, j’aime beaucoup lorsque c’est « en dur » et non pas par l’ajout de plugins, qui sont, comme vous les dites bien souvent et volontairement parfois, des passoires pour lesquelles on ne prend pas le temps de vérifier le code.

  5. Frédéric

    Je suis également partisans du code en dur et j’évite les pluggins, cependant certains son indispensable et super pratique comme pour gérer les redirections en automatique par exemple.
    Il faut juste choisir en étant conscient du risque.

  6. RaphSEO

    Daniel sort de ce corps je t’ai reconnu!!!
    En tout cas très belle alternative à WP SEO, même si ce dernier va encore faire des émules.
    Mais à force de faire tout ces petits hacks, je me dis que celui c’est les proposer et donc coder a tout intérêt à passer dans du dev perso.
    Il parait qu’on est jamais mieux servi que par soi même.
    En tout question perf et sécurité encore une bataille de gagnée avec tes codes.

  7. Dumac

    J’utilise également les champs personnalisés et en récupère les valeurs dans les include, car effectivement cela permet de se passer de plugin qu’on ne prend bien souvent pas le temps de bien décortiquer.

    Attention au copier-coller, car dans le point 3 c’est le thème par défaut (twenty ten) qui est renseigné, à adapter au cas par cas ;-)

  8. lereferenceur

    @Cyril : Le site est sorti de la pénalité d’après Google, mais je pense que ce n’est pas pour ça que tout est forcément gagné. Je pense qu’il attend de voir si les positions sur les KW sont revenus. Idem pour le trafic.

    Quand on peut il est mieux de faire les liens en dur dans le code.
    J’ai eu du mal à mon arrivé dans WordPress, de comprendre les fonctions et les variables du code source.

    Comme quoi un plugin peut etre bien en apparence et une vrai merde dans le moteur. Comme les voitures ^^ Combien vérifie e code source ? je ne le fais pas moi même et de toute façon je ne suis pas sur de pouvoir détecter des failles de sécurité…

  9. LeMoussel

    Bravo pour la simplicité de votre article car il n’est pas facile d’expliquer du code. Les néophytes en développement apprécieront.

    J’attire cependant l’attention sur un point qui me semble TRES important et qui DOIT être souligné pour les débutants.

    Le fichier header.php est lié au thème utilisé. Toute mise à jour du thème entrainera automatiquement une perte des modifications par écrasement/changement du fichier header.php.

    Afin d’éviter cela, une solution est d’externaliser ce code spécifique dans un fichier externe et de n’avoir qu’une seul ligne de code dans le fichier header.php afin de minimiser la maintenance du code lors de chaque mise à jour du thème

  10. Annuaire avec lien profond

    Un pach intéressant qui comble une lacune énorme.
    Pourquoi WordPress n’intègre toujours pas en natif un champ description HTML ?
    C’est un grand mystère que je ne comprends pas surtout avec la maturité de CMS actuellement.

  11. Matthieu

    En lisant le début de l’article j’ai eu peur d’être largué, mais pas du tout en fait. Tout est clair comme de l’eau de roche.
    Le plugin All in one SEO ne sert plus à rien du coup.
    Seul bémol (comme le rappelle LeMoussel) est que ces modifications de codes devront être à nouveau opérées à chaque mise à jour de WP, à moins d’externaliser ce code spécifique comme il dit, mais là je ne sais pas bien comme faire (me vlà larguer du coup :().

  12. Antonin

    Mince me suis trompé de blog : je me suis retrouvé par hasard sur Seomix alors que je pensais être sur le blog d’Axe-net :D

    Plus sérieusement, merci pour le partage ! Ces petits bouts de code permettent d’améliorer la perf du site et de ne pas dépendre d’un plugin. Je le rajoute à la liste des hacks pour WP de Mister WP (aka Daniel ^^) : http://www.seomix.fr/sans-plugins/

    Pour autant, même si pour certains choses, je n’utilise pas de plugin (boutons de partage and co par ex), je suis pas encore prêt à me passer d’un bon (et unique) plugin SEO genre « all in one seo pack » ou « WordPress SEO by Yoast ».

  13. pierre

    Merci pour ces infos qui évitent l’installations de plugins. Je rejoins LeMoussel dans ses mises en garde. Attention aux éventuelles mises à jour du thème et de WordPress.

  14. duan78

    Merci, d’avoir partager ces infos dans un article aussi simple et clair. Les plugins SEO étant de plus en plus lourd et Useless, ce post entrera dans mes bonnes pratiques très rapidement !

  15. Stoff

    Comme Lemoussel je me suis fait avoir plus d’une fois à mettre des bouts de code dans les fichiers thème et à ne pas comprendre pourquoi cela ne fonctionné plus à la maj du template…

    En tout cas je viens de tester ton code, il marche parfaitement merci!

  16. Christian

    Non, je suis en plein dans wp ces temps-ci, mais contrairement à toi, je trouve que réimplémenter son code source à chaque mis à jour de wp est casse-bonbons.

    En même temps, les extensions qui ne sont plus maintenues sont énervantes aussi. Pire quand elles sont codées avec les pieds.

    Malheureusement, extension ou hack, aucune direction ne prévaut définitivement sur l’autre.

    Par contre, pour le cas précédent, Yoast est pas mal quand même.

  17. alex

    Pratique comme technique, certaine plugins et thèmes wordpress réservent parfois de drôles de surprises: liens cachés, trojans, failles de sécurité, bouts de code étranges…

    Bref, ta solution est une bonne alternative, et rapide à mettre en oeuvre!

  18. jm Auteur de l’article

    @Cyril : pingouin ou hacking quel est le plus méchant ?

    L’usage d’un CMS quelqu’il soit, surtout quand il s’inscrit dans un cadre professionnel (référencement, enjeux commerciaux, etc.) doit être maîtrisé. La notion de « gratuit » qui colle aux CMS met potentiellement en péril nombre de sites et de blogs. Si vos connaissances en code sont limitées : l’idéal est d’utiliser la solution « telle quelle » sinon payez-vous les services d’un bon développeur (ou devenez-le petit à petit ; )

    @Cerbere : le plugin ne fait que coller le code « Facebook » : le but est de le faire « en dur » directement là ou tu en as besoin (une des pages de ton thème). Si tu ne le sens pas, il y a le vieil adage qui dit : « le mieux est l’ennemi du bien ».

    @LeMoussel, @pierre, @Stoff : nous proposerons bientôt d’autres articles sur WP et notamment un sur l’utilisation de la technique du « Thème enfant » (Child theme) « à la sauce AxeNet » permettant une maintenance et des mises à jour plus efficaces. En attendant, tu fais bien de rappeler à la prudence lors de la mise à jour du thème (toujours sauvegarder wp-content & bdd avant).

  19. Phil

    Pour les non programmeurs les plus ins. Restent encore les plus simples…

    Après pour les blogs additionnels que penses tu de la piste des blogs sans base de données ?

  20. Soul

    C’est sympa mais c’est franchement se compliquer la vie, un yoast seo bien configurer ça prend 10 min à faire et après on peut se concentrer sur des choses un peu moins redondante. Réinventer la roue c’est bien pour apprendre à coder mais là c’est perdre pas mal de temps. Autant je passe les liens en dofollow via un hack sur le thème mais yoast c’est la base de mon wp ^^

  21. WebOnReft

    Mais qui te certifie que le code que tu proposes ne contient aucune faille ?
    Au moins, via un plugin, les gens sont mis au courant automatiquement des nouvelles versions disponibles susceptibles de corriger une faille.
    Si jamais tu découvres une faille dans ce code, comment arriveras-tu à prévenir tout ceux qui l’ont utilisé ???
    Perso, je préfère utiliser la solution des plugins même si je suis d’accord avec toi, elle n’est pas fiable à 100%

  22. Guillaume

    C’est vrai que en développant soit même ce dont on a besoin on gagne en optimisation. Parce que on n’a pas forcément besoin de toutes les fonctionnalités d’un plugin.

    @WebOnReft Les failles se trouvent généralement lors des entrées utilisateurs, si elles sont mal traitées. Or ici la seule entrée utilisateur est la saisit des champs personnalisés. Et pour remplir ces champs il faut être connecté sur le wp-admin. Donc je ne vois pas où il pourrait y avoir une faille dans le code donné ici ;)

  23. jm Auteur de l’article

    @Véronique : l’essentiel, dans un premier temps c’est d’être informé des dangers.

    @Phil : un blog sans bdd ? Pour de petites applications pourquoi pas… Je n’ai pas de connaissances sur le sujet pour de gros blogs. Sylvain utilise par exemple PluXml pour de petits blogs.

    @Soul : pour revenir dans la SERP certains travaillent dur en ce moment à dé-optimiser. L’avenir c’est plus de véritables contenus de qualité et moins de SEO. Pour cette raison, entre autres : je ne fais pas de pub aux mega-plugins-seo.

    @WebOnReft : le code est proposé aux développeurs avertis qui peuvent très rapidement juger de la fiabilité (nous ne sommes pas infaillibles en effet). Quand à certains plugins, ils contiennent parfois plusieurs milliers de lignes de code et quand on met le nez dedans : ça fait peur (mises à jour suivies ou non).

  24. Sylvain

    @ Cyril

    J’interviens rapidement dans l’article de Jean-Marc pour te répondre.
    Je n’ai pas fait d’article sur la levée de pénalité car je n’ai pas assez de recul comme le dit très bien Lereferenceur.
    Mais juste pour ta gouverne, cela n’avait rien à voir avec Pingouin, c’était une pénalité manuelle pour laquelle j’ai eu un message dans GWT.
    Je reviendrais sur le sujet quand j’aurais vu les effets concrets de la dé-pénalisation, parce que pour le moment, ce n’est pas flagrant. On verra d’ici 1 à 2 semaines si les positions se sont améliorées et si la courbe du trafic évolue.

  25. Mickael

    Bonjour, très sympa cet article orienté dev. ! Je n’utilise que très rarement WP mais en tout cas je rejoint l’avis des autres, attention à ne pas modifier des fichiers (template par exemple) qui seront écrasés à la prochaine mise à jour…Tout comme Sylvain j’évite dès que possible d’utiliser des plugins souvent mal conçus et bourrés de failles de sécurité. D’autant plus que votre WP devient vite une usine à gaz… Et surtout attention à bien faire une sauvegarde avant d’installer un plugin ou de jouer dans le code ;)

    Merci pour ce billet

  26. Cyril

    Merci pour votre réponse Sylvain.
    Attention, l’instantané de ma déception d’hier soir n’enlève en rien la qualité de l’article de JM, très intéressant et utile. :)
    à bientot.

  27. Daniel Roch

    Voilà une citation qui fait vraiment plaisir. Merci Sylvain.

    En ce qui concerne l’article, il est très bien car explicite et donne des codes propres et bien conçus par WordPress.

    Pour les plugins, je conseille en général de s’en passer car comme dit ici, certains réduisent les performances et la sécurité. Passer par des codes « maison » peut être une excellente solution. Par contre, la pérennité des codes dépendra fortement des évolutions du CMS, car comme pour un plugin, un fonction du coeur de WordPress peut être dépréciée et peut parfois pousser à remanier entièrement un code de A à Z.

  28. jm Auteur de l’article

    Quand RaphSEO dit : « Daniel sort de ce corps… » j’ai pris ça pour un compliment ; ) La dernière phrase de l’article te concerne bien évidemment (respect pour ton travail).
    Un prochain article sera consacré au principe que nous avons adopté : le « child theme » qui optimise encore un peu les mises à jour de twentyten (par exemple). Ceci étant dit il y aura toujours quoiqu’on fasse un moment ou il faudra « revoir nos copies ». L’objectif que nous nous fixons est de limiter au maximum le temps que nous aurons inéluctablement à passer pour recoder ce qui devra l’être (en centralisant le code). La perspective d’avoir dans quelques temps une centaine de blogs (ou beaucoup plus) à recoder impose une stratégie bien réfléchie en amont. Rendez-vous au prochain article sur ce vaste et important sujet…

  29. Romuald

    Le code c’est mieux. Plus rapide et on se passe de fonctionnalité dont on pas besoin, mais c’est moins facile à maintenir. Un simple désactiver/supprimer et on a plus rien.
    Personnellement je ne m’y connais pas beaucoup en code. J’en commencé à regardé un peu me disant que si j’apprenais un peu la technique je pourrais vraiment faire ce que je veux avec mon site mais j’ai choisi les plugins. Tout aussi flexible et complet.
    Je suis quand même preneur de code. Merci en tout cas, cela me permet de monter en compétences

  30. Max

    Le plugins All In One Seo Pack sur wordpress marche très bien pour ma part.

    Depuis que je l’ai installé il a nettement amélioré mon référencement.

  31. Sylvain

    Bonjour JM !

    D’abord merci pour ces petits conseils, j’ai tout de même une petite question : que penses-tu de l’utilisation de metaboxes pour mettre en place le title et la description sans plugin ?

    C’est peut-être à cause de ma constante recherche de simplicité, mais j’ai dans l’idée qu’une metabox dans la page de création de l’article (type « extrait », « image à la une », etc.) est plus simple à utiliser pour le rédacteur qu’un champ personnalisé qu’il ne faut pas oublier.

    J’essaye d’en mettre en place sur un nouveau thème que je crée actuellement, mais j’avoue bloquer. Avec un peu de chance, les modifications ne se font que dans le functions.php et dans le header.php. Je vais voir comment tu gères ton appel dans le header pour cet exemple, ça va certainement me rendre service.

    En tout cas, ton avis m’intéresse pour les metaboxes, d’autant plus si tu as une solution :)

  32. Koyote

    On dit que WP est le meilleur CMS au monde, mais il est incapable de gérer les balises title et description sans plugin pour chaque page, et ce correctement ?

    Heureusement que je n’utilise plus ce CMS depuis longtemps, qui est selon moi complètement dépassé.

    D’autres CMS plus accessible, plus complet (toutes les fonctionnalités sans installer un plugin, configurable sur mesure : on n’en veut pas, on le désactive !), plus personnalisable (la création de plugin est simple et accessible) et tout simplement plus professionnel.

    Ah oui, j’oubliais, le CMS que j’utilise est capable – lui – de gérer les balises title et description, sans modifier quoi que ce soit, et ce par défaut.

    Non, non, ce n’est pas de la magie !

  33. patrikbonnetin

    Merci pour ces tuyaux de parametrage WP sans OGM :) .. J’aurai juste 2 questions :
    Avez vous une idée du temps nécessaire (approximatif) a cette mise en place?
    Est-ce que ce paramétrage « résiste » aux MAJ suuccessives du CMS WP?

    Merci d’avance

  34. jm Auteur de l’article

    @Sylvain : notre objectif, pour ne pas dire notre obsession c’est avant tout la sécurité et réduire au maximum la maintenance de très nombreux blogs sur le long terme.

    Pour un title et une metadescription les champs personnalisés nous conviennent, car ils ne nécessitent aucun code à gérer (à part celui de l’affichage dans le header).

    Nous avons utilisé les metaboxes et « poussé » le CMS un peu plus loin dans le dev pour quelques applications, mais cela doit rester de notre point de vue exceptionnel. À partir d’un certain niveau de fonctionnalité, on préfère pour « dormir tranquille » : faire notre propre code.

    @patrikbonnetin : pour un bon développeur habitué à WP, je dirais moins d’une heure. Comme pour tout ce qui est code, il se peut qu’un jour telle ou telle fonction devienne obsolète et que l’on doive y pallier, mais j’utilise la technique depuis un lustre et ras.

  35. IDE Conseil

    Merci pour toutes ces précisions… que je vais de ce pas vérifier sur mon blog avec un bon développeur ;-)
    et un bonjour compréhensif et confraternel à « chérie » ;-)

  36. TiPi Com and Web

    Bonjour Sylvain et merci pour ce petit tutorial.
    Effectivement, il ne faut pas avoir peur de mettre les mains dans le cambouis pour améliorer l’ensemble et WordPress sera toujours plus intéressant avec le minimum de plugins.
    Petite question piège. Si on passe sur ta solution manuelle, il faut donc refaire toutes les meta description et title des articles déjà publiés n’est-ce-pas ? :)

  37. Sylvain

    @JM : Ok merci pour la précision, je vois qu’on a tous nos petites obsessions :-) J’imagine qu’en effet, après un certain nombre de blogs à gérer, le temps de maintenance devient un paramètre important.

    Merci encore !

  38. jm Auteur de l’article

    @Tipi Com and Web : le piège serait de ne pas se poser cette question, de ne pas sauvegarder (wp-content et bdd) et de supprimer 3 ans de SEO en même temps que son « vieux » plugin !

    1) Je garde mon « vieux » plugin et je mettrai ça en place sur un futur blog.

    2) S’il n’y a pas trop de boulot : je le fais « à la main ».

    3) Via SQL avec un script et les connaissances nécessaires.

  39. Vincent

    Bravo et merci pour cet article Sylvain sur le cms WordPress. Je l’utilise toujours avec des plugins seo pour gagner du temps. Il est vrai que Google avale de moins en moins de site « OGM ». Il faut lui servir des sites bio mijotés aux petits oignons pour ne pas qu’il ai des indigestions.

  40. TiPi Com and Web

    Merci JM, c’est bien ce que je me disais ;)

    Je tacherai de le faire sur mon prochain site car, pour l’instant, je n’ai pas les compétences pour le faire sur les plateformes qui tournent depuis longtemps :)

  41. VIncent A.

    merci pour ces bouts de code car c’est en effet plus optimal de ne pas utiliser de plugin quand c’est possible. De mon côté j’utilise All-in-1 SEO Pack depuis plusieurs années mais je viens de regarder WP SEO de Yoast (via un commentaire plus haut) qui semble encore mieux foutu.
    Si t’as d’autres trucs WordPress, ils sont les bienvenus Sylvain, une bonne partie des éditeurs/blogueurs tournent là-dessus ^^

  42. Alex

    J’ai toujours compté sur les Plugins, de peur de trop bidouiller mon WP, vu que je change souvent de templates, par contre cette histoire de faille et de se faire pirater me donne froid au dos.

  43. Philippe

    C’est clair que trop de plugin tue le plugin. moi j’y réfléchis toujours à deux fois avant d’en mettre un sur un de mes blogs, et c’est très rare. Maintenant je préfère très largement la solution proposée ici à un plugin SEO, je vais donc appliquer toutes ces astuces avec un très grand plaisir :-)

  44. arnaud

    Très bon article, j’essaye (du moins quand j’en n’ai les capacités pour le faire), mais ne pas installer un plugin pour avoir le même résultat, autant le faire.
    Et puis le code et le fonctionnement de WordPress est assez compréhensible.

  45. jm Auteur de l’article

    En lisant l’article ce weekend, Florian mon développeur a encore optimisé un peu plus le code du header sans que cela ne change en rien le fonctionnement.
    Quelques lignes en moins et initialisation des variables : il est fort ce Florian ;)
    Le code de header.php ci-dessus dans l’article annule et remplace donc le précédent.

  46. Moataz

    Bonjour,

    Je suis spécialiste en référencement naturel et pas développeur, mais cet article m’a fait découvrir ce que je cherchais depuis longtemps, comment me débarrasser le plus possible des plugins de WordPress ! Ces extensions parfois bourrées de fautes, logiciels malveillants et de spams. D’un autre côté, je trouve la question de « Cerbere  » importante, comment faire pour les réseaux sociaux et Google analytics ? Est ce que Florian peut nous répondre à cette question ?

  47. jm Auteur de l’article

    @Moataz : j’ai déjà répondu (en partie) à cette question (voir le commentaire 19).

    Nous ne pouvons malheureusement pas donner plus que nous ne pouvons et le temps nous est compté.

    Ceci étant dit, dans le domaine du web (pro) et du référencement naturel : je ne vois pas comment se passer d’une collaboration régulière avec un développeur sans voir un jour le fruit de son travail anéanti. Ce serait un peu comme faire des courses de voiture sans faire appel à un bon mécano, sans faire la vidange, les freins, etc. (sans parler des performances, de la sécurité, fiabilité « de la voiture »).

  48. Moataz

    @ JM – Désolé, vous avez raison la réponse 19 mais je ne l’avais pas vu, en tout cas vos articles font parfois une petite formation en référencement naturel, ils sont à jour et intéressants. Reste à savoir comment faire tout cela, je ne suis pas développeur mais j’avoue que j’en ai un bon et l’avantage c’est qu’il est spécialisé en WordPress
    Merci beaucoup JM pour votre réponse

  49. GeekPress

    « les performances et la fiabilité de WordPress sont inversement proportionnelles aux nombres de plugins installés. »

    Je ne suis pas d’accord avec cette affirmation. Le nombre de plugin n’a pas d’influence sur le temps de chargement s’ils sont bien codé. Un plugin, ce n’est rien de plus qu’un appel à un fichier comme on pourrait le faire avec un require ou un include d’un code perso.

    Un plugin bien codé et optimisé n’aura jamais d’influence sur le temps de chargement de votre site =) (faut pas en mettre 150 non plus hein ^^)

    Ensuite, je ne suis pas très friand du code perso pour gérer le SEO sous WP. Certes le code permet de faire les choses simplement via les champs personnalisés, mais il oblige à aller modifier une constante dans le fichier wp-config.php pour modifier la title de l’index. De plus, si j’ai une page d’archive d’un Custom Post Type, je gère ça encore dans le code ? :(

    Je pense que le plugin WordPress SEO de Yoast es indispensable pour chaque site WordPress et qu’il fait très bien son job.

  50. envides de voyage

    Je suis partisan d’eviter au maximum les plugins sous WordPress, cet article rejoint ma façon de voir les choses. Trop de plugins peuvent tuer un WordPress en performance (ou en hack…!). Certains éléments sont parfois simples à mettre en place, il suffit de fouiller le web et d’être curieux pour bidouiller correctement le PHP ;)

  51. jm Auteur de l’article

    @GeekPress : chaque ligne de code supplémentaire est une source potentielle de risque… L’objet de cet article est avant tout de rappeler à la vigilance en matière de sécurité et d’initier une stratégie basée sur la réduction des coûts de maintenance. Ceci étant dit nous ne sommes pas détenteurs d’une « vérité » dans ce domaine et l’utilisation de Yoast (par exemple) peut s’avérer être une bonne stratégie. Personnellement, j’ai toujours privilégié la qualité des contenus aux surcouches SEO. Qui sait un jour peut-être l’optimisation des title aura autant d’importance que celles des metadescription du point de vue de Google…

  52. GeekPress

    @jm

    « chaque ligne de code supplémentaire est une source potentielle de risque…  »

    C’est la même chose pour du code perso. Les développeurs de plugins sont comme nous : soit bon, soit mauvais =D

    Je tiens vraiment à souligner que « plugin » n’est pas synonyme de « ralentissement ». Après il faut prendre le temps de regarder ce qu’on installe (nombre de votes, support à jour, doc, etc…)

  53. Lionel

    Je me suis rendu compte que les plugin ralentissaient énormément mes sites. J’ai donc supprimé tous ceux que je jugeais inutiles. Je n’avais pas franchi le pas pour le plugin SEO. J’essaierai votre solution sur le prochain site.
    Merci

  54. Location voiture Guadeloupe

    Vrai que les plugins sont toujours à prendre avec des pincettes. Soit ils sont mal suivis par leur développeur, soit mal codé et les usines à gaz que l’on rencontre parfois ne sont plus maintenables. Votre solution est très intéressante car moins on a de plugins installés moins on a de chance de se retrouver avec un site obsolète. C’est valable pour tous les CMS d’ailleurs.

  55. Ludovic

    Merci de cet excellent article
    J’essaie dans la mesure du possible de pouvoir faire du code en dur afin d’éviter les plugins qui une fois m’ont couté un bon piratage sur un de mes sites l’année dernière.
    J’ai donc fait du ménage et gardé ceux qui ont une certaine maturité et réputation ainsi qu’ un support et suivi régulier car on ne peut pas se passer de certains.
    .

  56. Simon Conan

    Bonjour et merci pour cet article :).

    Au fil de mon avancement sur le développement wordpress. Venant du développement logiciel et web pur et dur, il me semblait aisé de se référencer sur WordPress via les plugins. Mais à mon avis (comme le votre :) ) rien ne vaut un bon référencement à l’ancienne via les innombrables titles, méta, contenus …

  57. mat29

    Codé à la main est plus sur c’est certain, mais les plugins pré-installés sont bien utiles aux gens qui débute. Mettre les mains dans le code pour un novice,cela relève du défi parfois. Avec le risque de voir sont site out.

  58. jecdu33

    En effet moins il y a de plugins, mieux c’est !
    De mon côté pour les pages articles j’ai un title wp_title() | bloginfo(‘name’) ( C’est l’inverse en ‘série’
    Ca me suffit pour bien me placer !

  59. Bienfaits Aliments

    J’ai dû recommencer deux fois la procédure, attention à bien suivre les étapes ! ^^

  60. Renaud M.G.

    Tout simplement génial !
    J’hésitais à ajouter un plugin pour gérer les métas mais je vais faire sans, merci beaucoup !

  61. Trucs Wordpress

    Merci pour l’info j’ai ajouter la pagination a mes titre et j’ai quelques autre amélioration a mon code pour enlever le titre du blogue pour les post et ajouter a la place la description des catégories de l’article. J’ai aussi ajouter la possibilité de choisir directement le title de la page pour des pages spécifique via une variable globale.

    Voici le code a ajouter si vous voulez afficher la description des catégorie pour les articles


    $categories = get_the_category();

    if($categories){
    foreach($categories as $category) {
    print " - ";
    if ($category->description != '') print $category->description;
    else print $category->name;
    }
    }

  62. gudule

    Bonjour,

    j’ai installer ton code, ça fonctionne bien sauf sur la page « boutique »
    j’utilise le plugin woocommerce
    tu aurai une idée pour que ça fonctionne ?

    merci

Partagez sur :

Les commentaires sont fermés.