Tout savoir sur WordPress

Supprimer l’attribut nofollow des commentaires sans plugin

Par défaut, les liens dans les commentaires WordPress possèdent l’attribut nofollow. Il existe une solution simple pour passer ces liens du dofollow.

Par défaut, WordPress ajoute l’attribut nofollow sur tous les liens présents dans les commentaires. Il insère aussi le même attribut sur l’URL qui peut être indiqué en supplément du pseudo.

L’attribut nofollow permet de préciser aux moteurs de recherche qu’ils ne doivent pas prendre en compte la transmission de la popularité de la page sur ces liens. Cette astuce fût initialement utilisée pour combattre les spammeurs polluants les commentaires de multiples liens sans rapport avec le contexte de l’article. C’est certainement pour cette raison que l’attribut est ajouté par WordPress sans pouvoir modifier ce paramètre à partir d’une option dans l’administration.

Dans certains cas, il convient de supprimer l’attribut nofollow des liens dans les commentaires. Par exemple, si vous utilisez le plugin KeywordLuv qui permet d’associer une ancre optimisée au pseudo du commentateur, il faut supprimer l’attribut des liens afin que le plugin est une réelle utilité.

Pour cela, copiez le code ci-dessous dans le fichier functions.php présent  à la racine de votre thème :

add_filter('get_comment_author_link', 'gkp_remove_nofollow');
add_filter('comment_text', 'gkp_remove_nofollow');

function gkp_remove_nofollow( $text ) {
    $text = str_replace("rel='external nofollow'", "rel='external'", $text);
    $text = str_replace('rel="nofollow"', '', $text);
    return $text;
}

Suppression de l’attribut nofollow à l’aide d’un regex

On peut être plus précis en utilisant un regex détectant si le mot nofollow est présent à l’intérieur d’un lien hypertexte. Par contre, cette solution sera un peu plus gourmande en terme de performance.

Si vous préférez cette solution, copiez le code suivant dans le fichier functions.php de votre thème :

add_filter('get_comment_author_link', 'gkp_remove_nofollow');
add_filter('comment_text', 'gkp_remove_nofollow');

function gkp_remove_nofollow( $text ) {
    $text = preg_replace("/(<a[^>]*[^s])(s*nofollows*)/i", "$1", $text);
    $text = preg_replace("/(<a[^>]*[^s])(s*rel=["']s*["'])/i", "$1", $text);
    return $text;
}

En fonction de votre besoin et de la thématique de votre site, vous pouvez choisir l’une des deux solutions évoquées pour supprimer l’attribut nofollow des commentaires.

Cet article a été mis à jour il y a 1318 jours - Il n'est peut être plus à jour !

Article écrit par Jonathan B.

Jonathan est le co-fondateur de WP Media, startup connue pour être l’auteur de WP Rocket et Imagify. Il est aussi co-organisateur du WordCamp Lyon et Paris.

54 Commentaires

Laisser un commentaire

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

  1. Ce tuto est très bien fait, je vais pouvoir l’utiliser dès que j’aurai terminé de mettre ne place mon premier blog, début 2013 j’espère, j’attends beaucoup de KeywordLuv pour avoir du trafic et des commentaires :-)

  2. @Mike : Attention, il be faut pas trop espérer sur KeywordLuv pour améliorer le trafic d’un site. Pour GeekPress, cela n’a eu aucune influence sur le trafic et le nombre de commentaires par article. De plus, ça implique un temps supplémentaire sur la modération des commentaires puisqu’il ne faut pas se laisser abuser par les spammeurs qui cherchent uniquement du backlink…

    @Alexandre : non il n’y a pas d’autres moyen pour supprimer l’attribut nofollow ajouter automatiquement par WordPress

    PS : dsl pour la suppression du backlink, mais le commentaire n’est pas assez « constructif » !

  3. Merci Jonathan, je l’ai appliqué sur le site, et hop, un plugin en moins, en effet je vaforise la suppression des plugins qui peuvent être évité ! Encore une bonne astuce, merci

  4. Quand on sait que l’accumulation de pluggins peut franchement handidaper la vitesse de chargement d’un blog, pouvoir s’en passer d’un ce n’est pas négligeable! Un tuyau très utile, merci beaucoup.

  5. Hmmm, il n’existe pas de paramètre de base dans wordpress pour régler le nofollow?
    le jour où le « rel » est différent pour X raisons, ça ne marchera plus

  6. @Attila : Oui, mais ça prend un peu plus de ressource niveau traitement. Mais pour faire un exemple simple en vidéo, j’ai préféré utilisé un str_replace.

    Au niveau regex, celui-ci serait plus correct :

    $text = preg_replace("/(<a[^>]*[^s])(s*nofollows*)/i", "$1", $text);
    $text = preg_replace("/(<a[^>]*[^s])(s*rel=["']s*["'])/i", "$1", $text);
    
  7. Hello Jonathan,

    Merci pour cette excellente astuce, je ne pensais pas qu’il y avait moyen de pouvoir faire ça en quelques lignes :)

    Je n’hésiterai pas à l’appliquer sur mes prochains sites/blogs sous WP ;)

  8. Intéressant d’utiliser les expressions régulières. Ce n’est pas donné à tout le monde de les maîtriser. Merci pour ce tuto, je vais tenter de le mettre en pratique et supprimer le plugins dofollow.

  9. Bonjour Jonathan,
    J’ai utilisé le code que tu as donné, en le collant dans le fichier demandé, mais mes liens restent en nofollow… C’est bien dans le fichier functions.php à la racine du thème wordpress qu’il faut copier ce bout de code ? Je n’y connais rien en html, alors je suis un peu perdue…
    Merci en tout cas pour tes astuces.

    A bientôt.

  10. @nadège : Non pas forcément.

    Je pense que vous n’êtes pas dans le bon functions.php ^^
    Pouvez-vous me dire où se trouve le fichier que vous êtes entrain de modifier ?

  11. Alors, le fichier se trouve dans wp-content/themes/Mantra (mon thème). Est-ce que c’est bien là qu’il faut le chercher ? J’ai bien, à la racine de mon thème,le fichier functions.php…

  12. @Nadège : Tu es au bon endroit et sur le bon fichier. Si le code ne fonctionne pas, cela signifie qu’il doit avoir un conflit avec un plugin !

    Est-ce que tu as essayé les deux codes de l’article ?

  13. J’ai essayé avec les deux liens, oui. Mais j’ai vérifié avec le module NoDofollow de firefox : la plupart de mes liens est bien en dofollow, seuls certains restent en nofollow…
    Merci pour tes conseils, le problème est moins grave que ce que je pensais, je vais solutionner ça plus tard.
    Merci pour tout !

  14. Me revoilà.
    J’ai à peu près compris le nofollow et le Dofollow : suivre ou ne pas suivre.
    Mais je ne comprends pas l’intérêt de mettre ce code dans functions.php. Désolée pour la débutante que je suis, mais qui ne demande qu’à apprendre et qui se demande à quoi ça sert ? Et ce que ça apporte ?
    Encore merci !

  15. Salut,

    Je connaissais pas l’astuce, je m’embêtais à installer le pugin « Do follow » sur chaque blog, mais si je peux éviter de surcharger les blogs de plugins, c’est encore mieux.

    Merci!
    Frédy

  16. Merci beaucoup pour ce tuto.

    Cela fait un jour que je recherche un attribut nofollow comme un c.. dans le code sans rien trouvé. Faut dire que wordpress c’est un sacré paquet de nœud.

    Une question. Une fois le code installé cela met TOUT les liens en nofollow même sur l’index dans les commentaires récents. Est-il possible de garder le nofollow sur la page d’accueil uniquement ?

    Merci d’avance pour votre aide.
    Amicalement,
    Julien

  17. Vous avez évoqué que « le plugin KeywordLuv qui permet d’associer une ancre optimisée au pseudo du commentateur ». Je veux savoir la différence entre l’ancre avec KeywordLuv et soumettre l’ancre directement comme pseudo?
    Merci.

  18. un Blog en dofollow, ça ne sert pas à pourrir les blogs, justement, il faut s’intéresser à l’article et le commenter normalement et laisser un backlink à la fin, les blogueurs et les référenceurs sont très liés, l’un apporte la possibilité de laisser des backlinks dofollow tandis que l’autre permet de commenter pour donner de la vie sur le blog.

  19. salut a tout et merci pour cette explication pour mon expérience je trouve que les lien dofollow pour les petit sites ca veut ce qui basent sur un niche sont tres important par contre les grand site qui peut utilisé les deux attribut nofpllow et dofollow

  20. Merci pour ces quelques lignes de code qui ont l’air à la portée de mes modestes connaissances en programmation.
    Je suis en train de développer/traduire un thème WP, je vais essayé d’appliquer vos astuces.

  21. Bonjour, je me permet de vous écrire ce commentaire afin de vous dire combien j’ai apprécier visiter votre blog qui est très intéressant et instructif. Doter de nombreux articles que je n’ai pas manquer d’ajouter à mes favoris afin d’en garder une archive et pouvoir revenir lire celui-ci à n’importe quel instant. Merci beaucoup, en vous souhaitant une bonne continuation. Cordialement

  22. Bonjour,
    Comme Nadège, je ne connais pas grand chose en langage html. Pr contre ton code m’intéresse. Je voudrais juste une confirmation: si j’utilise ce code, les liens présents et futurs, dans les commentaires passeront bel et bien en dofollow?
    Merci.

  23. Bonjour,

    N’y connaissant pas grand-chose pour ne pas dire rien :-( , j’aurais deux petites questions : la première est au sujet du code à mettre à la racine du fichier fonction.php, est-ce que ça veut dire véritablement à la première ligne ? D’après la capture d’écran je comprends que oui, mais j’ai un doute, car je pensais qu’on ne pouvait mettre un code qu’après ça < ? php et la partie écrite en vert. L'autre question encore plus bébête sans doute lol pourquoi on peut pas tout simplement remplacer par dofollow, nofollow où s'est écrit dans le fichier comment-template.php ?

  24. @Rosa : Oui, on insère le code après l’ouverture de la balise PHP. Pour la 2ème question, on ne doit JAMAIS touché à un fichier du core de WordPress :)

  25. Jonathan, cela doit comme même de donner plus de boulot en validation de commentaire, car j’imagine les personnes qui ne viennent sur ton blog que pour essayer de faire un backlink de très bonne qualité. Bref, ton blog est vraiment pas mal, je bookmark pour la qualité de tes articles.

  26. Bonjour, j’ai un blog en wordpress que je vais bientôt enrichir et ce tuto va m’aider a être en dofollow, merci bien. J’espere que j’ai fais la manipulation correctement. merci de votre aide. Cordialement

  27. Je suis en train d’installer et tester un blog wordpress, je crée quelques articles et le prends en main avant de l’ajouter à mon nouveau site web. Merci pour votre code, il me permettra d’éviter de devoir installer le plugin.

  28. Merci pour ce tuto, je vais pouvoir passer mon blog en dofollow, ça fera plaisir à mes amis qui souhaitent se référencer … depuis un mois, ça devient une denrée rare ;-)